๐ฆ gobox
gobox is a Go web application code generator that you run in your terminal. Download, run, choose from an extensive library of components and kick-start your next web project in under a minute.
Download the binary and own it for life. There are two tiers:
- Lite - Free, basic features only.
- Plus - Premium, all features included.
gobox is currently in "early access". Plus is available at a reduced price until v1.0.0 is released.
Features
All generated projects use a recommended project layout, and come with a graceful shutdown mechanism, plain-text logging, and support for .env files.
๐ Quick and easy
Choose your base application type (API, SSR), select your components, and generate your tailor-made application code. It couldn't be simpler.
๐ฉ Component based
Choose from a wide range of modular, interface-driven components from password hashing, to caching, to response compression. More are added regularly.
๐งช Tests included
Every gobox component includes unit tests, meaning you can see exactly how the code should be used, and prevent the potential for regressions in the future.
๐พ It's yours
gobox is not a third-party dependency that you add to your go.mod. You generate your project code, and it remains under your control. Want to change how something works? It's right there in your editor.
๐ MIT licensed
Every line of generated code is licensed under the permissive MIT license, giving you full rights to use, modify, distribute, or sell your application. There are no restrictions, no hidden clauses, and no phone-home code.
๐ Well documented
All components come with inline documentation so you know exactly what the code is doing, and how to adjust it to your needs.
๐ Buy once, use forever
Pay once, and get lifetime access to all current and future plus features. Lite features will remain free, forever.
What's included?
Lite version
- Graceful shutdown
- Basic logging
- .env support
- .editorconfig
- Dockerfile / docker-compose
- Makefile
- Database engine selection
- SQLite
- PostgreSQL
- MySQL
- Panic recovery
- CORS middleware
- CSRF protection
Plus version
- Everything in Lite
- Gzip response compression
- HTTP response code error templates
- Password hashing & verification
- Argon2id
- Much more coming before v1.0.0!
Feature roadmap
Here are some of the features planned. Feel free to get in touch if you have an idea for a feature that isn't on the list.
- Rate limiting
- Request/correlation ID generation
- Content Security Policy (CSP) support
- HTTP Strict Transport Security (HSTS) support
- CAPTCHA integration
- bcrypt password hashing
- Hot reloading
- Additional router libraries
- Frontend asset management (Vite)
- JSON Web Token (JWT) support
- User registration + authentication framework
- Registration
- Login
- Email verification
- Forgotten password
- Change password
- Database migration management
-
Makefile generationโ Added in 0.1.3! - Server hot reload
- WebSocket support
- Event bus / pub/sub component
gobox is currently in "early access". Plus is available at a reduced price until v1.0.0 is released.
FAQ
What is gobox?
gobox is a command line tool that generates a starter Go web application for you, based on options and features you choose.
Why gobox?
I love using Go as a way to explore new product ideas. Most of my projects start out the same way and require a similar set of features, so I thought a tool to help me skip a lot of the boilerplate would help me try out a lot more ideas.
What platforms/architectures are supported?
Binaries are available for:
- Darwin x86-64 (AMD64)
- Darwin ARM64
- Linux x86-64 (AMD64)
- Linux ARM64
- Windows x86-64 (AMD64)
Some generated features might only work/make sense on some systems (e.g. Makefile generation).
If a platform you require isn't listed, message me and I'll see what I can do. If Go can cross-compile for the target, then we should be good!
Does it use "AI" / LLMs?
No, it generates code the old fashioned wayโข. The templates are built by me, based on applications I've built in the past.
Feature X doesn't work the way I expect!
gobox is supposed to be a starting point for your application. The intention is for you to modify the generated code to your needs. That said, if a component is wrong, or weird, or buggy, let me know and I'll fix it.
How do I update an existing project to use a newer gobox version?
I've tried to keep components decoupled enough that it should be quite simple to generate a new project and copy over the functionality you need.
I'm also exploring the ability to add new components/features to an existing project if there are no resulting code conflicts.
Does it require an Internet connection?
No, it works offline, on your computer. It doesn't phone home, or record usage, metrics, or analytics, or send logs to me (or anyone).
Is it subscription software?
No, buy it once and use it forever. Also get all future updates for no further charge.
Thanks for checking out gobox <3