The wedge
Estha for Mac runs AI models entirely on the customer’s own machine — no cloud, no data leaving the device, and instead of a subscription, one-time device-based economics: buy once, use forever. Which raises the strategy question that defined my year: what makes a local AI workspace feel worth buying on day one, when the cloud frontier models will always be smarter at open-ended chat?
My answer, written as a vision-and-strategy document the team aligned on:
We do not need to beat ChatGPT and Claude at being general-purpose chat tools. We need to beat them at being a practical shelf of ready-to-use everyday bots on a privately run local AI workspace. That is the wedge.
People don’t arrive with “prompts” — they arrive with jobs: rewrite this email, quiz me before the exam, tailor this resume, explain this contract. A library of focused bots that each do one clear job — understandable from the title alone, zero setup, useful output in one session — creates what a general chat box never does: perceived abundance, and proof of value before the first prompt is ever written. As the document put it: a bot called Email Rewriter beats a bot called Productivity Assistant.
The thesis did three structural things before a single bot was built. It committed us to library-first, agents-as-premium: a broad base of fast utility bots, a middle layer of structured workflow bots, and a small top layer of heavyweight agents — agents as the premium layer of the library, not the whole library. It ranked the 50 bot ideas into three build tiers, so the first sprint produced a shelf that already felt broad — one cluster each from writing, learning, organisation, career, and utility. And it defined what “good” meant per bot, in advance: one everyday problem, no setup, better than open chat at that job.
The materials science
I had already built a first generation of bots for Estha’s web product, where large cloud models quietly forgive sloppy configuration. The Mac is a different material: it runs local models in the 9B–35B class, small enough that vague instructions simply stop working. And a 27-bot shelf collapses into chaos without system-level consistency. So the spec layer was engineered, not written:
- A hard 2,000-character budget for every bot’s behavioral customization — my own engineering constraint, not a platform limit. Smaller models follow short, unambiguous, tightly-scoped instructions far more faithfully than sprawling ones, so every spec was forced through the budget: all 27 script-verified, most tuned to within 50 characters of the ceiling. Knowledge bases capped at 500–800 words for the same reason.
- Per-bot mechanics chosen deliberately: Socratic hinting for homework (never give the answer), persona simulation for interview and language practice, an MCQ engine with plausible distractors for quizzing, structured-rubric grading for writing feedback.
- Product-level policies, not per-bot improvisation: four greeting styles distributed across the library; an emoji system with a deliberate no-emoji class for bots that needed gravitas (salary negotiation, legal explanation, interviews); a defined low-spec fallback per bot for weaker machines; live-data deflection where a bot could be asked about things a local model can’t know.
- Honesty flags built into the specs: bots touching regulated or high-stakes domains — legal explanation, dietary planning, workout programming, language teaching — carried explicit subject-matter-expert review flags before publish, with the reviewer type named.
Twenty-seven bots across seven categories came out of this system feeling like one product.
The assembly line
One PM cannot hand-build, hand-test and hand-publish a library — so the process itself became software. Specs were written in a structured format that scripts could parse; build batches were generated and pushed through the platform’s API; a QA harness checked configurations mechanically. I ran the functional tests myself with AI assistance and audited every report, writing a combined review that did something I care about: it separated bot-behavior defects from a platform-level display issue that cut across every bot, so the release decision was made on clean evidence. Verdict: 22 of 27 pass, 5 partial passes with ranked P1–P3 fixes, zero hard failures — and a written note on exactly which fix had to land before retest.
Ship day
Publishing is where library projects usually get their scars, so it got the most discipline of all. Before any bulk operation, I ran a single-listing rehearsal — and stopped mid-submit when the confirmation dialog disagreed with my intent. Then I verified how the backend actually treated create-versus-update semantics on a three-app batch. Only after the rules were proven did the bulk import run: 39 applications published in one operation, zero errors, growing the web marketplace catalog from 25 to 52 listings. Destructive changes followed a written two-phase protocol — snapshot first, build the replacement before deleting the original.
The shelf, counted
- A strategy that shipped: from a 50-idea thesis to a live, browsable shelf on a one-time-purchase product — the wedge, made real.
- 27 bots fully specced and QA’d (22 pass / 5 partial / 0 failures) under one design system, alongside the earlier utility tier iterated through four revisions.
- The Mac Store carried 79 listings — 56 unique apps — by June 2026. I audited the full catalog and curated the 44-app clean list a distribution partner would actually see, keeping tests, duplicates and client-specific builds out of the first external cut.
- On the sibling web channel, 39 apps bulk-published in one zero-error operation, more than doubling market listings (25 → 52).
- The pipeline outlived the project: the spec format, build scripts, QA harness and publish protocol became reusable company assets — and the seed of a larger story about how I run product work with AI: the AI operating system behind my product work.
Made, not written
What stays with me from this project is a manufacturing sensibility. On small models, constraints are design material — the 2,000-character budget was a choice, and that discipline is what made 27 bots reliable on 9B–35B-class hardware. A library is a system, not a pile — greeting patterns, emoji policy, fallback behavior, the unglamorous consistency layer is what makes a shelf feel like a product. And the last mile is a protocol, not a click: “39 published, zero errors” wasn’t luck; it was a rehearsal, a stopped submit, a semantics test, and only then the batch. Boring process is what bold numbers are made of.