Skip to content
c17 .ioJoin list

Stacks / Backend

Easy

Go + PocketBase + HTMX

Dave's signature stack: one Go binary, embedded PocketBase, templ + HTMX, Tailwind. This site is the dogfood.

The problem

The "app in an hour" path usually means Firebase or Supabase for auth and data, plus Vercel for the frontend. You get three bills, a JavaScript toolchain, and a database you cannot move. Most internal tools and content sites do not need that.

Replaces

Firebase / Supabase + Vercel

Estimated SaaS saved

$2,400

per year, small team, before lock-in

Deploy on Railway

Sponsor this stack

Placeholder: one Railway service, PORT, and a /data volume for PocketBase. A one-click template ships next.

The stack

Cost table

You stop payingTypical / yearSelf-host instead
Firebase / Supabase (auth + DB + egress)$1,200PocketBase on a 1 GB volume
Vercel Pro + extras$1,200Same Go process on Railway

Agent setup prompt

You are setting up a Go + PocketBase + templ + HTMX + Tailwind site that deploys as ONE Railway service.

Requirements:
- Embed PocketBase as a Go framework (github.com/pocketbase/pocketbase).
- Bind HTTP to 0.0.0.0:$PORT. Persist PocketBase data on /data (or $PB_DATA_DIR).
- Server-render pages with templ. Use HTMX for forms and search. Compile Tailwind to a static CSS file.
- Dockerfile copies the binary and static assets. Do not require Node at runtime.
- Include a /healthz endpoint and a README with local run + Railway volume notes.

Start from this repo's layout and keep the public surface as server-rendered HTML.

Also as markdown: /stacks/go-pocketbase-htmx.md

FAQ

Is PocketBase production-ready?
For a single-node app with a volume, yes. It is SQLite plus a small Go admin. If you outgrow it, you still own the schema and can export.
Why HTMX instead of React?
Most catalog, landing, and form pages are request/response. HTMX keeps the server in charge, which is what you want for SEO and for LLM crawlers.
Where does the admin live?
PocketBase serves /_/. Use a strong PB_ADMIN email and password via env on first boot.