About FlutterTrends
Choosing a Flutter package is harder than it should be. pub.dev is great for finding packages, but choosing between them usually means opening half a dozen tabs, squinting at pub points, jumping over to GitHub to check whether the project is still alive, and walking away unsure anyway. Multiply that by the dozens of small architectural decisions in a typical Flutter project and it adds up to real time you'd rather spend building.
FlutterTrends exists to compress that decision. Three leaderboards ranked by different signals: what people actually depend on (daily downloads), what's being actively built on (commits to the GitHub repo over the past year), and what's climbing right now (day-over-day rank movement). Each row carries the maintenance signals you'd otherwise hunt down yourself: when the project last shipped, who's behind it, whether the repo is being actively committed to, whether it's archived, and whether the license is friendly to commercial use.
Same data pub.dev and GitHub already publish. We just put it where you'd naturally look.
Who's behind this
Sebastian Szczygiel, co-founder of Primio, an AI app builder that generates production-ready Flutter apps for iOS and Android from text prompts. While working on Primio, a question kept coming up: which packages should the AI actually pick? The typical Primio user doesn't want to spend an afternoon researching whether dio is still maintained or whether riverpod has overtaken bloc this year. And LLMs are limited by their training-data cutoffs: a model trained a year ago will happily recommend a library that's since been abandoned, or miss one that just took over.
FlutterTrends started as the answer to that question for Primio. Now it's a public site for any Flutter developer with the same problem. Primio sponsors the site: the banner at the top of every page is a paid placement, always labeled as sponsored. The rankings themselves are not for sale. They run on pub.dev and GitHub data alone, and no sponsor can buy a position. No affiliate links. Read more about Primio →
What it isn't
Not a "best of" list someone curated. Every ranking comes from real download counts. Categories come from author-set topics, keyword matching, and an AI fallback for the long tail. The repository-health panel reports facts from GitHub, not letter grades or invented "quality scores". Read the data and decide for yourself.
How it works, briefly
Every morning at 03:00 UTC we snapshot pub.dev's top 20,000 packages. Once a week we refresh GitHub data for any package whose code lives there. The site rebuilds nightly off the fresh data. Day-over-day rank movement, weekly commit activity, monorepo context, and plain-English license summaries are all derived from those two sources. The longer methodology is in the FAQ below.
Where the country flags come from
Each verified publisher on pub.dev is mapped to one country code, which renders as a flag on every leaderboard row and on the package detail page. We use three signals, all self-disclosed by the maintainer: the publisher's domain (a country-coded suffix like .de or .jp), the publisher's GitHub owner profile location, and the contact email listed on the pub.dev publisher page. The first signal that gives a clear country wins. Publishers with no clear signal render no flag rather than a guess.
A flag tells you where the publisher is based, not where the code was written. Large corporate publishers like Google or Microsoft show their headquarters country even though their engineering teams are global. Many long-tail maintainers using generic email providers and blank GitHub profiles stay unflagged, and that's the honest answer.
Frequently asked questions
How often is the data updated?
Once a day. We pull the latest numbers from pub.dev each morning and the rankings update automatically. GitHub repository health (commits, contributors, issues, license, CI) refreshes weekly.
How are the rankings decided?
Three leaderboards, three different signals. Most downloaded ranks by daily downloads: pub.dev's 30-day total divided by 30. Most active ranks by total commits to the linked GitHub repository over the past 52 weeks. Movers ranks by day-over-day change in the downloads leaderboard. All three use real data pub.dev or GitHub already publishes. No editorial picks, no quality scores we invented, nothing in the rankings is for sale. The Primio sponsor banner is a clearly labeled paid placement that sits outside the data and never affects a package's position.
Why daily downloads, not the 30-day total?
Smaller numbers read more naturally. "2,000 downloads/day" is easier to ballpark than "60,000 in the last month". The two numbers carry the same information; we just divide pub.dev's 30-day total by 30. Rankings are unchanged because dividing every package by the same constant preserves the order. The trade-off is being clear that this is a 30-day average, not yesterday's actual downloads. Yesterday's true number isn't recoverable from a rolling total alone, so the average is the cleanest figure pub.dev's data supports.
Why is package X missing?
pub.dev publishes a top-20,000 list and we follow it. If a package is below that bar, it isn't here. If it's in pub.dev's top 20k but missing from FlutterTrends, get in touch and we'll look.
How are categories chosen?
A package gets a category in three ways. First, from the topics its author set on pub.dev. Second, if no topics are set, from a keyword match on the package name and description. Third, for packages still uncategorized, an AI model reads the description and picks 0-3 categories from our taxonomy of 40. The model only fills gaps the rule-based pass missed; it never overrides a rule match.
What does the Repository health panel show?
For any package with a GitHub repository, we surface signals pub.dev doesn't: last commit date, archived status, open issues and pull requests, contributor count and bus-factor share, CI presence, the license file detected on the repo, and a 52-week commit-activity sparkline. Click the sparkline for a bigger chart with derived stats. Click the license SPDX for a plain-English summary of what the license permits and requires.
What if several packages share one repo (monorepo)?
About 30 to 40 percent of the most-used Flutter packages are subpackages of a larger monorepo (dart-lang/sdk backs analyzer, meta, vm_service, and many others). When several tracked packages share a GitHub repo, the Health panel labels itself "shared with N sibling packages" and shows the sibling list. Repo-level numbers like open issues then read as shared infrastructure context, not per-package alarm.
Why is a trend chart flat?
The chart shows daily downloads, derived from pub.dev's 30-day rolling total divided by 30. Because each point includes 29 days of overlapping history with the next, day-to-day changes are tiny for established packages. The chart only really comes alive over weeks.
Get in touch
Spotted a wrong category? A package that should be ranked but isn't? Want to send a feature request? Email fluttertrends@blackfinch.pl.
See also: service status · privacy policy.
