MLXDocs
AI App Store

MLX Score

Markdown

The MLX Score rates a listing from 1 to 5 using only public data (App Store ratings, Homebrew installs, GitHub stars, Hugging Face downloads, npm and PyPI downloads), ranked against the other listings in its category. It is never a user rating and never paid for.

The code is lib/store/score.ts (scoreAll); the signals are read by lib/store/signals.ts. Every listing page shows the score's parts: each signal, its value and when it was read. The method in words is on apps.mlx.app/score.

The signals

A listing names where its signals live (signals in its entry). Each one becomes a single number, bigger is better:

SignalSourceThe numberWeight
RatingApp Store and Mac App Store, as Apple reports themThe average rating, shrunk toward 3.5 as if there were 50 more ratings of 3.5: (avg × n + 3.5 × 50) / (n + 50). Ten ratings say less than ten thousand.0.35
Homebrewformulae.brew.sh install countslog₁₀(1 + installs in the last 90 days)0.20
GitHubthe repositorylog₁₀(1 + stars), with stars counted at half when the repository has had no push for a year0.20
Hugging Facethe model or organisationlog₁₀(1 + downloads) + ½ · log₁₀(1 + likes)0.15
Packagesnpm and PyPIlog₁₀(1 + monthly downloads of both)0.10

A signal a listing doesn't have, or that reads zero, is left out. It is never guessed.

From signals to a score

  1. Rank each signal

    Each of the listing's numbers is ranked against the same signal of the other listings in its category, as a percentile from 0 to 1 (ties count half). When fewer than four listings in the category have that signal, it is ranked against every listing in the store that has it.

  2. Weigh them

    The percentiles are averaged with the weights above, over the signals the listing actually has. A listing with only GitHub stars is scored on its stars alone.

  3. Map to 1–5

    Score = 1 + 4 × the weighted percentile, rounded to one decimal. A listing with no signal at all has no score.

Because the score is a rank within a category, it says how a listing compares with the alternatives next to it, not how good it is in absolute terms. A 4.5 among coding agents and a 4.5 among voice apps are each near the top of their own shelf.

What never goes into it

  • No paid placement and no paid ratings. If paid placement ever exists, it will be labelled "Sponsored" and will not change the score or the rankings.
  • No affiliate links.
  • No user ratings, no reviews written by us or by an AI, no "estimated users", and no rating count we didn't read.

Freshness

The produce cron reads the oldest signals first, four listings every five minutes, and a signal older than six hours is due again; a view of a store page can also queue a refresh. The catalogue API carries the current scores.