Stu Mason
Stu Mason

Activity

StuMason/progress
stumason.dev
TypeScript
Pull Request Merged

PR #78 merged: feat: beehiiv newsletter + upgrade to Inertia v3

What & why

Two things in one PR (kept together per request):

๐Ÿ“ฌ beehiiv newsletter

  • Signups now forward to beehiiv (v2 API) instead of the local double opt-in. beehiiv owns confirmation + unsubscribe; the form source maps to utm_source for funnel tracking.
  • New /newsletter landing page and /newsletter/confirmed post-confirm page (the latter is the Opt-in Redirect URL to set in beehiiv). Copy is placeholder โ€” to be filled in.
  • Removed the now-dead local VerifySubscription mail + verify/unsubscribe routes. Subscriber model + admin left in place (historical).

โฌ†๏ธ Inertia v3 upgrade

  • @inertiajs/react + @inertiajs/vite ^3.3, inertiajs/inertia-laravel ^3.1, laravel/boost ^2 (plus transitive minor/patch bumps from -W).
  • Why now: a prior dependabot merge bumped only @inertiajs/react to v3 against a v2 backend, which broke dev rendering. This brings both halves to v3 (they must move together).
  • Kept config/inertia.php ssr.enabled defaulting to false โ€” v3's republished config defaults it to true, but this app runs SSR off (no SSR server), so leaving it true would risk the next deploy.
  • Fixed RetroToolTest assertions for laravel/mcp 0.5.9's compact JSON output (data unchanged; assertions were whitespace-brittle).

Setup needed before merge takes effect

  • Add BEEHIIV_API_KEY to the progress app env in Coolify (already in local .env).

Verification

  • โœ… Full suite: 455 passed / 2 skipped.
  • โœ… In-browser (Playwright): homepage, /newsletter, /articles, and a service page render with zero console errors.

Follow-ups (not in this PR)

  • Newsletter page copy (owner to write).
  • composer audit flags 3 advisories on transitive deps (amphp/http-server DoS via Reverb, aws-sdk-php) โ€” separate.
  • Laravel 12 โ†’ 13 upgrade โ€” next slice.
+1497
additions
-1562
deletions
26
files changed