A powerful, minimal 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 and Templui power clean, type-safe UI components in Go.
- Hyperscript makes DOM interactions effortless.
- TailwindCSS gives you instant, elegant styling.
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.
Run everything in a consistent, reproducible environment with Docker. Perfect for local development and deployment.
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 »
Start fast. Scale beautifully. The Go + HTMX Starter Kit is your foundation for building production-ready web apps — effortlessly.
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!
