InfnityRepo Back to the list

How starwire works

Where the repos come from, how they're checked, and exactly how every list is ranked. If something here doesn't match what you see, tell us.

Last changed November 8, 2026. Every change to the method is listed at the bottom.

Where repos come from

A repo lands on starwire when someone points at it. We collect five kinds of picks:

Each of these counts as a separate source. A repo picked by several of them is shown as picked 2×, picked 3× and so on.

What gets listed

Listing a repo isn't an endorsement or a security review. Read the code and the license before you run anything.

How often it updates

WhatHow often
Looking for new repos, handling submissionsEvery two days
Stars, forks, open issues and pull requests, last commit, license, renamesEvery day, for every listed repo
Star history used by TrendingOne count per repo per day, kept daily for 90 days and weekly after that

The data behind the site is public: repos.json, and an RSS feed of new picks.

Categories and descriptions

Each new repo is put in one of 15 categories and gets a one-line description, written by an AI model (Claude) from the repo's own description and README, following fixed rules: say what it does in plain words, no hype. Submitters can suggest a category. These are the parts most likely to be wrong, so if one is, open an issue with the repo link and we'll fix it.

Trending shows repos gaining stars fastest right now for their size. It uses only stars we measured ourselves.

Hidden gems is the same list, cut down to repos that still have fewer than 1,000 stars: the ones rising before most people have heard of them.

1. Stars gained in the last 7 days

Every day we record each repo's star count. The gain is today's count minus the count from 7 days ago.

2. Adjusted for size

A repo with 200,000 stars picks up hundreds a week out of habit. A small one gaining the same is far more remarkable. So the ranking divides the gain by the square root of the repo's size:

heat = stars gained in 7 days / √(stars + 100)

The square root keeps big repos in the running without letting them drown out small ones, and the + 100 stops a brand new repo with a handful of stars from jumping to the top on its first few. A repo needs at least 50 stars in the week to appear in Trending at all.

Example: +2,000 stars on a 3,000-star repo scores 2,000 / √3,100 ≈ 36. The same +2,000 on a 100,000-star repo scores about 6.

The other sorts and labels

SortOrder
Worth a lookThe default. Stars gained in the latest day, weighted by five signal checks. How it works
Most stars todayStars gained in the latest day of our daily counts, with no weighting. The arrow beside the rank compares it with the day before.
Most pickedNumber of different sources that picked the repo. Each source counts once, however often it posts. Ties go to more stars.
TrendingHeat, as above
Most starsCurrent stars
Newest picksThe date a repo was first picked by any source
Recently updatedThe last commit to the repo
Recently savedYour own saves, newest first. Saves stay in your browser.
LabelMeaning
newA new project: first picked in the 7 days before the latest update, and created on GitHub in the last 90 days. Older repos picked for the first time join the list without this label. The same rule picks "New this week".
picked 3×Picked by 3 different sources
Green dot, updated 5d agoLast commit under 30 days ago
Amber dot, updated 4mo agoLast commit under a year ago
Grey dot, quiet 2yNo commits for a year or more

What never affects ranking

Worth a look, the default order

Stars are easy to get for a week. A new repo with a polished README can collect thousands before anyone has used it. So the default order isn't raw star gain. It is stars gained per day, weighted by five checks on whether that attention looks earned:

CheckPasses whenWhy
PickedMore than one independent source picked itOne mention can be luck or a friend; two rarely are
AgedThe repo is older than 90 daysIt has outlived its launch week
ActiveCode was pushed in the last 30 daysSomeone is still working on it
ForkedAt least 3 forks for every 100 stars (repos with 200 stars or more)People who use a project fork it; stars with almost no forks are attention, not use
SteadyNo single day holds more than 60% of the week's new stars (when the week brought 50 or more)A one-day spike is a post going round, not a trend

A repo that passes every check it can be judged on keeps its full daily gain. Each one it fails takes an equal share off, down to a quarter of its gain for a repo that passes none. A check with too little to go on is left out instead of counted against the repo. Nothing is hidden or removed: a repo with weak signal sinks in this one order, and still shows in search, in its area and in every other sort. "Most stars today" is the same list without the weighting.

The checks say whether attention looks earned. They don't say a project is good, and a young project from one source can be excellent. Every repo page shows which checks it passed, and the rules are in one short file you can read or challenge.

Vital signs on repo pages

Each repo page shows four signs, measured from GitHub about once a week. They describe the project's recent activity; they aren't a rating of its quality. They only break ties on alternatives pages, and never change the order of any other list.

SignWhat it showsGreen whenAmber when
MomentumIts place among repos in the same subarea, by stars gained this weekIn the top quarterBelow the top 60%
ActivityCommits to the main branch in each of the last 12 weeksCommits in at least 6 of the 12 weeksNo commits in 12 weeks
ReleasesTime since the latest GitHub releaseWithin 90 daysOver a year ago
IssuesIssues closed in the last 90 days, as a share of issues opened (capped at 100%)60% or moreUnder 30%

Anything between is shown in a softer green. Some signs are left out instead of judged: no releases (many projects never use GitHub releases), fewer than 5 issues opened and closed in 90 days, or a repo with no measured star gain. "How it compares" puts the same numbers next to repos that replace the same tools, or its closest neighbours in its subarea.

Setup effort

Not everyone who wants an open source tool runs servers. The Setup label, shown on repo pages, alternatives pages and collections and as a filter on the list, says how much know-how a project takes to get running. It is read from how the project is packaged, taking the easiest route it offers:

LabelShown when the project isWhat it means
Install like an appA desktop app, mobile app or browser extensionDownload it and open it. No server, no terminal.
Hosted, free plan
Hosted, paid
Hosted version
A server or browser project whose makers also run it for youSign up on the project's site, nothing to install. The label says whether it has a free plan, is paid only, or doesn't state a price. Running it yourself still needs a server.
Runs in a browserA web app with no server packagingOpens in a browser, but you may have to start it yourself.
Uses the terminalA command-line toolInstalled and run by typing commands.
Needs a serverA self-hostable serviceSomeone technical sets it up on a server, usually with Docker.
For developersA library, framework, plugin or similarA building block for people who write code.

We haven't installed these projects, so the label describes packaging, not how smooth the install is. The hosted label is judged from each project's own README and website, so far only for projects listed as an alternative to a paid product, and it is checked again when either text changes. Plans and prices move, so confirm on the project's site. A project without the label may still have a hosted version we missed. Setup never changes any ranking.

Licenses

Every repo shows the license GitHub finds in it, and the License filter groups them into four kinds. They say what was found, they aren't legal advice, and nothing is left off the list because of its license.

How well an alternative fits

Every product on the alternatives pages has a short checklist of the jobs people use it for, 5 to 8 of them, with the 2 or 3 core jobs marked. Notion's include pages and docs, databases with views, and real-time collaboration. Each project listed against a product is then read against that checklist, from its README and its website: yes, partly (planned, basic, or needs a plugin) or not shown, with the line that backs each yes or partly.

The checklists and the reading are done with Claude and checked against a hand-made set of pairs before each change. A feature that neither the README nor the website mentions scores as missing, so a project that documents little can rank lower than it deserves. A project is read again when its README or website changes.

Use the data

Everything starwire publishes is free to build on. The list and its data are CC0: no key, no sign-up, no credit needed. All of it refreshes once a day.

WhatAddress
Every repo, as JSONhttps://raw.githubusercontent.com/boffti/starwire/main/data/repos.json
The day's best, as RSS (one item a day)https://starwire.foo/top.xml
The 100 newest picks, as RSShttps://starwire.foo/feed.xml
Past issues of the weekly email, and as RSShttps://list.starwire.foo/archive and /archive.xml
One area as a Markdown listhttps://github.com/boffti/starwire/tree/main/lists
A repo's badge for its READMEhttps://infinityrepo-share.infinityalgo.workers.dev/owner/repo/badge.svg
A repo's share link and card image/r/owner/repo/ on this site, and its /card.png from infinityrepo-share.infinityalgo.workers.dev

repos.json is one array with an entry per repo. It can be fetched from a web page, since GitHub serves it to any site.

FieldWhat it holds
repo, url, pageThe owner/name, its GitHub address and its page on starwire
line, descriptionOur one-line summary, and the repo's own description
area, subarea, categoryWhere it sits in the list
forms, platforms, worksWith, tagsWhat kind of thing it is, where it runs, what it plugs into, and its themes
alternativeToProducts it can stand in for
stars, forks, language, license, topics, homepageFacts from GitHub. license is an SPDX id, Other for a custom license, or null for none
createdAt, pushedAtWhen the repo was created and last pushed to
firstSeen, picksThe day it was first picked, and how many sources have picked it
starsThisWeek, trendingStars gained in the last 7 days as we measured them, and whether it's on the Trending list
starsWhenPickedStars it had on the firstSeen day, or null when we couldn't measure it

Fields are only ever added to this file. None will be renamed or removed, so anything you build on it keeps working. The files under starwire.foo/data/ are the site's own and can change shape without notice; use repos.json instead.

What we count

starwire counts visits with GoatCounter to learn what's useful: no cookies, nothing stored in your browser, no IP addresses kept, no way to follow you to other sites. The numbers are public, so you see exactly what we see.

If your browser sends Do Not Track or Global Privacy Control, nothing is counted and the counting script isn't loaded at all.

Known limits

Changes to the method