Scroll to begin
[L] Laser

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

01 · Foundation

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.

Git
GitHub
02 · Data & Auth

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.

Supabase
Postgres
AuthpgvectorStorageRLS
03 · Services & APIs

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.

AI
Anthropic
Google Gemini
OpenAI
Messaging
Resend (email)
Twilio (SMS)
Telnyx (SMS)
Retell (voice)
Jobs
Railway
Voyage (embeddings)
cron, ingestion, workers
Payments
Stripe
invoicing, subscriptions
04 · Application

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.

Next.js
TypeScript
React
App RouterTailwindServer Components
05 · Hosting

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.

Vercel
Auto DeploysPreview URLsEdge NetworkCustom Domains

To recap

Think of it like a Game Boy

step through the layers

NEXT.JSSAVEPOWERGAMEBOY COLORABSELECTSTARTEXT
01Next.js=the cartridge

The game itself. Plug it in, it runs.

02Vercel=the console

The hardware that runs whatever cartridge you plug in.

03Supabase=the save file

Your progress, your inventory. Persistent across sessions.

04Services & APIs=trading Pokémon with a buddy

Link cable plugged in, data flies back and forth. Every API call the app makes is the same basic idea.

05Git + GitHub=the dev studio

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.

Live demo next: spinning up a fitness coach chatbot from scratch

Stride Systems