{"id":19885109,"url":"https://github.com/kefniark/mango","last_synced_at":"2026-06-07T18:32:31.261Z","repository":{"id":240491595,"uuid":"802776442","full_name":"kefniark/mango","owner":"kefniark","description":"Simple, modern, opinionated Web Server in Golang","archived":false,"fork":false,"pushed_at":"2024-05-28T15:18:36.000Z","size":317,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-29T06:11:23.261Z","etag":null,"topics":["backend","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kefniark.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-19T08:33:58.000Z","updated_at":"2024-05-31T11:37:30.766Z","dependencies_parsed_at":"2024-05-19T09:35:56.543Z","dependency_job_id":"967e4185-0de7-48e4-9e4f-3273952dd039","html_url":"https://github.com/kefniark/mango","commit_stats":null,"previous_names":["kefniark/go-web-server","kefniark/mango"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kefniark/mango","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kefniark%2Fmango","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kefniark%2Fmango/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kefniark%2Fmango/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kefniark%2Fmango/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kefniark","download_url":"https://codeload.github.com/kefniark/mango/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kefniark%2Fmango/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34034024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","golang"],"created_at":"2024-11-12T17:32:44.958Z","updated_at":"2026-06-07T18:32:31.241Z","avatar_url":"https://github.com/kefniark.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🥭 Mango\n\nSimple, modern, opinionated Web Server in Golang.\n\nFocus on building web services, we take care of the dev tools.\n\n!! **WIP** Under construction, use at your own risk 😸 !!\n\n## Goals\n\nOver 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.\n\nThe 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.\n\nAvoid abstraction all over the place, embrace **KISS** fully and get things done!\n\n## Features\n\n- ❄️ Unified commands (**Mango CLI**) and configuration (`.mango.yaml`)\n- ⏳ Mango is pure development tools, zero runtime overhead\n- ⛄ Multi Usage Web Server (pick the part you need):\n  - API Endpoints based on [Connect](https://connectrpc.com/) (Support GRPC, Restful, OpenAPI, Swagger, ...)\n  - Database Access based on [SQLC](https://github.com/sqlc-dev/sqlc) (Support sqlite, postgres, mysql)\n  - Support static content (Markdown)\n  - Support dynamic HTML content with [Templ](https://github.com/a-h/templ)/[Htmx](https://htmx.org/)\n  - Modern UI based on [BeerCSS](https://www.beercss.com/) (Material Design)\n- ✨ Smooth Dev Experience:\n  - Live-Reload with [Air](https://github.com/cosmtrek/air)\n  - Reproducible Dev Environment based on [Devenv](https://devenv.sh/) (Nix + Devcontainer)\n  - Standard Code Style from [Golangci-lint](https://github.com/golangci/golangci-lint), [Prettier](https://prettier.io/)\n- 🎖 Code generation to reduce boilerplate:\n  - Network queries based on Protobuf (**Schema First**)\n  - SQL data structure autogenerated from SQL queries (**SQL Schema First**)\n  - [Templ](https://github.com/a-h/templ) to generate HTML code (**HTML First**)\n\n## Getting Started\n\n### Step 1. Setup Environment\n\n- [Install Devenv (nix)](https://devenv.sh/getting-started/)\n- Open a development shell\n\n```sh\ndevenv shell # not required if you use direnv\n```\n\n### Step 2. Use the Mango CLI\n\n- `mango create`: Bootstrap new app\n- `mango dev`: Start the server in development mode\n- `mango build`: Create Binaries in `./dist` (Multi-platform)\n- `mango lint`: Run Linting (Golangci-lint, Sqlc vet, ...)\n- `mango generate`: Run all the code generators\n\n## App Folder Structure\n\n- `\u003capp\u003e/api`: API Schema + Handlers\n- `\u003capp\u003e/assets`: Static Assets (image, css, js)\n- `\u003capp\u003e/codegen`: Auto-generated code (DB, Networking, Mocks, ...)\n- `\u003capp\u003e/contents`: Static Contents (markdown)\n- `\u003capp\u003e/db`: SQL Schema for [SQLC](https://github.com/sqlc-dev/sqlc) (`.sql`)\n- `\u003capp\u003e/tools`: 3rd party tooling (Tailwind, ...)\n- `\u003capp\u003e/views`: HTMLTemplating\n- `\u003capp\u003e/routes.go`: HTTP Router\n- `\u003capp\u003e/main.go`: Server Creation\n\n## TODO Progress\n\n- CLI\n  - [ ] Bootstrap templates\n  - [x] Better CLI logging\n- DB\n  - [ ] DB Migration Tools\n  - [ ] SQLC Crud Queries Auto-generated (Insert/InsertAll/Get/List/Delete)\n- Project\n  - [x] Web UI (HTMX/Templ)\n  - [x] Handle assets/public folder\n  - [x] Markdown -\u003e Templ auto-generation (icon, mermaid, code, ...)\n  - [ ] Background Task (queue)\n  - [ ] Doc generation\n  - [ ] Tests / 2e2\n- Dev Tool\n  - [x] Support Nix/Devenv\n  - [x] Support .env\n  - [x] Build\n  - [ ] Docker compose integration\n  - [ ] Infra dev tools (graphana)\n- Infra\n  - [ ] Make it compatible with devenv container\n  - [ ] Deploy \u0026 Document (auto build docker images / binaries) for (Self-hosted, Heroku, Fly.io, GCP, ...)\n- Mango itself\n  - [x] Use Mango to generate the static docs of mango\n  - [ ] Publish docs on github pages\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkefniark%2Fmango","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkefniark%2Fmango","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkefniark%2Fmango/lists"}