Stride Systems
How I ship an app
Bottom-up, layer by layer. Five pieces, one push.
Press L to toggle the laser pointer·Scroll to begin
Every app starts here
Git lives on my computer. GitHub lives in the cloud. Git tracks every version of the code as I work, and GitHub mirrors that history online so I can collaborate, roll back mistakes, and trigger deploys automatically.
Example
If I break something, I can time-travel back five minutes. If a client wants to preview a feature before it goes live, I branch off, push, and get a preview URL within seconds.
Where the app remembers things
Supabase is the app's memory. It's a Postgres database with user login, file storage, and vector search for AI context, all bundled into one service. Row-level security keeps every tenant's data walled off from every other tenant.
Example
A fitness coach signs up. Their profile, their clients, every chat message, every uploaded workout PDF. All of it lives in Supabase. Coach A physically cannot see Coach B's data, enforced at the database level.
AI, messaging, jobs, and payments
These are the specialist tools I plug in. No point building a worse version of Anthropic, Stripe, or Resend from scratch. AI models, email senders, SMS gateways, payment processors, background workers. The app is just making API calls to each of them.
“Middleware” technically means request-interception code. Think of this layer as the services the app depends on.
Example
A user uploads a PDF. The app hands it to Voyage for embeddings, stores those vectors in Supabase, and Anthropic uses them to answer the user's question. Meanwhile Resend fires off a confirmation email. Every line item is a different service, stitched together by the app.
The app itself
Next.js is the actual application. Every page, every button, every form, every server call to Supabase and the AI APIs. When a user is clicking around the app, they're using Next.js. It runs in both the browser and on the server from a single codebase.
Example
The fitness coach logs in, lands on a dashboard, types a question to the AI coach. All of that UI, plus the code that wires it to Supabase and Anthropic, lives inside one Next.js project.
How the app reaches users
Vercel is the hosting platform that runs the Next.js code. It builds the app, serves it over a global edge network, handles custom domains and SSL, and redeploys every time I push to GitHub. Next.js is the app itself. Vercel is how that app gets to anyone on the internet.
Example
I type git push, ninety seconds later users are hitting the new version. Custom domains, SSL, environment variables, preview environments, rollbacks. All handled.
To recap
Think of it like a Game Boy
←→step through the layers
The game itself. Plug it in, it runs.
The hardware that runs whatever cartridge you plug in.
Your progress, your inventory. Persistent across sessions.
Link cable plugged in, data flies back and forth. Every API call the app makes is the same basic idea.
Off-stage. Where the devs build every version of the cartridge. Players never see it.
And this is how I build it
Every layer, built in Claude Code
I built everything you just saw by talking to Claude Code in my terminal. The Supabase schema, the Next.js code, the API integrations, the deploy config, agents, skills, workflows. All of it.
Stride Systems