101 builds
A sprint of small builds, made to learn one thing at a time. Each page says what the build does, how I made it, what I learned, and where it falls short.
- Builds shipped
- 101
- Automated checks
- 22,356
- AI tools used
- 3
Built with Claude Code, Claude Cowork, and Codex. Each one runs and is tested with automated checks. None of them are battle-hardened products.
#001 Claude Code100-Build Progress TrackerA dashboard is only as good as the source of truth behind it, make the data canonical and the UI read-only.
#002 Claude CoworkCase-Study GeneratorA fixed-format document is a templating problem, not an AI problem.
#003 Claude CodeProject Card ComponentA reusable component is a contract: render every field the producer emits, and nothing it doesn't.
#004 Claude CodePersonal Landing Page v1One scroll-driven CSS variable can run an entire dark-to-light experience.
#005 Claude CodeBuild Log + Daily NoteWriting the field list before any code is what makes a one-shot land.
#006 Claude CodeMarkdown to SlidesScreenshot-verify your own work: a headless screenshot caught a total render failure a code read would have missed.
#007 Claude CodeTip & Bill Splitter PWAOffline is only 'complete' when the app makes zero external requests; split money in integer cents with largest-remainder so shares sum exactly.
#008 Claude CodeFocus TimerA timer should derive time from an absolute end-timestamp, not count its own ticks; and a soundscape can be pure synthesis instead of shipped audio.
#009 Claude CodeSmart ConverterA converter is only trustworthy if its math is tested: one pure logic module, imported by both the browser and a 50-assertion Node verifier.
#010 Claude CodePalette GeneratorA good palette generator is a constraint problem, not a randomness problem, fix the lightness ramp and only vary hue per harmony rule.
#011 Claude CodeQR StudioA QR code is an error-correction problem, not a drawing problem, and the cheapest way to trust a generator is to write the decoder as its test.
#012 Claude CodeRegexplainRegex ExplainerPut a deterministic, tested core under the AI feature: the parser explains, the native engine matches, and Claude only adds narrative that the app can verify.
#013 Claude CodeRosettaData Format Swiss-ArmyHand-written parsers that track their own position turn a bare parse error into a line and column, and an emitter must test every string against the parser's own scalar rules or round trips change types.
#014 Claude CodeTackMap Pin BoardKeep map logic out of the map library: a DOM-free core with a pure reducer made 177 assertions possible on an app that is mostly UI.
#015 Claude CodeSelahDaily Reflection PromptA voice rule is only real when it is enforced in code and tested against the legitimate text around it.
#016 Claude CodeSharpenResume Bullet RewriterAn AI rewriter earns trust by refusing to invent facts, and scoring model output with the same tested scorer as the rule engine makes the two modes comparable.
#017 Claude CodeScourMetadata ScrubberFor binary formats, write the builder as well as the parser: inject metadata, scrub, and assert the output equals the clean file byte for byte.
#018 Claude CodeRemitInvoice MakerMoney code should never see a float: parse from the string into integer minor units, keep rates in basis points, and allocate discounts with the largest remainder method so every part sums to the whole.
#019 Claude CodeStratumPricing Table GeneratorWhen the live preview renders the real export from a tested core, preview bugs and export bugs become the same bug and get fixed once.
#020 Claude CodePleatFAQ Accordion GeneratorA reusable component is one data model plus thin renderers, and most of the real work in a code generator is escaping the same string correctly for each layer it passes through.
#021 Claude CodeChorusTestimonial WallIf the preview and the export are the same string from the same function, the export cannot lie, and a rotating carousel turns out to need no JavaScript at all.
#022 Claude CodeHearthHome Care Agency Landing PageGenerate the JSON-LD, meta tags, and form rules from the same config as the visible page so they can never drift apart.
#023 Claude CodeThresholdLead Capture + Thank-You FlowIn a branching form, only answers on the visible path may count, and drop-off has to be measured per visitor session, not step against step.
#024 Claude CodeAttestCompliance Checklist PageExclude N/A from the score denominator and route every edit through one pure change function, and both the readiness number and the audit trail stay honest.
#025 Claude CodeDialedForza Tune KeeperOne field registry can drive the sliders, validation, diff, and a bit-packed share codec, so the tested core and the UI never disagree.
#026 Claude CodeSillageFragrance VaultVisuals derived from data are only testable when the derivation is a pure function with a stable tie-break, and a ranking is only trustworthy when it returns its reasons.
#027 Claude CodeDynoCar Spec CompareMake 'which direction is better' a data field on each row and the highlighting, deltas, and radar all fall out of it.
#028 Claude CodeCadenceFlashcards LiteMaking the scheduler a pure function of (card, grade, settings, now) gave me deterministic tests, one-line undo, and a demo deck simulated by the real algorithm instead of faked by hand.
#029 Claude CodeHooklineHeadline / Ad-Copy GeneratorCharacter limits are a writing problem, not a truncation problem: tight channels need frameworks built for the budget, and the model should be judged by the same tested scorer as the templates.
#030 Claude CodeMarqueMini Brand Kit GeneratorSeed everything from one PRNG and keep every generator a pure string function, and a whole design tool becomes testable in Node.
#031 Claude CodeKansoKanban BoardKeep every rule in a pure, tested core and let the UI only render and dispatch; undo, keyboard moves and imports then come almost for free.
#032 Claude CodeLedgerlineBudget DashboardMessy input detection and a stable dedupe hash matter more to trust than any chart.
#033 Claude CodeTidemarkMood + Habit JournalCompute the facts deterministically and let the model only rephrase them, so the AI layer is optional, inspectable, and testable.
#034 Claude CodeTonnageWorkout LoggerSeeded demo data is a design decision: tune it so the charts tell the true story of the feature.
#035 Claude CodeDogearSmart BookmarksVisible confidence plus accept/reject turns the user into the trainer, and a prompt that prefers existing tags is what stops tag sprawl.
#036 CodexColophonMarkdown Blog EngineA pure map of output files makes content builds reproducible and easy to audit.
#037 Claude CodeBailiwickService-Area MapperPoint in polygon is easy until a ray hits a vertex; a half-open edge rule and tested holes make the answer trustworthy.
#038 Claude CoworkTidingsIntake to Summary EmailOne validator for every draft, with a whole-token no-invented-facts check, turns an AI rewrite from a hope into something you can test.
#039 Claude CoworkDocketNotes to Action ItemsResolve every relative date against the meeting date, show the phrase next to the result, and make every extracted item point back to a real line, and the output becomes something people trust.
#040 Claude CoworkSalveCSV DoctorSniff delimiters by per-row consistency, not character counts, and flag ambiguous dates instead of guessing, because a column's own evidence can point both ways.
#041 Claude CodeSignetEstimate to Proposal v2Rendering the document as one string from pure code let me test what the client sees, including that margin never prints.
#042 Claude CodeRapportTiny CRMKeep every rule in one DOM-free module that takes the clock as an argument, and the UI becomes the easy part.
#043 Claude CodeStanzaLanding Page Section GeneratorMake the preview and the export the same render function, and render the preview at the real device width.
#044 Claude CoworkVantageWebsite Audit Report GeneratorChecks that could not run must leave the score, and a URL guard must re-check every redirect, or the report stops being honest and the fetcher stops being safe.
#045 Claude CodePlumbAI Readiness QuizMake the rules-based report complete on its own, then let the model rewrite only the words, with a fallback for every field.
#046 Claude CoworkKeelSOP BuilderDerive every verb form from one table and render the preview with the exact export renderer, and the steps read right and the PDF matches the screen.
#047 Claude CoworkTenetPolicy Document GeneratorRender to a data model first and lint the model, and the same checks protect built-in content, pasted JSON, and AI drafts.
#048 Claude CodeEstimaService Quote CalculatorA tiny safe parser plus money in cents made pricing rules editable without ever running user-written code.
#049 Claude CodeQuirePDF to FlashcardsBudget for your own labels when chunking, and when merging AI output into a user's deck, let what they already have win.
#050 Claude CodeMurmurReview Sentiment DashboardA fake fetch in a same-origin iframe tested the whole Claude batch path (retry, parsing, cost) without spending a cent.
#051 Claude CoworkCrateVibe PlaylistScore only what the vibe specifies and label unknowns as half credit, and the ranking stays honest across offline and live sources.
#052 CodexCremaBuy-Me-A-CoffeeRecord payments from verified events, never from a successful redirect alone.
#053 Claude CoworkSluiceForm to Sheet PipelineHash the response id when there is one and normalized content when there is not, and keep the original key on a fixed row, and replays never double a sheet.
#054 Claude CoworkStencilPDF Form FillerKeep the mapping logic PDF-free and the pdf-lib layer thin, and you can test the hard parts in Node while one end-to-end test still proves the real PDFs.
#055 CodexReveilleDigest BotKeep message preparation independently testable from delivery.
#056 CodexGroundsScrape to DashboardKeep missing records separate from confirmed closures and keep data provenance visible.
#057 Claude CoworkRippleContent RepurposerGrade every draft, local, edited, or from Claude, with one tested scorer that includes a no-invented-numbers check, and the client gets drafts they can trust.
#058 CodexPithQuote Saver (Chrome)Read-modify-write storage needs a shared lock when several extension surfaces can save.
#059 CodexSiftPage Summarizer (Chrome)Treat page content as untrusted data in both prompts and rendered output.
#060 CodexGridlockBrowser Game + AIA worker needs request identity so old search results cannot alter a new game.
#061 Claude CodeLatchkeyAuth StarterIn OIDC the order of checks is the security: pin the algorithm and verify the signature before trusting a single claim.
#062 Claude CodeJoistSaaS SkeletonMake the safe path the only path: a repository that cannot run without an org id beats remembering WHERE org_id on every query.
#063 Claude CodeParleyRealtime ChatOne global change counter made reconnect replay, stale-update dedupe and idempotent retries fall out of the same design.
#064 Claude CodeLanternSupport Widget (RAG)A BM25 score threshold alone still guesses; adding query coverage is what made the widget's I don't know trustworthy.
#065 Claude CodeFolioDocument Q&APlain rank fusion favors whatever both lists agree on, so a paraphrase only wins when the dense list leads and the passage shares at least one keyword.
#066 Claude CodeBinderUpload-and-Search KBRetrieval gets trustworthy when it can say it does not know: counting unknown question words against coverage stopped confident wrong answers.
#067 Claude CodeLedgerlyBookkeeping HelperDedupe as a multiset and match learned rules on a vendor key, not a raw substring.
#068 Claude CodeSundialAppointment SchedulerA double-booking guard only works if the conflict check runs inside the same write lock as the insert.
#069 Claude CoworkSieveEmail Triage AgentMake an agent's permissions a table and route every action through one guard, and the draft-only promise becomes something the tests can prove.
#070 Claude CoworkWinnowLead-Qualifier AgentLet the model propose signals but keep scoring in plain tested code, and give every lead an id that never changes, and the CRM stays clean.
#071 Claude CoworkRelayResearch PipelineTreat every agent handoff as a contract the orchestrator recomputes itself, and a pipeline cannot quietly build on an invented quote.
#072 Claude CodeSitewrightMicrosite AgentA tested, deterministic audit is what gives an agent loop a real stopping condition.
#073 Claude CoworkFerryBrowser AgentMake the task plan data that every runner executes, and treat not saved and already saved as different outcomes, so a rerun never double-enters a row.
#074 Claude CodeTaplineLive MCP DashboardPure modules for the protocol, schema, scheduler and SSRF guard made a live, networked app testable without a network.
#075 Claude CodeGatehouseGated Admin PanelReplay protection and enumeration resistance live in the details: atomic step updates and identical responses, not just correct checks.
#076 Claude CoworkSeamResume TailorCheck each output line against its own source bullet, and personalization stays honest even when an AI does the rephrasing.
#077 Claude CodePanelMock-Interview AppMake the grader quote its evidence and check the quote in code; then calibrate it on answers of known quality before trusting it.
#078 Claude CodeEaselImage Gen StudioTreat model output as untrusted input: parse, allowlist, re-serialize, and display it where it cannot run.
#079 Claude CodePorchlightAgency Site EngineMeasure duplicate content instead of hoping: shingle-based uniqueness scores turned town-page quality into a failing test.
#080 Claude CodeTrellisClient Project PortalOne row-level gate that every route passes through made cross-org isolation simple to prove with two fictional clients.
#081 Claude CoworkSheafCompliance Packet BuilderPaginate first and resolve page references second, and the table of contents is correct by construction instead of by luck.
#082 Claude CodeGroundworkStudy-BuddyStore the raw answer log and replay it through the mastery model; every chart, meter and simulation then agrees by construction.
#083 CodexHeadroomFinance ForecasterMake starting assumptions and the difference between cash and operating break-even explicit.
#084 Claude CoworkGlossSheet to Narrated ReportLet the engine own every number and the model own only the words, and enforce it with a guard that rejects any number it did not compute.
#085 CodexCommon GroundGeo Data StoryAn empty map cell is a question about evidence, not a conclusion about a neighborhood.
#086 Claude CodeCandorJob Applier + Resume RebuilderAn honest AI resume tool needs a guard that ties every line to a source fact and rejects anything new, including wording borrowed from the job post.
#087 Claude CodeHatchStartup-in-a-BoxLet code own the facts and make the reviewer quote its evidence; the orchestrator then only has to route work.
#088 Claude CodeRedlineMR Review BotTreat the model like an untrusted contributor: fence the diff as data, demand strict JSON, and reject any finding that does not anchor to a line it was shown.
#089 CodexGrainGenerative Art EngineSeparate deterministic geometry from rendering so every promising study can be recreated.
#090 Claude CodeGloamAI Narrative GamePut the dice inside the state and make every action a pure transition; saves, replays and AI guardrails all fall out of that one choice.
#091 Claude CodeVeerMultiplayer GameClient prediction is only exact when the server consumes exactly one input per tick; every snap-back traced to a starved tick.
#092 Claude CodeDrydownFragrance RecommenderPersonalized PageRank only means something against a global baseline, and MMR can buy real variety for a few percent of relevance.
#093 CodexWayfindWayfind: Road-Trip Route PlannerName the optimization objective and keep planning estimates separate from road results.
#094 Claude CodeWhetstonePrompt OptimizerHonest measurement is mostly plumbing: a sealed test split, evidence-checked judges, significance tests and a budget checked before every call.
#095 CodexBasisDesign System GeneratorPrimitive colors and semantic roles need different jobs, and exports need their own verification.
#096 Claude CodeHundredThe 100 Builds Portfolio SiteMake the honesty rules code: the build rewrites claims from the tracker and the tests fail on a broken link, an em dash or a banned term.
#097 Claude CoworkHelmAI Ops Command CenterParse the real files into one pure vault and make every draft, local or Claude, pass the same validator, and the console stays honest as the folder changes.
#098 Claude CoworkCairnSecond Brain (RAG over this folder)Grounding is a data problem before it is a model problem: clean the corpus once, skip the scaffolds, keep headings as context, and check every quote against the exact chunk it cites.
#099 Claude CodeAfterwordThe 100 Builds Documentary PageA story page built from logs stays honest when every number is computed, every quote is verbatim, and the output is tested for banned terms and em dashes.
#100 Claude CoworkPrimerTeach-Back EngineNormalize source text at the parser and guard every AI rewrite against facts not in the source, and a generated course stays honest as the corpus grows.
#101 CodexPit StopPorta-Potty Finder (Pit Stop)A recent report helps, but it does not turn a map pin into a guarantee.
How to check this
Every build has a page with what it does, how I built it, what I learned, and its honest limits. The code is private, but I'm happy to walk through it and run any project's tests while you watch.