Covers June 29 - July 5, 2026.

September 2026: aidd did not stay public continuously after this. I took the repository private again in early September to reset its history, and republished it on September 7, 2026 at v3.0.0 with a single commit behind it. Spernakit has been public since July 4 without interruption.

For most of this year there was a business plan. There was even a brand strategy, mostly because aidd loses every search to the pharmaceutical industry’s AI-drug-discovery acronym. The rule I set for myself was “prove it before release.” Six months of prove-first work produced the proof.

Then on Monday, I retired the whole thing.

Everything in that plan depended on me doing founder-led sales: outreach, pilots, and a mailing list. I finally admitted that I had no appetite for that job. So the replacement got written the same day: publish both flagship tools now. What I owe in return is good documentation, responsive issue handling, and not pulling a license rug on anyone.

Licenses and old history

Spernakit gets MIT. It is a template; it exists to be copied and to produce applications the user owns. aidd gets FSL-1.1-ALv2, a Fair Source license. It is available for any use except making it available to others as a competing commercial product or service, and each release becomes open source under Apache-2.0 two years after it ships. The .aidd/ contract is an open specification that anyone can emit or implement.

I was tempted to rebuild aidd on Spernakit before release, mostly for the story. I didn’t. aidd’s own design document says not to force the template onto a mature codebase when replatforming is not the goal. I couldn’t argue with that just because it was inconvenient.

Release preparation also killed the LTS freeze from May. It had lasted less than two months, produced three openly flagged exceptions, and made its own guards the most common gate failure in every session. The policy made sense when I wrote it. It no longer did.

The release scans found no live secrets, which was a relief. They found app rosters, machine paths, internal hostnames, and a large dogfooding changelog instead. Two years of my private world lived in git history even though the working trees were clean.

I wasn’t going to scrub that history commit by commit. Each project went public as a new repository with one clean snapshot. The private repositories remain frozen archives, and a pre-commit guard now rejects private slugs, internal hosts, and machine paths before they can creep back in.

A clean Windows 11 VM found four assumptions the private machines never challenged. A missing bash probe threw during module load instead of returning a nonzero exit. Launched runs failed the same way when git was absent. Concurrent first-page loads raced while creating a seed row, and the bundled scaffolding/ directory listed itself as a project on a fresh install. I hadn’t hit any of those problems on my own machines.

The four proofs

I ran four recorded build proofs against the released build to check how it behaved away from my usual projects. Each used a different creation lane and a different stack. Any failure became a backlog item instead of a quiet manual repair.

The fresh-scaffold proof built a Bun, TypeScript, and React habit tracker with all 25 features passing. It also showed that a backlog longer than one run still needed somebody to press Launch again.

The third-party-template proof built a kanban board from a Vite starter that aidd knew nothing about. It exposed Windows path mangling in template arguments and a design hole: the create-then-ingest lane had orphaned the original specification instead of turning it into the feature backlog.

The Spernakit proof built an SMB infrastructure dashboard. It was supposed to be the golden path and it was by far the most difficult. The create step took seven attempts. Fresh applications generated by the template’s own initializer could not pass the template’s strict drift gate, and that known failure sat first in the quality chain, hiding every check behind it. Several files had quietly grown past the size limit while the gate kept reporting the same familiar red result. The runner now executes every order-independent check and reports the whole set.

The last planned proof ingested Flaskr, the canonical Flask tutorial application. aidd shares nothing with that stack. It correctly inferred Python, Flask, and pytest without leaking Bun or Node assumptions into the project. The intake produced four security findings, and every intake commit touched only .aidd/. Then aidd fixed the findings in ordinary Flask code and passed the application’s own test suite.

The proofs found the same assumption in several forms: aidd expected every project to be one it had created. It dumped Bun-flavored scaffold files into Flaskr, told ingested projects to behave like Spernakit, and counted its own metadata as somebody else’s dirty working tree. I came out of the week with eleven aidd backlog items and five Spernakit releases.

Launch day

Both repositories went public on July 4. Spernakit is open source and aidd is Fair Source, each with a clean history, contribution and security documents, and a landing page with the proof results.

The control panel’s terminal also became a multi-tab interface. Sessions keep their history after a browser reload, and an approval pause shows the failed check and its message instead of asking me to approve blind.

Then the final GitHub release failed three times: one formatting problem, a helper that assumed a dependency existed on the runner, and a loose cache key that let a failed install poison the next attempt. Three small patches later, the release automation ran cleanly from tag to published package.

Both tools are up now. I’ve spent most of launch week fixing things I hadn’t encountered at home.