CLI tool
mingrammer/go-web-framework-stars avatar
mingrammer/go-web-framework-stars

go-web-framework-stars: a star-ranked Go web framework list you can regenerate yourself

:star: Web frameworks for Go, most starred on GitHub

3,845 stars262 forksGoMIT

At a glance

What is it?
This repository is a generated ranking table of Go web frameworks, not a framework and not a benchmark. It is useful for orientation and for spotting which projects have gone quiet, and it should never be the reason you pick gin over echo.
Who is it for?
Adopt it if you want a single machine-generated table that shows star counts and last commit dates for Go web frameworks, and you are willing to read that table critically. Do not adopt it as a basis for choosing a framework: the ranking is stars, the descriptions are copied from each project, and the table carries no benchmark numbers.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 4 days ago.
What is it written in?
Mainly Go, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What go-web-framework-stars actually is

The repository describes itself as "a list of popular github projects related to Go web framework (ranked by stars automatically)". That sentence is the whole product. There is no server, no library, no middleware. The README is a table with columns for project name, stars, forks, open issues, description and last commit, and the table is produced by a Go program in the repository rather than edited by hand.

That distinction matters more than it sounds. A hand-maintained "awesome" list drifts because a human forgets to add entries. A generated list drifts in a different way: it stays internally consistent, but it only knows about projects someone added to list.txt. The README states the update path plainly, asking contributors to "Please update list.txt (via Pull Request)". So the ranking is automatic, while membership in the ranking is not.

Who is this for? Someone starting a Go service who wants a quick view of the field before reading any documentation. It is a starting point for a search, not a substitute for one. The table gives you names, star counts and last commit timestamps in one screen, which is genuinely faster than opening a dozen repository pages.

How the ranking is generated from list.txt

The repository layout tells most of the story. Alongside README.md and list.txt there are list2md.go and list2md_test.go, plus a .github directory that presumably holds the workflow which runs the generator. The naming is unambiguous: list2md converts a list into Markdown. The README is the output file, list.txt is the input file, and the Go program is the bridge.

The data flow is therefore: list.txt holds the set of tracked projects, the generator resolves each one against GitHub, and the README table is rewritten with current star counts, fork counts, open issue counts, descriptions and last commit timestamps. The presence of list2md_test.go suggests the transformation is tested, which is a reasonable thing to expect from a program whose output is the repository's main artifact.

What the README does not show is the request pattern, the token configuration, or the retry behaviour. It does not document rate limiting, and it does not explain what happens when a project in list.txt is renamed or deleted. Those are the two failure modes I would want answered before running the generator, and the repository as presented does not answer them.

The sorting is by stars, as the README states. That is a popularity signal and nothing more. A framework with 89,237 stars and a framework with 1,777 stars can both be correct choices for different teams, and the table will never tell you which is which.

Running the generator: install and first use

There are no releases in the repository, so installation means building from source. You need a Go toolchain and a clone of the repository. The repository root holds the program, and the README gives no install command at all, so there is no command from the README to quote here. What the README does say is that the list is updated through list.txt via pull request, so the file you edit is list.txt and the file you read afterwards is README.md.

Because the README documents no build step, treat the toolchain invocation as something you verify against the repository itself rather than something this article can hand you. What is confirmable from the layout is the pair of files involved:

text
list.txt
README.md

list.txt is the input you change. README.md is the generated table you inspect. The Go source files at the root, list2md.go and list2md_test.go, are what sit between them.

If you do build and run the generator, the thing to check is whether the table in README.md changed in the way you expected. If it comes back unchanged, the most likely explanation is that the generator could not resolve your entries, and the README does not describe how that failure surfaces.

The table tells you about maintenance, not quality

The last commit column is the most useful column in the table, and it is the one people skip. Reading the data as presented: kit shows a last commit of 2024-03-13, mux shows 2024-06-19, httprouter shows 2024-01-30, revel shows 2022-04-12, martini shows 2017-01-21 and is marked "No longer maintained" in its own description, go-json-rest shows 2017-09-13, and web shows 2019-02-07.

Those are not small gaps. Several of the highest-starred entries in the list have not received a commit in years. Meanwhile chi shows 2026-09-18, echo shows 2026-09-16, fiber shows 2026-09-17 and gin shows 2026-09-19. A reader who sorts by stars alone and picks the fourth entry by habit will get a router that has been quiet since mid-2024.

This is the honest value of the project. It puts star count and last commit side by side in a format you can scan in a minute. It does not draw the conclusion for you, and the README does not warn about stale entries. The table is neutral about the fact that a project with 21,834 stars has not moved in over two years.

Note also that the descriptions are lifted from each project's own repository description. They are marketing copy, not evaluation. Gin's row repeats a claim of being "up to 40 times faster" than Martini, which is the gin project's framing, not a measurement performed here.

Where this list is the wrong tool

The first limitation is the ranking signal itself. Stars accumulate over time and never decay. A framework that was popular in 2019 keeps its stars in 2026, which is exactly why martini still appears with 11,599 stars and a last commit from 2017. Any decision that treats position in this table as a proxy for current suitability is reading the wrong variable.

The second limitation is that the repository contains no benchmark data. The related searches around this project include "Go web framework benchmark", and the README does not provide one. If you need throughput or latency numbers, this repository will not give them to you, and the descriptions that mention performance are quoting the framework authors.

The third limitation is coverage. Membership requires an entry in list.txt. A framework that is new, or that nobody has submitted, is invisible regardless of its merits. The table is a snapshot of what contributors cared about, not a census of the ecosystem.

Finally, this is not a dependency. Nothing in the repository is meant to be imported into your service. Adding it to go.mod would be a category error.

Alternatives and how they differ

The obvious comparison is with the curated awesome-style lists, such as avelino/awesome-go. The difference is maintenance model. An awesome list is edited by humans, so entries can carry commentary, warnings and categories, but they go stale silently. This repository regenerates its table, so numbers are current whenever the generator runs, but the table can only express what fits in six columns. If you want prose about when to use a framework, the curated list is the better shape. If you want current numbers in a fixed format, this one is.

The second alternative is reading each framework's own repository directly. That is slower but strictly more informative: you see the issue tracker, the release history and the actual commit activity rather than a single timestamp. The generator's output is a triage step that tells you which repositories are worth opening.

The third alternative is the Go standard library's net/http with a minimal router. The table includes chi, described as a "lightweight, idiomatic and composable router for building Go HTTP services", and mux, described as a router and URL matcher. For a small service, the standard library plus one of these may be all you need, and the table's star ranking will not help you decide between them because both are widely used.

Licence, upkeep and what running it costs you

The repository is MIT licensed. For a tool that generates a Markdown table, that is unremarkable and permissive: you can run it, modify it and redistribute it, subject to the usual requirement to keep the licence notice. The MIT licence applies to the generator and the README output, not to the frameworks listed, each of which carries its own licence. Do not read the table as a licence summary for anything in it. This is not legal advice; check each framework's own LICENSE file.

Upkeep cost depends on which side you are on. As a reader, the cost is zero: the README is a static file and the last push to this repository was on 2026-09-20, so the table is recent as of this writing. As a contributor, the cost is a pull request against list.txt plus whatever the maintainer's review process is, which the README does not describe. As someone running the generator locally, the cost is a Go build plus whatever GitHub API access the program needs, and the repository does not document that requirement.

The repository has no releases. There is no versioned artifact to pin, so if you build it, you are building from a branch. For a table generator that is acceptable. It would not be acceptable for a library.

Editorial conclusion

Adopt it if you want a single machine-generated table that shows star counts and last commit dates for Go web frameworks, and you are willing to read that table critically. Do not adopt it as a basis for choosing a framework: the ranking is stars, the descriptions are copied from each project, and the table carries no benchmark numbers. Before relying on it, check that list.txt still contains the projects you care about, because the README states that list.txt is the file to update via pull request, and a project missing from that file will never appear in the table no matter how many stars it has.

Frequently asked questions

What is the best web framework for Go according to go-web-framework-stars?

The repository does not answer that. It ranks projects by star count automatically, and the README gives no recommendation. The table shows gin at the top with 89,237 stars, but position reflects accumulated popularity, not suitability for your project.

How do I add a Go web framework to the go-web-framework-stars list?

The README states: "Please update list.txt (via Pull Request)". The README itself is generated output, so editing the table directly would be overwritten the next time the generator runs.

Does go-web-framework-stars include benchmark results for Go web frameworks?

No. The table has columns for project name, stars, forks, open issues, description and last commit. Performance claims that appear in the description column are copied from each framework's own repository description, not measured by this project.

Is go-web-framework-stars a Go library I can import?

No. The repository contains a generator program, list2md.go, and its test file, plus list.txt and README.md. Nothing in it is intended as a dependency for your service.

How can I tell from the table whether a Go framework is still maintained?

Use the Last Commit column. The table shows kit at 2024-03-13, mux at 2024-06-19, revel at 2022-04-12 and martini at 2017-01-21, while gin, fiber, echo and chi all show 2026 dates. The README does not annotate stale entries for you.

Official sources

  1. Issues
  2. License: MIT
  3. mingrammer/go-web-framework-stars on GitHub
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/mingrammer-go-web-framework-stars.svg)](https://hysenlabs.com/projects/mingrammer-go-web-framework-stars)