Featured system
How this portfolio works
A walkthrough of how an edit becomes a published page, what happens after someone presses Send, and how the site avoids losing or saving the same message twice.
- Turned versioned content files into complete pages during deployment, with broken fields and relationships stopping the release.
- Made the contact form acknowledge a reliable hand-off immediately, then optionally reveal an original, visitor-safe dispatch without making anyone wait.
- Allowed temporary failures to retry without creating duplicate spreadsheet rows, while retaining exhausted work for inspection.
- Next.js
- React
- TypeScript
- Keystatic
- Zod
- Upstash Redis
- QStash
- Gemini
- Vercel
Two-path architecture
Static reads. Durable messages.
Publish
Build once
Keystatic → Zod → static pages, search, RSS, metadata
Contact
Finish durably
Redis → QStash → Gemini → idempotent persistence
- PUBLIC READ
- prebuilt
- FORM RESPONSE
- queue accepted
- FAILURE PATH
- retry + DLQ



