Python web frameworks: star history compared
Django and Flask split the Python web for a decade — batteries-included versus micro — until FastAPI arrived and put async, type hints, and automatic OpenAPI docs into one package. FastAPI reaching parity with frameworks fifteen years its senior is one of the defining star-history stories in Python. Starlette (the engine under FastAPI) and Litestar are worth watching if you want to see where the async stack goes next.
Ranked by current GitHub stars · growth = stars gained in the trailing 90 days · data updated Aug 2026
- fastapi/fastapi
- django/django
- pallets/flask
- tornadoweb/tornado
- encode/starlette
- litestar-org/litestar
Ranking
6 repositories
| # | Repository | Stars | +90d | First star | Health |
|---|---|---|---|---|---|
| 1 | fastapi/fastapi | 101,127 | ~126 | 2018 | debt charts |
| 2 | django/django | 88,248 | ~140 | 2012 | debt charts |
| 3 | pallets/flask | 72,014 | ~100 | 2011 | debt charts |
| 4 | tornadoweb/tornado | 22,191 | ~15 | 2011 | debt charts |
| 5 | encode/starlette | 12,509 | ~46 | 2018 | debt charts |
| 6 | litestar-org/litestar | 8,368 | ~25 | 2021 | debt charts |
Decision matrix
Repository health compared
Live Postgres analysis · unavailable data stays labeled
Popularity is only one axis. Compare technical scale, maintenance cadence, ownership resilience, and change pressure using the same completed repository analysis behind each report.
:: Reach
Popularity and real-world adoption
| Signal | fastapi/fastapi | django/django | pallets/flask | tornadoweb/tornado | encode/starlette | litestar-org/litestar |
|---|---|---|---|---|---|---|
| GitHub starsCurrent public GitHub metadata total. | ◆101,127 | 88,248 | 72,014 | 22,191 | 12,509 | 8,368 |
| Stars gained · trailing 90dChange in the newest 90 days covered by each cached series. | +126 | ◆+140 | +100 | +15 | +46 | +25 |
| ForksCurrent public GitHub metadata total. | Not available | Not available | Not available | Not available | Not available | Not available |
| Largest package audienceLargest resolved registry total; sources are shown explicitly. | No resolved package | No resolved package | No resolved package | No resolved package | No resolved package | No resolved package |
| Repository ageElapsed years since the GitHub creation timestamp. | 7.6 years | 14 years | 16 years | 17 years | 8.1 years | 4.7 years |
:: Codebase
Size and technical center of gravity
| Signal | fastapi/fastapi | django/django | pallets/flask | tornadoweb/tornado | encode/starlette | litestar-org/litestar |
|---|---|---|---|---|---|---|
| Dominant languageLargest share of analyzed code lines at current HEAD. | Not available | Not available | Not available | Not available | Not available | Not available |
| Code linesAnalyzed source lines at current HEAD, excluding blanks and comments. | Not available | Not available | Not available | Not available | Not available | Not available |
| Languages representedLanguages with non-zero files or line counts. | Not available | Not available | Not available | Not available | Not available | Not available |
:: Maintenance
Commit volume and recent operating cadence
| Signal | fastapi/fastapi | django/django | pallets/flask | tornadoweb/tornado | encode/starlette | litestar-org/litestar |
|---|---|---|---|---|---|---|
| Repository commitsFull repository commit total reported by the analysis. | Not available | Not available | Not available | Not available | Not available | Not available |
| Commits · trailing 90dCommit count in the newest 90 days covered by the repository analysis. | Not available | Not available | Not available | Not available | Not available | Not available |
:: Ownership
How broadly maintenance responsibility is distributed
| Signal | fastapi/fastapi | django/django | pallets/flask | tornadoweb/tornado | encode/starlette | litestar-org/litestar |
|---|---|---|---|---|---|---|
| Bus factorFewest analyzed contributors carrying at least half the commits. | Not available | Not available | Not available | Not available | Not available | Not available |
| Top contributor concentrationShare of attributed commits carried by the most active contributor. | Not available | Not available | Not available | Not available | Not available | Not available |
:: Change signals
Debt markers and fix pressure in frequently changed files
| Signal | fastapi/fastapi | django/django | pallets/flask | tornadoweb/tornado | encode/starlette | litestar-org/litestar |
|---|---|---|---|---|---|---|
| Fix-labelled share · frequently changed filesFix-labelled commits divided by commits across the analyzed high-frequency file set. | Not available | Not available | Not available | Not available | Not available | Not available |
| Recent TODO/FIXME movementLatest cumulative marker count and its change over the trailing 90 days. | Not available | Not available | Not available | Not available | Not available | Not available |
Head to head
open in the builderFrequently asked
Which of these python web frameworks has the most GitHub stars?
fastapi/fastapi is the most-starred of the python web frameworks gitdebt compares, with 101,127 GitHub stars as of Aug 2026. It earned its first star in 2018.
Which of these python web frameworks is growing the fastest?
django/django added the most stars over the last 90 days of its cached history — about 140 new stars, compared with about 126 for the category leader fastapi/fastapi. 90-day figures are approximate for older repos, whose history is downsampled.
How is this comparison computed?
The table ranks public repository metadata by current total stars. When historical stargazer timestamps are available, gitdebt plots their cumulative series on shared axes and estimates trailing 90-day growth. Repo-health charts come independently from each repository's commit history.