Every tool here is open source, as far as we can tell

An audit of our own catalog, run before launch. One product is filed as both open source and proprietary, 89 tools have no recorded license, and the headline number is not reportable.

5 min read

Warp is a published tool in this catalog. It carries 64,843 stars, its repository is warpdotdev/warp, and our database records its license as AGPL-3.0.

Warp is also a proprietary alternative in this catalog. Eight terminal emulators are filed here as open source things you adopt when you want to leave it, among them Alacritty, Ghostty, Kitty and WezTerm.

The same database serves both rows. One of them is wrong, and no outside source is needed to know that, because a product cannot simultaneously be the open source tool we recommend and the paid product we recommend escaping. We found it by auditing the catalog before launching it rather than after, and this post is that audit.

Warp is on both sides of this directory

Here is the row as the site serves it today.

Loading...

Nothing on that card tells you about the license, because the badges on a tool card report repository age, publication date and discounts, never licensing. The AGPL-3.0 claim lives one field deeper, on the tool page, and it is the field the entire premise of this directory rests on.

The contradiction is worth stating plainly. A directory whose only editorial rule is that the left column costs money and the right column does not has filed its second most starred entry in both columns. This is precisely the failure our own curation rules name first. The documented rule is never to list an open source project as a proprietary alternative, and by our own license field Warp is an open source project sitting in the proprietary column.

Which row should go is a judgment we have not made yet, and the honest position is that we do not know. Warp develops its client in a public repository and sells a hosted product around it, which is the shape that makes this hard rather than obvious. The license field could be wrong, the alternative row could be wrong, or the product could be split finely enough that both are defensible and the catalog needs to say so. What is not in question is that the pair as it stands today tells a reader two incompatible things.

One row in nine cannot answer the question

The audit found something larger than one bad row. Of 772 published tools, 683 carry a recorded license and 89 carry none at all. That is one tool in nine where the open source question is unanswerable from our own data.

The cause is two lines of code, not an editorial lapse. Both add-tools and seed-tools resolve a license by name against a License table that was seeded once with sixteen rows, and both fall back the same way:

licenseId: entry.license ? (licenseIds.get(entry.license.toLowerCase()) ?? null) : null

Any license string outside those sixteen names becomes null and vanishes. The same script logs unrecognized categories a few lines earlier, so a category it cannot place announces itself in the output and a license it cannot place leaves no trace at all.

The 89 are not obscure projects nobody checks. These four are among the highest starred entries in the whole catalog, and every one of them has a license worth arguing about.

Loading...
Loading...
Loading...

n8n is the fourth most starred tool we publish, at 203,575. Elasticsearch sits at 77,901 and tldraw at 50,179. Each of them ships under terms that a reader would want to read before building on it, and for each of them our license field is empty. The blank is not neutral. A blank field on a page that promises open source reads as a yes.

The number we are not going to report

The obvious post to write from this data is a different one. Counted by recorded license, the catalog looks like this at the top:

  • AGPL-3.0: 199 tools
  • MIT: 198 tools
  • Apache-2.0: 162 tools

Copyleft edging out MIT in a catalog assembled from one rule, that every entry replaces something you pay for, is a genuinely interesting result. It cuts against the usual claim that permissive licensing won.

We are not reporting it, because the margin is one row and the denominator is missing 89.

Adding the unlicensed tools back could move that gap in either direction by an order of magnitude more than the gap itself. A one row lead over a 89 row hole is not a finding, it is a rounding error wearing a headline. The same caution applies to any license breakdown on this site until the resolver is fixed, including our own license pages, which today title every one of the sixteen licenses as open source software regardless of whether the license is OSI approved.

What to check before you self-host anything

The general lesson is not about our database. It is that the licensing claim is the only part of a self-hosting decision that actually binds you, and it is the part every directory in this category treats as decoration.

  • Read the LICENSE file in the repository, not the summary on any directory. That includes this one, at least until the 89 blanks are resolved.
  • Check whether the license is OSI approved. Elastic-2.0, SSPL-1.0, BUSL-1.1 and FSL are source available, and a source available license can forbid exactly the deployment you are planning.
  • Look for a separate enterprise edition. Open core projects routinely reserve retention, downsampling, single sign on or audit logs for the paid tier, which is the same bill arriving in a smaller envelope.
  • Check the license date, not just the name. Several well known projects relicensed after building an audience, and the permissive terms you remember may not be the terms you get.

Where this leaves us

Three things are true at once. The catalog holds 772 tools and 968 proprietary products across 2,823 curated pairings, which is real work. It also carries at least one product filed on both sides. And for 89 entries it cannot answer the question it exists to answer.

Publishing that before launch rather than after is the only version of this post worth writing. A new directory asking you to trust 772 rows has earned nothing. A new directory showing you the rows it does not trust has at least shown you its method.

The code underneath this site is a fork of OpenAlternative, released under GPL-3.0, and we would rather say so here than have it said for us. What the fork added is the pipeline that produced the catalog, which is also the pipeline that produced these defects.

Next is the repair, in this order. The license resolver stops silently discarding unknown names and starts logging them the way categories are already logged. The 89 blanks get a license each, read from the repository rather than guessed. Warp gets resolved to one column, or keeps both with a note on the page saying which part of the product each row refers to. When that is done, the license distribution becomes a number worth publishing, and we will publish it then.

Share:

Discover Open Source alternatives to: