Case Study - The product foundation I kept rebuilding
A production-ready Next.js foundation built from the patterns behind Homi, SwipeStats, and Capient. Accounts, organizations, billing, data, email, AI, and deployment already work together.
- Venture
- Draupnir
- Year
- Service
- Product Foundation
One foundation, many launches
In Norse mythology, Draupnir is Odin's ring. Every ninth night, it produces eight rings of equal weight. That is a surprisingly exact description of what I wanted from a product foundation: solve the repeated work once, then carry it into the next product without dragging the old product along.
Draupnir started as an internal Next.js starter called Jetpack. It became more useful as Homi, SwipeStats, and Capient exposed the difference between code that looks reusable and code that actually survives a new product.
What is inside
The repository is a working Next.js 16 application, not a folder of disconnected snippets. Better Auth manages users, organizations, teams, invitations, and administrative controls. Neon and Drizzle provide the data layer. Polar handles checkout and customer billing while the application owns access policy.
It also includes email, uploads, analytics, onboarding, AI examples, and both tRPC and oRPC API patterns. The demos run inside the same authenticated application that contains the production plumbing.
- Next.js 16
- Better Auth
- Neon
- Polar
- AI SDK
- Vercel
Why it is public now
The foundation has already paid for itself internally. The next step is making it legible and useful to someone who did not watch it grow. That means clearer documentation, a clean setup path, and fewer assumptions about the product that will be built on top.
The first release is opening in small batches while that packaging work continues.
The goal is simple: start with the first product decision, not the first configuration file.