Cards, not Wikipedia

What the worksheets are saying.

Two sentences each. If a card is not enough, it becomes a concept page. Dotted terms on result recipes jump here. Hover (or focus) previews the same card without leaving the page.

Where the code runs

primitive

CDN

A network of file servers close to visitors. It hands over bytes that already exist. It does not run your app.

Also: content delivery network · Static site, actually

primitive

worker

A function that wakes up for one request, runs, and dies. Fine for a form or an API call. A bad home for an open connection.

Also: Cloudflare Worker, serverless function, Lambda · Where the code runs

primitive

serverless

You pay per wake-up, not per month. There is still a server. It is just not yours, and it is not allowed to stay up between requests.

Also: function that wakes up · Where the code runs

primitive

VPS

A computer you rent by the month. A process you start stays running whether or not anyone is visiting.

Also: box, virtual private server, $5 VPS · Where the code runs

primitive

cron

A clock that runs a command even if nobody is visiting. Pages cannot do this. A GitHub Action can, if the job is truly batch.

Also: scheduled job, scheduled worker

refuse

hydration

Shipping a JavaScript copy of the page so the framework can attach events. Static HTML does not do this. If you do not have a client app, you do not want it.

Also: hydrate · Static site, actually

Where the data lives

primitive

SQLite

A whole database in one file on disk. Enough for one process and one machine. Leave it when two machines need to write at once.

Also: SQLite file

primitive

Postgres

A database that lives as its own service. Use it when more than one process, or more than one machine, needs the same data.

Also: PostgreSQL, hosted Postgres

primitive

ORM

A library that turns tables into objects. Optional. A few SQL queries are a complete architecture.

Also: Prisma, SQLAlchemy

Getting in

primitive

auth

A way to know who is at the other end of the request. Optional. A shared link is allowed. Accounts are a product decision, not a default.

Also: login, accounts, Clerk

primitive

magic link

Login by emailing someone a one-time URL. You need mail that arrives. You do not need a password database on day one.

Also: passwordless

HTML over the wire

vendor · 2026-08-12

HTMX

A library that lets a click swap in HTML from a server. Good when a process returns HTML. Useless on a site that is only files.

Static site, actually

vendor · 2026-08-12

Hotwire

Rails and Laravel's version of HTML-over-the-wire. Same job as HTMX. Same requirement: a server that returns HTML.

Also: Turbo, Stimulus

vendor · 2026-08-12

Alpine

Tiny client JavaScript for show/hide and forms. Fine. Easy to overuse. Under about 150 lines, vanilla wins.

What you are buying

vendor · 2026-08-12

Pages

A host that serves files from a CDN. That is what you are buying. Not a server, not a database.

Also: Cloudflare Pages, GitHub Pages, Netlify

vendor · 2026-08-12

Railway

A host for a process that stays running. You are buying an always-on box with a git push, not a framework.

vendor · 2026-08-12

Fly

Another host for a process that stays running, with an easy path to more than one region. You are still buying a box.

Also: Fly.io

vendor · 2026-08-12

Stripe

A ledger you can rent. Install it when someone actually pays you. It does not make the rest of the app exist.

vendor · 2026-08-12

Next.js

A React framework that assumes code runs on the server and in the browser, and that hosting is Vercel-shaped. A complete answer for some apps. Not a default for a page of HTML.

vendor · 2026-08-12

Prisma

A popular ORM in TypeScript land. It does not mean you needed a database. SQLite, or no database, is still allowed.

vendor · 2026-08-12

Docker

A way to ship a Linux box as a file. Useful when the app has many moving parts. Not a prerequisite for an HTML file.

vendor · 2026-08-12

Redis

A fast in-memory store people add for cache or queues. A single Postgres or SQLite is allowed to be the only store for a long time.

Things to refuse

refuse

Kubernetes

A system for running many processes across many machines. If you do not have that problem, it is a second job.

Also: k8s

refuse

microservices

Splitting one app into many apps that talk over the network. Do this when a specific bottleneck names itself. Not so the repo feels serious.

Also: a service per noun