The stack we build with.
The technologies we ship in production. Pick a stack to see what we build, how we build it, and the case studies behind it.
Next.js
Production Next.js applications built on the App Router, React 19 and TypeScript strict. SaaS, dashboards and the full stack around them, not the marketing site.
Supabase
Production Supabase apps with row-level security as the real authorisation layer, not a checkbox. Postgres, Auth, Storage, Realtime, Edge Functions in one platform, type-safe end of file.
Stripe
Production Stripe Subscriptions, Checkout, Customer Portal and a webhook event router that survives retries. The billing layer your SaaS needs, not a tutorial copy-pasted into your repo.
Vercel
Production Vercel deployments with preview URLs, edge runtime where it earns its place, ISR with on-demand revalidation, observable cost. The deploy story Next.js was designed for, configured to stay predictable.
Cloudflare R2
Production Cloudflare R2 object storage with signed URLs, multipart uploads, multi-tenant buckets and zero egress fees. The S3 you already know, with a bill that does not punish your traffic.
Anthropic Claude
Production Claude integrations with prompt caching, tool use, streaming, MCP servers and cost accounting. AI as the team, not a chatbot button stitched onto the product.
TypeScript strict
Production TypeScript with the strict family of flags on, Zod at every boundary, generated types from the database and OpenAPI. No any, no as, no silent type lies in your codebase.
Upstash Redis
Production Upstash Redis with sliding-window rate limiting, idempotency tokens, cache-aside patterns and global replication. Redis on HTTP, priced per request, with the operational story serverless deploys actually need.
React 19
Production React 19 with Actions, useOptimistic, the use() hook, Server Components stable, and the migration path from React 18 done without breaking your team. The framework features as a discipline, not a chase.