based upon https://github.com/dresswithpockets/go-steam-openid-template
[!NOTE] see https://github.com/jump-fortress/site for a more complex example project
/api/env/.env.localmigrate and sqlc, init sqlite3 dbcd api
go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
go install -tags 'sqlite3' github.com/golang-migrate/migrate/v4/cmd/migrate
migrate -source file://db/migrations -database sqlite3://db/jump.db up
go run .
cd web
npm i
npm run dev
cd api
migrate create -ext sql -dir db/migrations change-summary
# move up to next migration version
migrate -source file://db/migrations -database sqlite3://db/jump.db up 1
/db/sql with sqlc's basic query annotationscd api
sqlc generate
important bits of the api's filetree
/db/migrations//db/sql/registerRoutes() in /internal/api.go to see an example of permissions using a "dev" role/internal/routes/routes.go/models/svelte-go-steam/
├── api/
│ ├── db/
│ │ ├── migrations/
│ │ │ ├── 20260302212745_init.down.sql
│ │ │ └── 20260302212745_init.up.sql
│ │ └── sql/
│ │ ├── disallow_token.sql
│ │ ├── openid_nonce.sql
│ │ ├── session.sql
│ │ ├── user.sql
│ │ └── user_role.sql
│ ├── env/
│ │ ├── .env.example
│ │ └── env.go
│ ├── internal/
│ │ ├── api.go
│ │ ├── middleware.go
│ │ ├── routes/
│ │ │ ├── routes.go
│ │ │ └── user.go
│ ├── main.go
│ ├── models/
│ │ ├── conversions.go
│ │ ├── errors.go
│ │ ├── input.go
│ │ ├── models.go
│ │ └── output.go
│ └── sqlc.yaml