An opinionated template for building full-stack applications with a Go backend and Svelte frontend, packaged as a single binary.
make run
Starts the server on port 7400 with in-memory SQLite. Configure via local_config.yaml or environment variables.
make ui-install # first time only
make ui-dev # start Vite dev server on port 5173
make ui-build-go # build UI into Go embed dir
make build # compile to bin/app
The resulting bin/app binary serves both the API and UI.
Config is loaded from YAML and/or environment variables.
| Setting | YAML | Env | Default |
|---|---|---|---|
| Port | port |
PORT |
7400 |
| SQLite directory | sqliteDir |
SQLITE_DIR |
in-memory |
| Turso DSN | tursoDSN |
TURSO_DSN |
— |
| CORS origins | corsOrigins |
CORS_ORIGINS |
— |
| Serve UI | ui |
UI |
true |
| Log level | logger.level |
LOGGER_LEVEL |
info |
| Structured logs | logger.structured |
LOGGER_STRUCTURED |
false |
make test # run tests
make lint # run golangci-lint
make gen # regenerate sqlc after query/migration changes