My Stack
Frontend
Next.js — App Router, TypeScript, Tailwind CSS. My default for everything. Fast to build, easy to deploy, great ecosystem. React Server Components for data-heavy pages, client components when needed.
SwiftUI — for iOS. Native, and the thing I reach for now instead of a cross-platform layer. RevenueCat handles the App Store billing side.
Tailwind CSS — utility-first CSS. Faster than writing custom CSS, consistent results. I use it on everything.
Backend & Data
Convex — reactive backend with auth built in. My default now for new products; Creator Roast and MarketMyApp both moved off Supabase onto it.
Supabase — Postgres with auth, storage, realtime and edge functions. Still what I use where Postgres is the right answer, and self-hosted on the homelab for personal projects.
Python / FastAPI — for ML services and AI pipelines. When I need to run models or do heavy processing that doesn't belong in Next.js.
Infrastructure
Vercel — deployment, preview URLs, analytics. Automatic deploys from GitHub. Never had a problem with it.
GitHub — version control. Nothing exotic.
AI
Claude API — for AI-powered products. Haiku for filtering and screening, Sonnet for most work, Opus when the reasoning has to hold up.
Claude Code Max — for development. The AI layer on top of my whole workflow.
Design
Figma — wireframes and high-fidelity design before a single line of code. I deliver Figma files to clients before starting builds.
The principle
I pick boring tech that ships — not whatever's trending this month. Next.js + Convex + Vercel handles 90% of what I need, and I know it well enough to move fast without hitting walls. The stack changes when something is clearly better, not when something is new.