Help us shape the future of Go! Take the 2026 Go Developer Survey

gogogofullstacktemplate

package module
v0.54.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2026 License: MIT Imports: 0 Imported by: 0

README ΒΆ

gogogo

gogogo

Landing page Β· Docs Β· Releases Β· CI

Your stack is ready. Come build. Every decision favors practical outcomes over abstract ideals. The stack optimizes for simplicity, consistency, and shipping software with minimal friction.

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.

What it is not: a framework. Frameworks call your code and keep you on their release train; gogogo hands you wired, documented code and gets out of the way.

πŸ“– Docs (single source of truth)

The manual lives on the site, not in this file: calionauta.github.io/gogogo/docs/

Page index

Generated from the docs site manifest (site/docsite.config.mjs) β€” edit the manifest, then make docs-index; make check-docs fails when this block drifts.

Get started

  • overview β€” What gogogo is, who it is for, and the seven async layers it ships.
  • motivation β€” The thesis behind the stack: Go for almost everything, Zig as the named exception, and how to choose without hype.
  • architecture-decision β€” The flat-stack decision record: what it serves, what it replaced, and the migration it completed.
  • inspirations β€” What gogogo learned from other projects, credited rather than vendored.
  • getting-started β€” Clone, run, first five minutes, and the commands you need.

Agents

  • cli β€” The installer as scriptable commands: advise, preview, apply, add, check.
  • mcp β€” Install the MCP server, wire it into your client, and the tools it serves: opinions, trim, drift, migration.

Core

  • architecture β€” Directory layout, dependency direction, entry points, and route wiring gotchas.
  • stack-layers β€” Every dependency and what it buys, layer by layer.
  • stack-tradeoffs β€” What each choice rejected, what it costs to keep, and when to revisit: Turso vs SQLite vs Postgres, Datastar vs React, and the rest.
  • features β€” Every capability and its runtime opt-out.
  • search β€” The search plugin: one seam, three layers (substring, fuzzy, BM25), the runtime picker, and what trimming it leaves behind.
  • api-routes β€” Generated inventory of every API route, pinned by tests β€” the trim and hook gate that proves no route is lost.
  • unit-contracts β€” Generated card per capability: routes it registers, generated queries it calls, runtime switch, and what removing it takes.
  • no-auth-no-db-recipe β€” Recipe for stripping auth and the database out of a clone that needs neither.
  • use-cases β€” What each core, plugin, and feature is for, in business language.
  • scope-taxonomy β€” Core / Plugin / Feature: the rule for deciding what is safe to delete.
  • db-concurrency β€” Turso single-writer stance, the probed MVCC path, and revisit triggers.
  • configuration β€” Every environment variable and runtime constant.
  • rbac β€” Casbin RBAC: role vocabulary, the feature checklist, hint-vs-enforcement, and the two invariants that bite (authentication is not authorization; policy objects are paths, not regex).
  • dependency-doctrine β€” Write it or take the library: six principles, the ordered decision procedure, the closed human gate, and the trade-off line a reviewer reads.
  • exception-to-go β€” Go-first policy: why Zig is an exceptional native boundary, the agent decision procedure, and the isolation, testing, and removal rules.
  • native-language-tradeoffs β€” Evidence-backed tradeoffs of Zig, Rust, Nim, Odin, and Mojo as native exception languages, and what a non-Zig proposal must rebut.

Async

  • async-layers β€” The seven async layers, SSE Hub record-sync vs ephemeral signals, cross-instance and offline sync.
  • realtime-recipe β€” How to add live UI: client/server patterns, checklist, no invented transports.
  • dagnats β€” DagNats capability table, version bounds, learned gotchas, and the add-a-workflow path for LLM agents.

AI

  • llm-and-credits β€” GoAI configuration and the optional ai-credits / BYOK plugin.
  • review β€” The review loop: Genkit flows, goai generation, and a Jev-compatible classifier judge.

Frontend

  • todo-example β€” The Todo reference implementation and the contract to imitate.
  • ui-skins β€” Pluggable DaisyUI / Basecoat / shadcn skins and the plugin contract.
  • ui-sounds β€” Vendored cuelume sound feedback and its accessibility contract.

Research

  • research β€” One place for every research note, comparison and tradeoff decision in this repo: what was evaluated, when, and what was chosen.
  • auth-libraries β€” The 2026-10-21 evaluation of limen against owning argon2id and sessions: schema ownership, version skew, and what flips the decision.
  • ui-engine-research β€” The 2026-10-21 engine and component-library evaluation behind the UI stack, with local benchmarks and the Rocket assessment.
  • ui-components β€” The 2026-10-21 comparison of DaisyUI, Starbase, datastar-ui and dsx on Datastar, SSE, lightness, performance, functionality and forkability.

Ship

  • deploy β€” Server layout, first-time setup, deploy workflow, build pipeline and version badge.
  • desktop-mobile β€” Wails v3 desktop/mobile, edge sync, and the native window.
  • admin-dashboard β€” Admin surfaces, the single-cookie session, and the DagNats console.

Operate

  • upgrading β€” Keeping a scaffolded project current: the recorded base revision, --check-update's two halves, and migrate as a list plus gates β€” never a merge.
  • local-ci β€” The five-tier feedback loop and make signoff.
  • ci-triage β€” When CI fails on something variable: the 60-second triage, flake diagnosis, quarantine with an expiry, and why 100% is not the target.
  • code-quality β€” The 33 linters, how to scope them, the Datastar-specific rules, and the ruleguard rules that encode project footguns as CI failures.
  • troubleshooting β€” Symptoms and where they actually come from.
  • duckdb β€” Query JSONL logs and the Turso file with DuckDB: local operator recipe.

Plus ARCHITECTURE.md β€” the canonical annotated dependency graph, and AGENTS.md β€” the working rules for human and AI agents in this repo. The rules an agent is meant to load live in skills/gogogo-coding-standards (Go + template standards, concurrency, perf, testing, the exception-to-go gate) β€” install it with npx skills add calionauta/gogogo.


πŸš€ Quick start

This repo is a GitHub template β€” click Use this template to get your own copy, then rename it. Do not build inside a clone of the template itself: your module path would stay github.com/calionauta/gogogo and deploys would target the template's server directory.

# 1. Scaffold with the installer: one command installs (binaries +
#    Go toolchain when missing), asks name/owner/plugins/features, renames,
#    trims what you skip, writes AGENTS.md, then `make dev` takes this
#    terminal β€” Ctrl-C stops dev. Needs curl + git, nothing else.
curl -sSfL https://raw.githubusercontent.com/calionauta/gogogo/master/install.sh | sh -s -- --run

# With Go already installed, the equivalent without curl|sh:
# go run github.com/calionauta/gogogo/cmd/gogogo@latest --run

# Manual fallback (no installer):
# gh repo create my-app --template calionauta/gogogo --clone
# cd my-app
# make rename NAME=my-app          # add OWNER=myorg if not under calionauta
# make site                        # regenerate the published docs
# make dev                         # run

This command needs Go and git (checked up front) β€” or curl + git via the binary install in CLI & MCP below, where install.sh bootstraps Go when missing. Open http://localhost:8080 for the landing page, then http://localhost:8080/todo for the demo (sign in with the seeded demo1@demo.app / demo1234456; demo2@demo.app takes the same password for two-user contention).

make rename only rewrites this project's identity. Sibling repos under the same owner (ai-credits, datastar-lint, pi-leakguard) are real dependencies and are left alone.

One make build compiles everything. No build tags, no feature matrix. Opt out at runtime with env vars (NATS_ENABLED=false, DAGNATS_ENABLED=false).

In the box

Layer Choice Why
Language Go 1.27 Fast compilation, easy deploy, lean runtime. Go-first: Zig only as an exceptional native escape hatch (exception-to-go; the why: motivation)
Zero-config database and auth Turso Database (SQLite-compatible, sqlc) + owned argon2id sessions Zero-config Turso, cookie sessions, file-local storage β€” no separate service
Access control without a service Casbin + users.role Roles on the user row, policy in one model, enforced before the handler; embedded policy by default, DB-backed when evolving (rbac)
Reactive UI with no JS framework Templ + Datastar (SSE) + Tailwind v4 Server-rendered HTML, ~12 KiB client, no JS framework build step
Three UI skins in one binary DaisyUI v5 (default) + Basecoat + shadcn All compiled into one binary, switchable per process or per request
Background jobs with retry goqite + SSE Hub goqite executes with backoff; SSE Hub streams progress to the browser. No Redis
Workflows that survive a restart DagNats Multi-step workflows as declarative JSON; resume after a mid-run kill
Room ownership without races GoAkt One grain per room: heartbeat roster plus exactly-one presenter lock, supervised
Shared state that merges offline edits Loro CRDT + Rough.js Conflict-free state with no last-write-wins data loss
Realtime for one instance or many SSE Hub + NATS JetStream Per-user record push, plus cross-instance broadcast
AI features on any provider GoAI + optional ai-credits Any OpenAI-compatible provider; optional billing ledger + BYOK
Secrets encrypted at rest age + ~/.secrets/ Local encryption. No vault, no cloud
Desktop apps on the same backend Wails v3 + gogpu/ui Native shells over the same backend, plus a no-HTTP frontend
Linting tuned for AI-written code golangci-lint (33) + datastar-lint Tuned for LLM-authored code: unchecked errors, context leaks, lost context propagation

Full table with the reasoning behind each choice: stack-layers. Client weight per feature (measured): 0–48 KB of JS β€” the backend is the source of truth, the browser holds intent and cache.

Everything async your app will need

Seven complementary layers, already inside, each with its own opt-out:

Background jobs that update the UI   β†’ goqite + SSE Hub (always on)
Workflows that survive a restart     β†’ DagNats as JSON (DAGNATS_ENABLED=false)
Collaboration without data loss      β†’ Loro CRDT (remove internal/collab/)
Live record updates, scoped per user β†’ SSE Hub record-sync (always on)
Ephemeral UI signals                 β†’ SSE Hub via Datastar (always on)
Broadcast across instances           β†’ JetStream (NATS_ENABLED=false)
Room ownership without races         β†’ GoAkt grains (GOAKT_ENABLED=false)

Records flow through the SSE Hub record event β€” scoped per user by the owner column, free of charge. The ephemeral channel is reserved for ephemeral signals (toasts, client counts, workflow progress). Mixing those two up is the most common mistake in Datastar apps; async-layers explains why the split matters.

Capabilities

Every capability is always compiled. Each has a documented opt-out.

Capability Opt-out
Todo app + live record-sync, stacked toasts, sound feedback delete features/todo/
Queue + retry with exponential backoff, SSE lastRetry signal β€” (core)
AI Suggest via GoAI, or keyless simulated LLM for the demo no GOAI_API_KEY and SIMULATE_LLM=false
Ask AI: model renders catalog UI (cards, tables, sections) via SSE trim genui (bundle with Chat), or no GOAI_API_KEY and SIMULATE_LLM=false (demo answers keyless)
Chat: conversation over the same catalog, persisted per owner trim genui (bundle with Ask AI), or no GOAI_API_KEY and SIMULATE_LLM=false
Review loop: writer β†’ critic β†’ classifier judge, streamed verdict trim review, or no GOAI_API_KEY (real-LLM only; page shows a setup hint)
Search layers for feature rows (substring in SQL, fuzzy tiers, BM25 over its own postings) trim search (a consumer keeps the SQL substring layer)
AI credits + BYOK relay + Stripe top-ups CREDITS_ENABLED=false
Collaborative whiteboard (CRDT + presence + offline outbox) trim whiteboard (bundle with notes + collab transport), or COLLAB_SNAPSHOTS=memory
Room presence demo (GoAkt grains: roster + presenter lock) delete features/room/
Shared notes (server-owned Loro Text, live peer text) delete features/notes/
Durable WelcomeOnboarding workflow DAGNATS_ENABLED=false
Hybrid offline sync (Service Worker + Leaf Node) OFFLINE_SYNC_ENABLED=false
Single-store persistence (Turso Database via sqlc) β€” (core)
Multi-instance realtime NATS_ENABLED=false
Public landing page + auth-gated config view delete features/landing/, features/config/
Wails v3 desktop/mobile + native window delete cmd/desktop/, cmd/gui/

Infrastructure opts out with an env var. The installer automates the common deletions β€” named presets included: go run ./cmd/gogogo --preset minimal (core + todo + auth), no-ai, no-collab β€” see cmd/gogogo/README.md. Product features also opt out by deleting the package and its one wiring call β€” see features.

Core / Plugin / Feature

Every non-test .go file under internal/ and features/ carries a SCOPE annotation declaring its removal class. make check-scope enforces it in CI and in your pre-commit hook.

Annotation Meaning You would
SCOPE:core πŸ”΄ The binary does not work without it Customize, never remove
SCOPE:plugin 🟑 The binary works but loses a capability Swap, or delete + remove the wiring call
SCOPE:feature 🟒 A demo or add-on Keep as reference, then remove

The rule for agents: never delete a core file without asking; never keep a feature file in production if the domain doesn't need it. Full taxonomy and per-package removal table: scope-taxonomy.

For AI agents

Three entry points, one engine (internal/installer β€” CLI and MCP execute the same code path with the same receipts and proof):

  • llms.txt β€” the agent entry index: what to read per task, invariants to not relearn. Published map of the docs site: site/llms.txt (index) + site/llms-full.txt (complete texts).
  • Installer CLI β€” go run ./cmd/gogogo advise --need "..." for opinions (reads nothing, changes nothing), --preset minimal|no-ai|no-collab or --plugins/--features keep lists + --dry-run to preview, gogogo add <unit> to reverse a trim, gogogo new feature <name> to scaffold one feature with wiring + gates + proof. Full reference: cmd/gogogo/README.md.
  • MCP server β€” cmd/gogogo-mcp (separate module, stdio): advise_stack, capabilities_list, trim_plan, trim_apply (requires confirm:true), check_tree, add_unit, new_feature. Tool table in cmd/gogogo-mcp/README.md.

Try it live

What URL
Todo & Whiteboard demo gogogo.calionauta.com
Durable workflow console (DagNats) gogogo.calionauta.com/dagnats/

Sign in as demo1@demo.app / demo1234456 (demo2@demo.app takes the same password β€” open a second browser or incognito window to be both at once and prove contention, shared-vs-private todos, and authorship).

Commands

make dev           # Live reload with Air (regenerates templ + CSS)
make build         # Build binary (unified: everything included)
make ci-local      # Full local gate (= CI): templ, lint, checks, build, boot smoke, parallel fan-out (race + browser smokes)
make signoff       # ci-local + gh signoff stamp β€” the recommended pre-push gate
make setup         # Activate lefthook git hooks + verify agent tooling
make site          # Rebuild the docs site from docs/*.md

Full command reference: getting-started.

CLI & MCP (agent paths)

Humans get the guided installer above. Agents get the same engine (internal/installer) through two scripted paths β€” opinions first, preview second, mutation last. Full guides live in their own section: docs/cli.md and docs/mcp.md.

Path Use when Entry point
advise deciding what to keep (use-case β†’ keep/drop + off-switches + Go/Zig rule). Changes nothing go run ./cmd/gogogo advise --need "..." --format json
trim --dry-run previewing the scaffold as one JSON document --no-tui --dry-run --format json (add --yes to apply)
add / --check restoring a unit into a scaffolded checkout / verifying markers add <unit> --from <pristine> --dir <proj> [--dry-run|--yes]
MCP server tool calls instead of shell (advise_stack, capabilities_list, trim_plan, trim_apply, check_tree, add_unit) cmd/gogogo-mcp (own module, stdio) + one JSON block in the client config

Destructive paths refuse without explicit confirmation (--yes / confirm:true). Strategy and the foreign-codebase boundary: getting-started Β§0b–0c.

No Go on this machine? Tagged releases ship static binaries (gogogo + gogogo-mcp, checksummed) β€” and install.sh bootstraps a user-space Go toolchain when none is found (~/.local/go, no sudo, existing installs untouched). It does not symlink go into ~/.local/bin: that directory is on your PATH, so the link would win over a system Go. It exports ~/.local/go/bin for the install and prints the line to persist it. Same one-liner as the quick start above (it is the quick start β€” append anything after --run and it reaches gogogo):

Before you push

make ci-local locally is the same gate CI runs, and make signoff adds a git stamp. It catches ~95% of regressions in under 3 minutes instead of waiting on a CI round trip. The tier ladder (T1 format/build β†’ T5 signoff) and what each tier catches: local-ci.

Contributing

The most valuable contribution right now is using gogogo for a real project and reporting what broke β€” see CONTRIBUTING.md.

AI-assisted contributions are welcome, with a human in the loop: disclose tool use in the PR body (no AI trailers in commits or changelogs), explain motivation, include a reproduction, keep the diff minimal, and run make signoff before pushing. Please discuss features in an issue before opening a PR.

Acknowledgements

Inspired by northstar by Zangster β€” a Go + NATS + Datastar + Templ + DaisyUI application starter. See docs/inspirations.md for full credits and learnings.

License

MIT β€” see LICENSE. Open to feedback, PRs, and adaptations. If something doesn't make sense, if the stack doesn't fit your problem, or if you have a better idea, open an issue.

Documentation ΒΆ

Overview ΒΆ

SCOPE:core - DO NOT REMOVE - Module root package. Package gogogofullstacktemplate is the module root.

This file exists so the module root package is never empty: some Go toolchains treat an empty root package as a hard "no Go files" error when running `go test ./...`, which aborts the whole test gate. With this file present the root reports "[no test files]" instead.

The package name intentionally has no underscore: golangci-lint's revive linter rejects underscore-separated package names, and the module import path (github.com/calionauta/gogogo) is independent of the package name, so renaming is safe.

Directories ΒΆ

Path Synopsis
cmd
check-docs command
SCOPE:core β€” README page index generated from the site manifest.
SCOPE:core β€” README page index generated from the site manifest.
check-flatdeps command
SCOPE:core β€” Flat-stack dependency guard (framework-free, one SQLite driver, no cross-feature domain imports, owned sql.Open sites)
SCOPE:core β€” Flat-stack dependency guard (framework-free, one SQLite driver, no cross-feature domain imports, owned sql.Open sites)
check-scope command
SCOPE:core - DO NOT REMOVE - SCOPE annotation linter (pre-commit gate).
SCOPE:core - DO NOT REMOVE - SCOPE annotation linter (pre-commit gate).
check-secrets-env command
SCOPE:core β€” Secrets-env site guard (secret env reads stay on the rails)
SCOPE:core β€” Secrets-env site guard (secret env reads stay on the rails)
check-skill-frontmatter command
SCOPE:core β€” SKILL.md frontmatter linter (pre-commit + CI gate).
SCOPE:core β€” SKILL.md frontmatter linter (pre-commit + CI gate).
desktop command
Command desktop builds the Wails v3 native app shell around the exact same Go backend the web app uses (goqite queue + handlers + the flat chi router).
Command desktop builds the Wails v3 native app shell around the exact same Go backend the web app uses (goqite queue + handlers + the flat chi router).
gogogo command
Command gogogo scaffolds a new project from gogogo.
Command gogogo scaffolds a new project from gogogo.
gui command
SCOPE:feature β€” native window live updates (JSON event stream)
SCOPE:feature β€” native window live updates (JSON event stream)
web command
SCOPE:plugin β€” GoAkt lifecycle (room actor system)
SCOPE:plugin β€” GoAkt lifecycle (room actor system)
Single source of truth for the optional Ask-AI decision router (JEV_ROUTER_* env).
Single source of truth for the optional Ask-AI decision router (JEV_ROUTER_* env).
features
app
SCOPE:plugin β€” AppContext (dependency bundle for cmd/gui) Package app provides the cross-cutting "application core" pattern for projects built on top of gogogo.
SCOPE:plugin β€” AppContext (dependency bundle for cmd/gui) Package app provides the cross-cutting "application core" pattern for projects built on top of gogogo.
authviews
templ: version: v0.3.1070
templ: version: v0.3.1070
chat/components
SCOPE:feature β€” chat page signals.
SCOPE:feature β€” chat page signals.
chat/handlers
SCOPE:feature β€” HTTP chat slice (conversation demo)
SCOPE:feature β€” HTTP chat slice (conversation demo)
chat/store
SCOPE:feature β€” chat demo store (in-memory)
SCOPE:feature β€” chat demo store (in-memory)
config/components
SCOPE:feature β€” Auth-gated read-only /config view (masked secrets)
SCOPE:feature β€” Auth-gated read-only /config view (masked secrets)
config/handlers
SCOPE:feature β€” HTTP config view (auth-gated, secrets masked)
SCOPE:feature β€” HTTP config view (auth-gated, secrets masked)
credits
SCOPE:plugin β€” the credits Service implements the llm.Biller seam so every Chat/ChatStream call (the internal/llm choke point) is metered.
SCOPE:plugin β€” the credits Service implements the llm.Biller seam so every Chat/ChatStream call (the internal/llm choke point) is metered.
credits/handlers
SCOPE:plugin β€” HTTP credits slice (AI credits + BYOK)
SCOPE:plugin β€” HTTP credits slice (AI credits + BYOK)
genui/components
SCOPE:plugin β€” the action catalog: what a model-authored component may offer to DO in this app.
SCOPE:plugin β€” the action catalog: what a model-authored component may offer to DO in this app.
genui/handlers
SCOPE:plugin β€” HTTP genui slice (Ask demo)
SCOPE:plugin β€” HTTP genui slice (Ask demo)
landing/handlers
SCOPE:feature β€” HTTP landing page (public marketing hero)
SCOPE:feature β€” HTTP landing page (public marketing hero)
notes
SCOPE:feature β€” Shared notes (server-owned Loro Text) Embedded static assets for the notes feature: notes.js (textarea op wiring + SSE stream).
SCOPE:feature β€” Shared notes (server-owned Loro Text) Embedded static assets for the notes feature: notes.js (textarea op wiring + SSE stream).
notes/components
templ: version: v0.3.1070
templ: version: v0.3.1070
notes/handlers
SCOPE:feature β€” HTTP notes slice (server-owned Loro Text)
SCOPE:feature β€” HTTP notes slice (server-owned Loro Text)
onboarding
SCOPE:plugin β€” DagNats onboarding workflow (durable run + stepper fan-out)
SCOPE:plugin β€” DagNats onboarding workflow (durable run + stepper fan-out)
review/components
SCOPE:feature β€” Review loop page signals.
SCOPE:feature β€” Review loop page signals.
review/handlers
SCOPE:feature β€” Review loop (Genkit + goai + jev judge).
SCOPE:feature β€” Review loop (Genkit + goai + jev judge).
room/handlers
SCOPE:feature β€” HTTP room slice (GoAkt presence demo)
SCOPE:feature β€” HTTP room slice (GoAkt presence demo)
sounds
templ: version: v0.3.1070
templ: version: v0.3.1070
todo
SCOPE:feature β€” todo event bus (one publish, adapters per transport)
SCOPE:feature β€” todo event bus (one publish, adapters per transport)
todo/components
templ: version: v0.3.1070
templ: version: v0.3.1070
todo/handlers
SCOPE:feature β€” todo NATS bridge (cross-instance convergence)
SCOPE:feature β€” todo NATS bridge (cross-instance convergence)
whiteboard
SCOPE:feature β€” Collaborative whiteboard (Loro CRDT canvas) Embedded static assets for the whiteboard feature: rough.min.js (Rough.js hand-drawn canvas rendering) and whiteboard.js (Datastar/SSE canvas wiring).
SCOPE:feature β€” Collaborative whiteboard (Loro CRDT canvas) Embedded static assets for the whiteboard feature: rough.min.js (Rough.js hand-drawn canvas rendering) and whiteboard.js (Datastar/SSE canvas wiring).
whiteboard/handlers
SCOPE:feature β€” HTTP whiteboard slice (Loro CRDT canvas)
SCOPE:feature β€” HTTP whiteboard slice (Loro CRDT canvas)
internal
auth
SCOPE:core β€” Auth on the flat stack (argon2id + sessions table)
SCOPE:core β€” Auth on the flat stack (argon2id + sessions table)
capabilities
SCOPE:plugin β€” Capability registry: single source of truth for ids, kinds, runtime switches, and owned paths (consumed by cmd/gogogo, docs, and --help).
SCOPE:plugin β€” Capability registry: single source of truth for ids, kinds, runtime switches, and owned paths (consumed by cmd/gogogo, docs, and --help).
collab
SCOPE:plugin β€” Loro CRDT + DocStore + sync workers + presence To remove: delete internal/collab/ + features/whiteboard/ and drop the whiteboard roots from buildChiMux in internal/server/chi.go.
SCOPE:plugin β€” Loro CRDT + DocStore + sync workers + presence To remove: delete internal/collab/ + features/whiteboard/ and drop the whiteboard roots from buildChiMux in internal/server/chi.go.
components
templ: version: v0.3.1070
templ: version: v0.3.1070
dagnats
SCOPE:plugin β€” DagNats durable workflow engine To remove: delete internal/dagnats/, cmd/web/dagnats.go, features/onboarding/, features/todo/handlers/onboarding.go and the bootOnboarding call in internal/server/chi.go.
SCOPE:plugin β€” DagNats durable workflow engine To remove: delete internal/dagnats/, cmd/web/dagnats.go, features/onboarding/, features/todo/handlers/onboarding.go and the bootOnboarding call in internal/server/chi.go.
datastar
SCOPE:plugin β€” Datastar rendering helpers (RenderAndPatch, MergeSignals)
SCOPE:plugin β€” Datastar rendering helpers (RenderAndPatch, MergeSignals)
db
SCOPE:core β€” application database: the one place that knows the Turso Database connection string, file layout, and pragmas.
SCOPE:core β€” application database: the one place that knows the Turso Database connection string, file layout, and pragmas.
dbschema
SCOPE:core β€” ID and timestamp helpers shared by every store.
SCOPE:core β€” ID and timestamp helpers shared by every store.
demo
SCOPE:core β€” Demo-user seed for fresh installs
SCOPE:core β€” Demo-user seed for fresh installs
goakt
SCOPE:plugin β€” GoAkt entity actors (room authority demo)
SCOPE:plugin β€” GoAkt entity actors (room authority demo)
hostgate
SCOPE:core β€” Host gate for heavy Go tests (skip on saturated boxes)
SCOPE:core β€” Host gate for heavy Go tests (skip on saturated boxes)
installer
SCOPE:plugin β€” installer engine: add units to existing checkouts (copy, rewire, prove)
SCOPE:plugin β€” installer engine: add units to existing checkouts (copy, rewire, prove)
instance
SCOPE:core β€” stable instance identity (durable names + event origin)
SCOPE:core β€” stable instance identity (durable names + event origin)
llm
SCOPE:plugin β€” GoAI LLM client (used by Suggest) To remove: delete internal/llm/ + features/todo/handlers/llm_suggest.go.
SCOPE:plugin β€” GoAI LLM client (used by Suggest) To remove: delete internal/llm/ + features/todo/handlers/llm_suggest.go.
llm/fakeserver
SCOPE:plugin β€” GoAI LLM client (used by Suggest) Package fakeserver provides an httptest-compatible OpenAI Chat Completions fake for end-to-end tests of the GoAI integration without burning real tokens.
SCOPE:plugin β€” GoAI LLM client (used by Suggest) Package fakeserver provides an httptest-compatible OpenAI Chat Completions fake for end-to-end tests of the GoAI integration without burning real tokens.
nats
SCOPE:plugin β€” NATS JetStream + Leaf Node + CRUD proxy Starts embedded NATS server or connects as Leaf Node.
SCOPE:plugin β€” NATS JetStream + Leaf Node + CRUD proxy Starts embedded NATS server or connects as Leaf Node.
natswire
SCOPE:core β€” Todo CRUD wire protocol (shared vocabulary, no framework types)
SCOPE:core β€” Todo CRUD wire protocol (shared vocabulary, no framework types)
observability
SCOPE:core β€” Observability core: structured logging (slog)
SCOPE:core β€” Observability core: structured logging (slog)
queue
SCOPE:core β€” Job queue (goqite) + Worker Pool Package queue implements the background job subsystem: a goqite-backed SQLite queue, an SSE hub for streaming progress to the browser, and a worker pool that dispatches messages through a typed HandlerRegistry.
SCOPE:core β€” Job queue (goqite) + Worker Pool Package queue implements the background job subsystem: a goqite-backed SQLite queue, an SSE hub for streaming progress to the browser, and a worker pool that dispatches messages through a typed HandlerRegistry.
rbac
SCOPE:core β€” DB-backed Casbin policy source (persist.Adapter).
SCOPE:core β€” DB-backed Casbin policy source (persist.Adapter).
search
SCOPE:plugin β€” the BM25 layer: an inverted index in SQL, scored in Go.
SCOPE:plugin β€” the BM25 layer: an inverted index in SQL, scored in Go.
secrets
SCOPE:core β€” Secret management with age (age-encryption.org) Package secrets decrypts a per-project environment file using age (https://age-encryption.org).
SCOPE:core β€” Secret management with age (age-encryption.org) Package secrets decrypts a per-project environment file using age (https://age-encryption.org).
server
SCOPE:core β€” Flat-stack boot helpers (demo seed, TOTP key wiring).
SCOPE:core β€” Flat-stack boot helpers (demo seed, TOTP key wiring).
scripts
agehelper command
Command agehelper is a tiny stand-in for the `age` / `age-keygen` CLIs, used by bin/init-secrets when neither binary is installed.
Command agehelper is a tiny stand-in for the `age` / `age-keygen` CLIs, used by bin/init-secrets when neither binary is installed.
web
resources
SCOPE:core - DO NOT REMOVE - Embedded static assets (CSS, JS, etc.).
SCOPE:core - DO NOT REMOVE - Embedded static assets (CSS, JS, etc.).
skins
templ: version: v0.3.1070
templ: version: v0.3.1070
skins/basecoat
Package basecoat implements the BasecoatUI (shadcn) skin.
Package basecoat implements the BasecoatUI (shadcn) skin.
skins/daisyui
Package daisyui implements the default DaisyUI skin.
Package daisyui implements the default DaisyUI skin.
skins/shadcn
Package shadcn implements the shadcn skin: a token-driven restyle of the shared templates over Tailwind CSS, with no component-source dependency.
Package shadcn implements the shadcn skin: a token-driven restyle of the shared templates over Tailwind CSS, with no component-source dependency.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL