Changelog · v0.2.2
What’s new.
Versioned with Semantic Versioning, written in the Keep a Changelog format.
[Unreleased]
[0.2.2] - 2026-10-28
Fixed
- Contact form, receipt, and auth emails failed with a Resend 422 (
Invalid from field) whenEMAIL_FROMwas saved with surrounding quotes. Environment values are now trimmed and unquoted before use. - A malformed
EMAIL_FROMnow logs a clear configuration error instead of failing at Resend. .env.exampleno longer wrapsEMAIL_FROMin quotes.
[0.2.1] - 2026-10-28
Changed
- React and React DOM 19.3.0 → 19.3.1 (#2).
- TypeScript 5.9 → 6.0 (#3).
- GitHub Actions:
actions/checkoutv5 → v7,actions/setup-nodev5 → v7,pnpm/action-setupv4 → v6 (#1).
Fixed
- Repaired
pnpm-lock.yamlafter merging the dependency updates in sequence, which had left stalereact@19.3.0references and broken frozen installs.
[0.2.0] - 2026-10-28
Added
- Vercel Web Analytics (cookieless), with reset tokens and Stripe session IDs stripped from reported URLs.
Changed
- Privacy policy now describes analytics.
[0.1.0] - 2026-10-28
Added
- Next.js 16 App Router site with Cache Components, React 19, strict TypeScript, Tailwind CSS 4, and Motion.
- Pages: home, about, work, writing, invest, shop, contact, links, changelog, privacy, terms.
- MDX blog with frontmatter validation, tags, syntax highlighting, reading time, RSS, and per-post Open Graph images.
- Better Auth with email/password, optional GitHub and Google sign-in, admin role, user dashboard, and admin dashboard.
- Stripe Checkout for tips, one-time products, and subscriptions, with an idempotent webhook and Billing Portal.
- Resend for contact form, newsletter, auth, and receipt emails.
- Neon Postgres with Drizzle ORM, and Vercel Blob uploads for admin media.
- SEO: metadata, sitemap, robots, JSON-LD, generated icons, and web manifest.
- GitHub Actions for CI and database migrations, plus Dependabot.