I’m excited to share my open-source pet project, Gojang, a new web framework built with Go and HTMX (https://gojang.io & https://github.com/gojangframework/gojang).
My aim with Gojang is to help Go developers build rich, interactive web apps without the complexity and overhead of heavy JavaScript front-end frameworks.
Here’s what makes Gojang compelling:
🌟 Key Highlights & Philosophy
- Batteries Included - Gojang comes with built-in support for many essential features so you can focus on your application logic, not plumbing: authentication, admin panel (auto-generated CRUD for any model), ORM, security middleware, logging, etc.
- HTMX-First Approach - Dynamic UX doesn’t require building a separate SPA. Instead, you can sprinkle HTMX-powered interactions (via hx-* attributes) to make pages more responsive and interactive. Gojang is optimized for that.
- Type Safety via Ent ORM - Under the hood, Gojang uses Ent (a Go ORM with schema and code generation) for compile-time safety, meaning many errors can be caught early.
- Product-Ready Features Out of the Box - Security (CSRF protection, rate limiting, encryption), audit logs, structured logging, error recovery, middleware support, and testing support are part of the core.
- Developer Experience Focus - including hot reloading, automated model, CRUD, and page generation. Also lean project structure, minimal boilerplate, and clear docs to help onboard developers quickly.
- Easy Deployment - Go projects are built to a single executable binary. That's all you need to ship to run the server.
đź§± Getting Started (in ~5 minutes)
Here’s a minimal flow to spin up Gojang:
git clone https://github.com/gojangframework/gojang
cd gojang
go mod download
task dev
task seed (insert admin account)
Once running, visit http://localhost:8080 and you’ll see your baseline app in action.
From there you can use the interactive generators:
task addmodel — scaffold a new model (schema, CRUD handlers, templates, admin) in seconds
task addpage — quickly add static pages like “About,” “Contact,” etc.
You define your schema using Ent’s fluent API, generate code, and then register your model so the admin panel and routes are wired automatically.
đź’¬ Why Gojang?
In the Go ecosystem, many frameworks lean minimal (just a router + handlers) and expect you to assemble all pieces yourself. Meanwhile, in the front-end world, frameworks like React / Vue / Svelte dominate SPA patterns that often separate concerns and create friction in full stack development.
With HTMX rising in popularity, there’s room to rethink how we build modern web interfaces — more server-centric, less JS boilerplate. Gojang sits at that intersection: you use Go everywhere, benefit from server safety and consistency, and only sprinkle dynamic behaviors where needed.
I built Gojang to:
Let teams ship features faster (fewer decisions needed up front)
Keep the mental model simple: Go + HTML + HTMX
Ensure safety, structure, and maintainability from day one
Cater to developers who want modern UX but with less front-end complexity
đź”— Links
Website & docs: https://gojang.io
GitHub: https://github.com/gojangframework/gojang
Let me know what you think, and let’s build something great together.
Top comments (0)