A powerful, starter kit for building fast and beautiful web servers using Go, HTMX, and PostgreSQL. Everything you need to move from idea to production — quickly, cleanly, and with style.
A fast, reliable, and easy-to-learn language — perfect for modern web backends.
Build rich, reactive web interfaces using HTML-first development.
- HTMX brings interactivity without JavaScript frameworks.
- Templ easy type-safe UI components in Go.
- Postgres powerful, open-source relational database management system.
- Jet type-safe database access with go-jet, a powerful query builder that generates Go code directly from your schema.
Session-based authentication with role-based privilege checks. Private routes can easily be secured with the PrivateRouteBuilder, which auto-manages privilege creation and enforcement.
Type-safe database access with go-jet, a powerful query builder that generates Go code directly from your schema.
Clean, structured logging powered by Zap.
Logging levels are automatically configured via your .env environment.
Enjoy fast iteration cycles using Air — your app reloads instantly on file changes.
Automation made easy with make commands:
make live— run the app with live reloadmake migrate-generate— create a new migration- Explore more in the Makefile »
To run the application locally, follow these steps:
- Clone the repository and navigate to the project directory.
- Install Go and Docker.
- Setup your
.envusing the.env.examplefile as a template.
- Build and run the Docker image using the command
make docker- when the controllers are built and run usingmake webit will create privileges associated with each controller and insert them into the database. - In a separate terminal, run
make seedto create 'basic' and 'admin' privilege levels and give all privileges to the admin level. - Open your browser and navigate to
http://localhost:8080to access the application.- If you changed the
PORTin your.envfile, you will also need to update the Dockerfile.
- If you changed the
- Install PostgreSQL, Make, and NPM on your machine. Start your PostgreSQL service.
go mod downloadnpm install- Start the PostgreSQL container using the command:
make docker-postgres - Run migrations on the postgres container:
make migrate make jet-allto generate all database objects and query building functionality.make liveto start the server - this will create privileges associated with each controller and insert them into the database.- In a separate terminal, run
make seedto create 'basic' and 'admin' privilege levels and give all privileges to the admin level. - Begin live development!
