flowingkhaosSign inBrowse the marketplace
New here? flowingkhaos is a build-in-public workshop. This is its weekly column.What this site is

Private repo, public lesson

Luke Sidney2 min read

Most of what I build is in private repositories, and this site promises to build in public. Why those do not disagree, and the one switch every fix now carries.

Most of what I build sits in private repositories. The client work does, the operating system that runs my business does, and so do the apps I sell as licences. Yet this site promises to build in public. Those two facts look like they disagree. They do not, and the reason is worth a column.

What “in public” means here

Building in public does not mean publishing source code. It means publishing the decisions: what broke, what it cost, what I measured, what I chose, and what would make me choose again. A reader can learn almost everything from that — often more than from the code, which records what was done but never why.

So every fix on this site now carries one switch: private or public.

A public fix

The repository is public, so the fix links to it: the file that broke, the pull request that repaired it, the commit that proves it landed. You can check every claim against the source.

A private fix

The repository is private, so the fix names no repository at all. The admin that stores it refuses to save a private fix that contains a GitHub link, anywhere in its text. The rule is enforced by the CMS, not by my memory on a tired evening.

What a private fix shows instead:

  • excerpts — the query, the error, the ten lines that matter, with nothing sensitive in them;
  • numbers — each one graded: measured, published or estimate;
  • screenshots — a dashboard, a failing build, a bill, cropped to what the story needs.

That is enough to follow the reasoning and to reuse it. It is not enough to reconstruct the system, and that is the point.

Why not publish everything?

Three reasons, in order of weight:

  1. Some code belongs to clients. It is not mine to publish.
  2. Some code is the product. The marketplace sells licences to build with it. Giving it away in a fix would undercut the thing that pays for the free half of this site.
  3. Some details are attack surface. Hostnames, project ids, schema names and admin paths help nobody learn, and they help exactly one kind of reader.

What is public

When a project is meant to be studied, it is public from day one. Travole, a travel-expense tracker, is the first: its workshop takes you from git clone to your own deployed copy, and every link in it works.

Private code, public lessons. Public code, public everything.

The column · weekly · free

The next piece, the morning it is published.

One written column a week. The email service holds the list.

Luke Sidney writes and builds everything here, alone, in the open. lukesidney.me