Overview

A full-stack Go web app template that ships as one binary. No external database, no Redis, no queue service, no CDN, no JS build step. Turso (embedded Turso Database) provides the database, owned argon2id code provides auth, and Datastar delivers reactive UI over server-rendered HTML and SSE.

Built to be useful: every decision favors practical outcomes over abstract ideals. The stack optimizes for simplicity, consistency, and shipping software with minimal friction.

The problem it solves

Every web project starts with the same conversation — pick a database, auth, router, reactive frontend, task queue… — and the project stalls at the decisions, installations, and configurations. Not at the code.

This template answers those decisions once, ships them wired together, and documents how to change or remove each piece.

Not a framework

Frameworks call your code and keep you on their release train. This template does the opposite: it answers the stack decisions once, ships them wired and documented, and gets out of the way — you rename it, you own every line, there is nothing to upgrade. It does ship frameworks inside (DagNats, GoAkt, Wails), and each of them is removable per the scope taxonomy: nothing you keep is load-bearing by accident. For an LLM agent this means zero new DSL to learn — plain Go, stable third-party surfaces, and the skill files, instead of a moving proprietary framework.

Who it is for

What makes it different

Most templates force you to pick one async strategy. This one ships seven complementary layers in a single build and lets you opt out at runtime:

LayerSolves
goqitebackground jobs + SSE hub
dagnatsdurable multi-step workflows as declarative JSON
Loro CRDTconflict-free collaborative state
SSE record streamvisibility-scoped record-change push + re-list
SSE Hubephemeral signals over the Datastar protocol
JetStreamcross-instance broadcast and state
GoAkt grainsone addressable owner per room (roster, locks, supervision)

See Seven async layers for why each exists and when you should disable it, and Stack in layers, not silos for the full dependency picture.

Try it live

A running deployment of this exact template is live at gogogo.calionauta.com — log in with a seeded demo account (demo1@demo.app / demo1234456; demo2@demo.app takes the same password — a second browser or incognito window makes you both at once). The auth-gated env view is at /config (sign in first) and the DagNats workflow console at /dagnats/. What each surface gives you: Admin & Dashboard.