Simple, modern, opinionated Web Server in Golang.
Focus on building web services, we take care of the dev tools.
!! WIP Under construction, use at your own risk 😸 !!
Over time, modern Web Frameworks are becoming more and more complex (tech stack, build time, frontend framework, graphql, ...), this comes with a cost in development time and developer sanity.
The idea behind Mango is take the opposite direction, keep the simplicity of static website generator like Hugo or Vitepress, and add the bare minimum on top to build dynamic websites and api.
Avoid abstraction all over the place, embrace KISS fully and get things done!
- ❄️ Unified commands (Mango CLI) and configuration (
.mango.yaml
) - ⏳ Mango is pure development tools, zero runtime overhead
- ⛄ Multi Usage Web Server (pick the part you need):
- ✨ Smooth Dev Experience:
- Live-Reload with Air
- Reproducible Dev Environment based on Devenv (Nix + Devcontainer)
- Standard Code Style from Golangci-lint, Prettier
- 🎖 Code generation to reduce boilerplate:
- Network queries based on Protobuf (Schema First)
- SQL data structure autogenerated from SQL queries (SQL Schema First)
- Templ to generate HTML code (HTML First)
- Install Devenv (nix)
- Open a development shell
devenv shell # not required if you use direnv
mango create
: Bootstrap new appmango dev
: Start the server in development modemango build
: Create Binaries in./dist
(Multi-platform)mango lint
: Run Linting (Golangci-lint, Sqlc vet, ...)mango generate
: Run all the code generators
<app>/api
: API Schema + Handlers<app>/assets
: Static Assets (image, css, js)<app>/codegen
: Auto-generated code (DB, Networking, Mocks, ...)<app>/contents
: Static Contents (markdown)<app>/db
: SQL Schema for SQLC (.sql
)<app>/tools
: 3rd party tooling (Tailwind, ...)<app>/views
: HTMLTemplating<app>/routes.go
: HTTP Router<app>/main.go
: Server Creation
- CLI
- Bootstrap templates
- Better CLI logging
- DB
- DB Migration Tools
- SQLC Crud Queries Auto-generated (Insert/InsertAll/Get/List/Delete)
- Project
- Web UI (HTMX/Templ)
- Handle assets/public folder
- Markdown -> Templ auto-generation (icon, mermaid, code, ...)
- Background Task (queue)
- Doc generation
- Tests / 2e2
- Dev Tool
- Support Nix/Devenv
- Support .env
- Build
- Docker compose integration
- Infra dev tools (graphana)
- Infra
- Make it compatible with devenv container
- Deploy & Document (auto build docker images / binaries) for (Self-hosted, Heroku, Fly.io, GCP, ...)
- Mango itself
- Use Mango to generate the static docs of mango
- Publish docs on github pages