Tombstone
farmcron
Feb 2017 โ May 2018 ยท age 35โ36
What it was
A household operating system for a small farm, in one Java jar on Spark and Jetty. It began as chores and habits. In one June it swelled into a multi-tenant platform: carts, customers, a static-site CMS that rebuilt the public site a second after any product edit, subscriptions by SMS and Messenger, and an Alexa skill that introduced itself as a baby goat. Underneath sat a key-value store held in memory and persisted to disk or S3, with a typed query engine and metrics counters generated from schemas declared in Java. It died as the thing the household actually needed: payroll, checks, paid time off and W-2 reports for one employee.
Wins, for the age
- At thirty-five, Jeff declared each model's schema once in Java and generated a typed, index-backed query engine from it, so every schema change surfaced as a compile error. That arrived two years before Prisma's typed client (2019).
- Dirty-bit indexers on key prefixes, rebuilding derived data a second after a write, concurrent with Firebase Cloud Functions database triggers (2017).
- A check memo that encodes its audit checksum, so paper matches back to audit.
- Found on their own what Stripe's idempotency keys had already found: store a marker per person, action and quarter, and an action cannot happen twice.
- Matched SMS keywords by letter histogram with one
sdropped, so a clumsy primate thumb typing "eggs" or "egg" still reached the subscription.
What it taught
- Generate the boring layer from the schema. Queries, counters and forms all derived from one declaration.
- Money features survive; platform features stall. The bots, carts and CMS never got a second user; the payroll calculator was used every week.
- Security has to be tested, not announced. A "lock down security" pass left unsigned webhooks and unescaped HTML. What stuck: escape at the sink, sign the webhooks, and test the math that pays people.
Genealogy
Ancestors: Career Brkz Rednova: small-business web apps built on invented languages. Kitchen: the schema compiler habit. Wake: the static-site assembler, merged in whole. Descendants: Adama Saas: accounts, tenants and billing generated from one definition. Goat Lamancha: schema written as code, everything else generated. Goat Bot: one-operator deployment with state kept in S3. Hearth: a single-jar server for a ranch, with tasks and habits again.
Epitaph
Chores became habits, habits became a platform with a talking goat, and the platform became a payroll calculator. The only features that lived were the ones that wrote checks.