The question that arrived most often after the building in the open post was some version of “okay, but what actually stays closed,” and it deserves a straighter answer than the polite paragraph it got at the time, because the rule itself is one sentence long and everything worth writing about lives in the places where the sentence bends. The sentence is: if it competes with Mongrel, it stays inside, and everything else goes public, and after three months of people reading the friendly version of that, it is time for the version with numbers attached.
As of this morning the visorcraft GitHub organization holds 140 public repositories, 66 original and 74 forks, against 19 private ones, and the July post’s “over 50 public repos” is already a period artifact, because most of the growth came from the MongrelDB client family and from contribution forks rather than from new products. The count will be wrong again by the time you read this, which is precisely the point of this post: the list changes weekly, the criterion does not, so the honest answer is the criterion plus a snapshot, not a polished inventory that goes stale on the way to the printer.
The public side, by category
The biggest bucket is the product-grade applications, the ones we have written about individually here: Arte-Ogre, Kanoprii, Grexa and its Windows sibling Grex, Roamarr, Sinema, Tailshell, Foxden, SpiderTypes, LinSight, LinSync, and the realistic mouse jiggler, all complete products under GPL-3.0-only for the reasons laid out in the licensing post, none of them demos or teasers for a paid tier.
The second bucket is the MongrelDB family, 36 repos at last count: the database itself, MongrelDB-Kit, MongrelDB-Viewer, and 33 language clients running from C and C++ through PHP, Ruby, and Go all the way out to Zig, V, Mojo, and Gleam. People occasionally ask why the clients are public at all, and the answer is that the clients are not the product, the workbench is, and a database nobody can talk to from their language of choice is a database nobody evaluates, so putting a paywall on a client library would be announcing that we do not want users.
The third bucket is the hardware work, which is public before the blog posts about it even exist: the Orange Pi 6 Plus GPU and NPU bring-up trees, the Kensington VeriMark driver, the Razer Blade 16 OLED brightness overlay, and the Strix Halo benchmark harness all sit in the open right now, which is the opposite of the usual corporate sequencing where the press release ships first and the code arrives eventually, and we like our ordering better, because the repo is the claim and the article is just the commentary.
The fourth bucket is the forks, 74 of them, and most exist to send exactly one pull request, the awesome-list mirrors and the packaging forks for nixpkgs, homebrew-cask, winget-pkgs, and the like, while the four maintained forks got their own treatment in the forks post and follow the rebase-or-delete policy described there.
The private side, honestly
Nineteen private repos, and the list is shorter on drama than people assume. The first group is Mongrel itself, the commercial desktop control plane for databases, APIs, terminals, remote files, containers, and Kubernetes, plus its admin panel and its licensing server, and that is the entire “competes with Mongrel” bucket, three repos that pay for the other 156.
The second group is the web properties: visorcraft.com, mongreldb.com, roamarr.com, icefalldb.com, and the two article pipelines that publish what you are reading. None of that is secret in any interesting sense, it is deployment configuration and content drafts, and keeping it private is not a violation of the rule, because the rule was never “everything must be public,” it was “everything that competes stays inside,” and a Hugo config competes with nothing.
The third group is the experiment shelf, prototypes and weekend builds that have not earned a README yet, including at least one companion app to a public project that is private purely because it is not done. Unreleased is not the same as closed, and the shelf empties into the public list whenever something survives long enough to be useful to a stranger, which is the only graduation ceremony we have.
Where the rule bends
The edge cases are the honest part. Forks inherit their upstream’s license, and copyleft triggers on distribution rather than on private modification, so keeping a GPL fork private is perfectly legal for as long as the code never leaves your machines, but the moment a build ships to anyone the source obligations ship with it, and our forks stay public for the simpler reason that the whole point of carrying one is the pull request back upstream. Clients and SDKs would be worthless closed, as covered above. Experiments stay private until they stop being embarrassing, and unreleased work sits in limbo not because of strategy but because publishing a repo you intend to delete in a month is worse than waiting, since a public repo you are not maintaining sends a worse signal than no repo at all.
There is also one asymmetry worth naming: things almost never move from public back to private, because once code is cloned the gesture is theater, so the private-to-public direction is the only one the shelf really supports, and that one-way door is deliberate, since it forces the “should this be closed” question to be answered before the first push rather than after the first fork.
Why the criterion and not the list
In the mid-2000s the default for a small software company was everything closed except a tarball on SourceForge when marketing wanted a checkbox, and the 2010s replaced that with open core, which solved the honesty problem by making the boundary a sales tool and then moving the boundary whenever a feature started selling. The modern equivalent for a company our size is simpler to state and harder to game: sell one thing, publish everything that is not that thing, and let the criterion answer the questions a policy page cannot.
A list goes stale the day you publish it, and this one is already wrong, because something is sitting in a private directory right now that will be public by winter. The criterion is the durable part, and when someone asks about repo number 141, the answer is the same sentence it was in July.
