YKYH Picks
☰ Menu
Home›Methodology

How we rank Mac apps

In short: apps are ranked by 30-day Homebrew install count, descending, with alphabetical order as the tie-breaker. Install counts are opt-in Homebrew analytics, not total user numbers. No vendor can pay for a position.

Ranking

The default order is the number of brew install and brew install --cask requests recorded by Homebrew analytics in the last 30 days. Ties are broken alphabetically. Category pages, the all-apps list, the open-source list and collection pages all use this order unless the page says otherwise.

What the install count means

Homebrew analytics are opt-in. The count covers installs performed through Homebrew only, so it undercounts apps that most people download directly. It is a relative popularity signal, not a market-size estimate, and it is never presented as a quality score.

Trending

The trend ratio is the 30-day daily install rate divided by the daily rate over the remaining 335 days of the 365-day window. A value above 1 means recent adoption is higher than the app's own historical average. Apps below 1 are not shown as "growing".

Version variants

When two packages share a display name (for example a stable and an @latest variant), only the variant with the highest 30-day install count is kept. The other variant is not published in the catalogue.

Categories

Homebrew does not publish a category taxonomy, so categories are inferred from the name and description with weighted keywords. Short keywords are matched as whole words, and a hand-maintained override list corrects known edge cases. A package can appear in more than one category.

Open-source status

Formulae declare an SPDX licence, so a declared licence is treated as open source. Casks carry no licence field. A cask is marked "Yes" only when a source repository is linked from its homepage, or when a GitHub download repository matches the app name and is not a release mirror; that weaker case is shown as "inferred". Otherwise the page says "Not declared".

Comparisons and alternatives

/vs/ pages and /alternatives/ pages come from a hand-maintained set of same-purpose apps. They are not generated by keyword similarity. The "Similar apps" block on an app page is a broader, automatic same-category list and is labelled as such.

Freshness and citation

Every build re-reads the cached Homebrew JSON and writes the build date into the page, sitemap and structured data; the deployment pipeline refreshes the cache with fetch_data.py --force first. When citing a page, use its canonical URL. For a machine-readable index of every app, see llms-full.txt.

Last updated 2026-10-26.