head to head · open source
dots vs gain
dots has 32,357 GitHub stars, 4,739 forks, 0 open issues and last shipped 3 days ago. gain has 2,017 stars, 203 forks, 3 open issues and last shipped 3 months ago. dots leads on adoption by 1,504% (32,357 vs 2,017 stars). dots is written in TypeScript under MIT; gain is written in Python under MIT. dots has attracted 15% as many forks as stars, gain 10%. dots was the more recently maintained of the two, and both are self-hostable with no licence fee.
Two open source projects, one decision. Both are free and self-hostable — the differences are community size, license terms, language stack and release pace.
← all 20902 open source comparisons
Side by side
| dots | gain | |
|---|---|---|
| GitHub stars | ★ 32K | ★ 2.0K |
| License | MIT | MIT |
| Written in | TypeScript | Python |
| Last push | 2026-10-31 | 2026-08-09 |
| Forks | ⑂ 4.7K | ⑂ 203 |
| Self-hosting | Yes | Yes |
| Data ownership | Your server | Your server |
pick dots if
- You weight community size — 32K stars and counting
- You want the MIT license terms
- Your stack matches TypeScript
- You value the larger contributor base for long-term maintenance
pick gain if
- You want the gain feature set and don't need the biggest community
- You prefer the MIT license terms
- Your stack matches Python
- You evaluated both and gain fits your workflow better
About dots
dots Every AI agent is a model and a browser. You can swap the model with one flag. The browser is what the website sees. Windows, in PowerShell: Linux: Then open The conversation on the left, the browser on the right, live. It all comes down to the browser When a web agent fails, the model is rarely why. The page never loaded, a challenge appeared, the login expired, the click did not land. All of that happens in the browser, before the model gets to think. So dots is built around one: A real Firefox engine, patched in C++. The fingerprint is decided inside the engine, not painted over with JavaScript that a…
About gain
gain Async web crawling framework for everyone. Built on asyncio , aiohttp , and lxml / pyquery . Declare items and parsers; gain handles the concurrency, retries, and persistence. Install Linux users can opt into uvloop for an extra speed bump: Requires Python 3.10+. Quickstart Run it: XPath parsers How it works 1. Spider kicks off from start url under a concurrency budget. 2. Parsers either follow (one argument) — discovering more URLs to queue — or extract (two arguments) — instantiating an Item from each matching page. 3. Items use Css / Xpath / Regex selectors to pull fields out of HTML. 4. save() is your…
More in Data & Analytics
Related comparisons
More Data Extraction & Web Scraping projects
Compare either of these against the rest of the Data Extraction & Web Scraping field.
Frequently asked questions
Is dots or gain more popular?
dots has 32,357 GitHub stars and gain has 2,017. dots has the larger community by that measure.
Are dots and gain free?
Both are open source. dots is licensed under MIT and gain under MIT. Neither carries a licence fee.
What is the difference between dots and gain?
dots is written in TypeScript and gain in Python. The practical differences are community size, licence terms, language stack and release cadence — all compared in the table above.
Which should I choose, dots or gain?
Choose dots if you want the larger community (32,357 stars) or its MIT licence terms. Choose gain if its feature set, stack or MIT licence fits better. Both are self-hostable.