A few projects I built and maintain.
Some I built for family. The rest I built to scratch an itch.


Side project, 2021 to present
planmybackpack.com
A gear planner for ultralight backpacking.
Next.js and GraphQL over Postgres, with Prisma in between. Gear data is collected lazily through a queue: pages fall back across three extraction providers, and anything that can’t be parsed from markup goes to an LLM cleaning stage. Images and comments run through automated moderation. Terraform for infrastructure, and CI runs the suite against a real Postgres instead of mocks.
- TypeScript
- Next.js
- GraphQL
- Prisma
- PostgreSQL
- Redis
- AWS
- Terraform
planmybackpack.com

Side project, 2026 to present
ezform.io
A form backend that does not lose leads.
The public endpoint validates, persists the submission and returns, so nothing in the request path can fail once the lead is durable. Everything after that sits behind a queue: triage classifies and resolves routes, a drain worker renders the mail, sends it and records every attempt, and an hourly sweep recovers whatever stalled. Postgres through Prisma, Terraform for infrastructure.
- TypeScript
- Next.js
- Astro
- Prisma
- PostgreSQL
- AWS Lambda
- SQS
- Terraform
ezform.io

Built and maintained for my wife
ritualbeautyroom.com
The site for her permanent makeup studio.
A page per service, from microblading to brow lamination and lash lifts, plus reviews, a blog, gift cards, and booking through Square. Next.js on Vercel.
- Next.js
- TypeScript
- Tailwind
- Vercel
ritualbeautyroom.com
