The bet
TanStack Start
Since alpha · 2 production apps
Type-safe RPC, router-first. We bet on it in alpha and shipped two revenue-earning apps before 1.0. Query, Form, and Table from the wider TanStack toolkit where they fit.
TanStack Start since alpha. Supabase under five-plus apps. Tauri when the browser’s the wrong shape. Turso for local-first data. We don’t ship what the type system can’t catch.
The argument
AI-generated code fails in structural ways: invented function names, wrong column references, hallucinated APIs. A type-safe stack catches all of that at compile time, before a human ever sees it.
Step 01
Postgres in Supabase is the source of truth. Tables, columns, and constraints, all written once, in one place.
Step 02
Types flow from the database through TanStack Start’s type-safe RPC layer. No hand-written DTOs. No drift between server and client.
Step 03
The frontend can’t reference a column or call a function that doesn’t exist. AI implementation gets the same compiler check we do.
The bet
Since alpha · 2 production apps
Type-safe RPC, router-first. We bet on it in alpha and shipped two revenue-earning apps before 1.0. Query, Form, and Table from the wider TanStack toolkit where they fit.
The bedrock
5+ apps shipped
Postgres with RLS, real-time, auth, storage. Opinionated and proven, and boring in the way you want a database to be boring. Five-plus apps shipped across our work and our own products. Row-level security is the part most teams skip and later regret. We lean on it from day one.
The escape hatch
When the browser is the wrong shape
Filesystem access, OS integration, offline work. Tauri lets a web team ship native without picking up Rust as a specialty. Sample Vault is the proof: a real desktop app on a stack the same web team maintains.
The embedded option
Powers Sample Vault
Local-first SQLite at the edge of a Tauri app. Sample Vault uses it for fast, offline sample search across thousands of files. Right answer when the user’s data lives on their machine.
Read Turso’s case studyHow we use AI
Without it, “AI-assisted” is just “vibe-coded” with better marketing.
We write the design before we write the code, AI or otherwise. The spec is the artifact we review and argue about. Implementation is downstream of judgment, and judgment is where the senior time goes.
A type-safe stack means a whole class of slop fails before a human sees it. AI invents an RPC signature? Build breaks. The compiler reads every change before we do.
Type safety catches structural slop, not logical slop. So every change is also read by a senior engineer before it ships. AI implementation doesn’t get a free pass. If anything it makes review slower, because there is more code to read and none of it came from someone you can ask.
AI is good at writing implementations. It’s less good at picking the right interface to write against. Humans pick the seams (function signatures, data contracts) and AI fills them in. The boring parts at the edges become close to free. The parts that actually matter stay ours.
Satellite-data analytics platform. Advised and built with two space-domain founders at Systellar Space.
Read the case studyBootstrapped political-finance app. Co-founded with a domain operator. In production since 2023.
Read the case studyDesktop tool for music producers, built by Wojciech to fix his own sample library. Earns revenue.
Read the case studyFree fast-capture utility for Notion.
Tell us what you’re building and what you know about your field that nobody else does. We read every message and usually reply within a day.