How We Research Open Source Alternatives
Every page on There Is An Open Source For That is a claim: "this project is a credible alternative to the paid app you use." We treat that claim as something that has to be earned, not assumed.
This page explains how we earn it.
What we do
We research open source projects and verify whether they are actually usable alternatives to named paid apps. For each project, we confirm: the license is what it claims to be, real users have said what we quote (verbatim, at the original URL), at least one deploy path works as described, and the project is still actively maintained.
Every claim on a product page carries a source URL and a verified_at date. If a field cannot be verified, it does not appear.
The method
Starting with GitHub
We pull structured data from GitHub for each candidate: license file (SPDX identifier and OSI status), star count, last release tag and date, archived flag, and repository topics. All of these are point-in-time reads. We record when they were retrieved so readers can see how fresh the data is.
Stars are included because they are a rough signal of community size, not a quality verdict. A project with 2,400 stars and weekly releases can be more reliable than one with 60,000 stars and a maintenance problem.
License verification
We read the license file directly and record the SPDX identifier. We flag whether it is OSI-approved (clean open source) or carries restrictions (open-core, source-available, Commons Clause, or similar). We do not paper over non-standard licenses. If a project uses a license that limits commercial self-hosting, that appears in the "watch out" field.
Quote verification
Social proof quotes go through a manual step before they appear on the site. We locate the original comment (on Hacker News, Reddit, or the source indicated) and confirm: the author handle matches, the text matches verbatim, and the context is not reversed or misleading.
This step is why one candidate was dropped entirely.
We had a page ready for ntfy, a push notification server with 31,000 GitHub stars. The page had two quotes from Hacker News threads. When we checked both against the original comments, neither quote accurately represented what the author actually said. The page was dropped. The batch was one page short. We shipped 9 instead of 10 and reported the shortfall rather than paper over it. ntfy may still be an excellent tool; we cannot publish a page we cannot stand behind.
Deploy-path honesty
We test every deploy path we list. Three options are tracked per project:
- Hosted: a managed cloud option exists (may be paid)
- Docker: a one-command container path exists with a working compose file or pull command
- No-terminal (zero_terminal): a one-click install that requires no command line. An app installer, a Coolify template, or a similar path.
If a hosted path is paid, we say so. We do not list "free forever" plans that do not exist.
What gets rejected
A page is rejected if:
- Any quote cannot be confirmed verbatim at its source
- The license is unclear or materially different from what the project advertises
- A deploy path described in the README does not work when tested
- The repository has been archived or the last release is more than a year old
We do not reject projects for being small, for being harder to self-host than a SaaS, or for having a paid hosted tier alongside the open source core. Honest complexity is fine. Hidden complexity is not.
What we found across 27 reviewed products
These numbers come from the live catalog in src/data/products/. The catalog is the single source of truth; every figure here can be verified by reading the JSON files directly.
Licenses
- 21 of 27 products carry OSI-approved licenses. The other 6 are open-core: Cal.com, Chatwoot, Excalidraw, Meilisearch, OpenReplay, and Supabase. All flagged with
purity: open-core. - License family breakdown: MIT 9, Apache-2.0 6, AGPL-3.0 5, AGPL-3.0-or-later 1, BSD-3-Clause 1, GPL-3.0 1, MPL-2.0 1, one dual license (MIT AND BUSL-1.1), plus 2 with unresolved SPDX identifiers (flagged for review).
- AGPL is the most represented copyleft license (6 projects total). This matters for companies that might want to run these internally as a service. AGPL terms require sharing modifications.
Deploy paths
- 18 of 27 offer a hosted path (some are paid, e.g. Plausible Cloud, Ghost Pro, Healthchecks.io).
- 21 of 27 offer a Docker path with a working compose command.
- 8 of 27 offer a no-terminal install path: Bruno (app download), Coolify (installer script), Isso (pip), Joplin (desktop app), Open Design (desktop app), OpenOats (web app), Palmier Pro (app download), Zulip (DigitalOcean 1-click).
No product was given a deploy path that was not verified against its README or documentation.
Activity
- 25 of 27 projects shipped a release in the 90 days before our verification date. None of the 27 projects are archived.
- Stars range from 354 (GlitchTip) to 126,691 (Excalidraw). Combined, these 27 projects have 1,123,126 GitHub stars.
Social proof
- 55 quotes appear across 27 product pages (every page has at least one).
- All 55 have a
verified_atdate and achecked_byfield. Every quote was confirmed verbatim against its source URL before the page went live. - Sources are primarily Hacker News threads, with the author handle and original comment URL recorded for each.
What we do not do
Pay-to-play does not exist here. No project has paid or been asked to pay to appear. Funding options (GitHub Sponsors, Open Collective, custom donation links) are shown as labeled buttons, separate from editorial, and have no effect on what a page says.
Unreviewed projects stay hidden from search engines. The catalog contains a directory of roughly 100 projects. Those without a completed review carry review_status: stub and are served with noindex headers. They do not appear in search results. A project does not become visible on this site by being popular or by being submitted by its maintainer. Only by passing the review process.
We do not invent. Every field on a product page is sourced. "Best for" and "watch out" fields reference the README or official documentation, not our opinion of what a project should be.
Corrections
Data goes stale. Licenses change. Projects get abandoned or get bought. We run a monthly freshness check against GitHub for every published page (stars, release date, archived flag, SPDX identifier). When a field changes materially, the page gets flagged for human review before re-publishing.
If you find an error (a quote that does not match its source, a license that has changed, a deploy path that no longer works) email us at hello@thereisanopensourceforthat.com. We commit to reading and responding within 48 hours. If the correction is valid, we fix the page, update verified_at, and note the change on the page. We do not wait for a monthly cycle to fix a factual error.
You can also open a GitHub issue: github.com/gutomartino/thereisanopensourceforthat
Maintainers: if your project is listed and something is wrong, either channel works. We want to get it right.
main branch. · About the author