SaaS Starter
Auth, Stripe, and entitlements in one reusable layer
Private launch kit I ship from each time—limits, observability, and defaults already wired.
- Launch kit
- Auth & billing
- Next.js
Live products
3 SaaS products live today
Not mockups—real apps with billing and users. Tap a card to open the live site.
Selected work
Live products and the private platform layer behind how I ship them.
Auth, Stripe, and entitlements in one reusable layer
Private launch kit I ship from each time—limits, observability, and defaults already wired.
Under the hood
Production stack from the Invoices repo—a request spine through auth and data, with billing, uploads, and email when the handler needs them.
Invoices · architecture map
Open InvoicesVercel
Edge & hosting
Next.js
Middleware & routes
Clerk
Session check
Upstash
Rate limits
Drizzle
ORM queries
Neon
Postgres
Resend
Email delivery
Stripe
Connect · billing
UploadThing
File uploads
Request path — Typical authenticated hit: Vercel serves the request → Next.js middleware and handler → Clerk session → Upstash rate limit → Drizzle reads/writes Neon.
Integrations — From the Next.js handler when the action needs it—not every request: Stripe for Connect and billing, UploadThing for uploads, Resend for transactional email.
Also in the codebase: PDFKit · React Email · Pusher · Vitest
Process
A rhythm I repeat across products—fast loops, full ownership, and room for craft.
Auth, billing, emails, and the landing page—one coherent product, not a pile of repos.
Motion, copy, and empty states that respect attention. Details that make launch day feel calm.
Launch with a tight scope, learn from real usage, and improve what people actually pay for.
About
I build and ship small SaaS products end to end: product, UI, and the platform layer underneath.
Most of my work lives in Next.js—Clerk, Stripe, Postgres, and careful UX for makers who want to launch without reinventing the stack.
When I am not shipping, I am refining the private platform layer and tools that make the next launch faster.
Stack I reach for
I pick tools that stay out of the way: managed auth and payments, a relational database I can reason about, and a framework team that can hire into.
Novelty is for the product—not the plumbing.
Let's build
Open to founders with a scoped SaaS bet, agencies that need a technical partner on client work, eng teams hiring full-stack builders, and collabs with makers shipping product. Not task-based freelance, unpaid spec work, or cold vendor outreach.
Ship log
Launches, leaps, and quiet platform work—a public trail of building in the open.
From brief to signed proposal on one shareable link—structured scopes agencies can send, track, and close.
⌘K palette for copy, mailtos, and theme; homepage live-products cards instead of the old “Now” list; ship log section at the bottom of the page.
Pro flow for sending scopes on a share link: clients view, comment, accept, and sign without another PDF thread.
Shared checklist links can expire; recipients can now ask the sender to renew access instead of losing the thread and starting over.
Personal compliance calendar for EU and UK freelancers—profile-matched obligations, official source links, deadline tracking, and email reminders tied to official government pages.
Repeat clients get invoices on a schedule—set cadence once instead of cloning the same line items every month.
Stripe Connect invoicing and subscriptions for freelancers and small teams who want payouts and recurring revenue without enterprise accounting software.
Auth, entitlements, Stripe, and observability in one reusable layer—the foundation every new product launches from.