What I've been building

Written by an agent

Every entry below was written by a Claude agent from that day's commits, prompts and session notes.

How it works

9 July 2026

  • Remind me later 4 commits

    The celebration when you finish a habit is finally visible

    Today was about making a finished habit feel good, and reaching the ones that had gone missing.

    • The little celebration when you finish a habit now plays on the row you tapped, so you see it instead of missing it off the bottom of the screen.
    • A progress line at the top of Today shows how much is left, and clearing the last habit ends the day with a small finish.
    • You can now scroll to and log older habits in the “Log another habit” list, which used to sit off the bottom of the screen with no way to reach them.
  • Behind the scenes 1 commit

    The shared artefacts page publishes again

    A single fix to the tooling that publishes shared artefacts.

    • Fixed the artefacts publish step, which had failed on every run since 4 July after a hero screenshot moved, so the page updates again.

6 July 2026

  • Starter template for new apps 13 commits

    The reference codebase now stops mistakes before they reach a project

    Rules that used to live only in documents became automated checks that fail a bad change on their own.

    • A worker’s deploy settings are now checked against its code, so a setting missing from the code fails the build, not at runtime.
    • A worker’s compressed size is checked against a budget, so a heavy dependency can’t quietly bloat what gets deployed.
    • Unused code and dependencies are now flagged, so leftovers from a refactor don’t pile up unnoticed.
    • The document listing a worker’s routes and connections is generated from the code, so it can’t quietly fall out of date.
    • A message or webhook can now be proven to run once, even when two arrive together, using a shared check any project can reuse.
    • Each screen is checked against a saved image, so an accidental layout shift is caught before it reaches anyone.
    • Each screen is scanned for accessibility problems that block real users, the first such checking across any of the projects.
  • Shared code libraries 2 commits

    Catch a request making too many calls before it reaches users

    Cloudflare caps how many external calls one request can make, and going over crashes it only once real traffic arrives.

    • A test can now set a call budget and fail the moment a request goes over it, so the problem surfaces while you build.
    • Fixed the front-end build, which broke when a shared testing package started pulling in server-only code.
  • Behind the scenes 1 commit

    A walkthrough of the Eagle Eye loyalty integration for commercetools

    The explainer walks through each shopping step, from activating a voucher and seeing the basket’s loyalty and discount breakdown to paying with wallet credits.

5 July 2026

  • Starter template for new apps 7 commits

    Find tests that pass even when the code is broken

    Golden gained mutation testing, which breaks the code on purpose and checks that a test notices the change.

    • Running it on golden’s own code shows which tests would catch a real bug and which pass no matter what, so weak tests stop hiding.
    • Any new app built from golden starts with the same setup ready, so its tests can be judged the same way from day one.
  • Behind the scenes 10 commits

    Start a new project with one command

    The workspace’s build and automation tooling got the attention.

    • You can now scaffold a complete new project with one command, producing configs, tests, auth and design-system wiring that pass every check without hand-editing.
    • Long automated plan runs in the cloud no longer stop to ask permission for each file a background helper writes, finishing without supervision.

4 July 2026

  • Anecdote 2 commits

    Reminders now link to the story they're about

    Anecdote texts a reminder when a saved story still needs its result or its next action written down.

    • You can now tap that reminder to open the exact story, instead of opening the app and searching for the right entry.
    • Fixed the reminder still telling you to reply to archive a story, when replies to that number no longer reach anyone.
  • Starter template for new apps 5 commits

    A reference app to build new projects from

    The work built a complete example app whose only job is to be the pattern every new project here is measured against.

    • The example covers a real app end to end: creating and editing notes, a daily stats view, sign-in, and a paid AI call.
    • A new build check fails when an app’s reply stops matching its agreed shape, so the mistake is caught before release, not by a user.
    • The project gained its first automated browser test, which drives the whole running app to catch breaks that smaller tests miss.
  • Behind the scenes 2 commits

    Build new projects from a single reference app

    Work on the tooling that builds and tracks these projects, not on the projects themselves.

    • New projects get their starter files from one reference app, so a change to the shared pattern is made once, not in every copy.
    • A task now counts as done once its code change is complete, so tracked items close on time instead of waiting on a later release.

3 July 2026

  • Starter template for new apps 4 commits

    Planned a reference app for new projects to copy from

    The plan for golden was written and refined, a single working example app that new projects copy from instead of repeating setup and drifting.

  • Remind me later 2 commits

    Planned the next round of planner reliability fixes

    A code review checked how the planner held up after its recent features, and mapped out the fixes and tidy-up that come next.

  • Behind the scenes 7 commits

    Start a build plan and let it finish on its own

    The workspace now runs a multi-step build without someone steering each step.

    • A saved build plan now runs end to end on one command, merging each finished piece as it lands, so you can walk away.
    • Every build plan is now written to one shape, gathering the decisions a person must make up front, so a run never stalls to ask.

2 July 2026

  • This portfolio 6 commits

    Know what each app screenshot shows

    The images at the top of the case studies got attention, both the phone carousel and the framed screenshots.

    • Each app screenshot in the planner case study now carries a caption, so you can see what screen it shows.
    • You can now tap a side screen in the carousel to centre it, and the active screen stands out from the rest.
    • The screenshots now stay sharp on high-resolution displays, where before they looked soft in the wide layout.
    • One dashboard screenshot now sits in a browser frame showing its web address, so it reads as a real deployed page.
    • You can now tap a screenshot to open it full size and inspect the detail, which was unreadable on a phone before.
    • Screen readers now announce which screenshot is showing as the carousel moves between them.
    • Fixed carousel dots too small to tap on a phone, and controls that gave screen readers a misleading structure.

30 June 2026

  • Anecdote 1 commit

    Behind-the-scenes timing across Anecdote

    This was groundwork rather than a visible feature, covering the text-message conversations, scheduled jobs and account checks that make up Anecdote.

  • Shared code libraries 1 commit

    Cache reads and writes now show up in performance traces

    The toolkit that measures how the apps behave now follows reads and writes to the cache, the fast store that avoids repeat work.

  • Remind me later 1 commit

    More detailed internal monitoring

    Behind-the-scenes monitoring now records more detail about how the app’s parts work together, so faults can be traced and fixed faster.

  • This portfolio 2 commits

    Behind-the-scenes timing to trace slow responses

    The backend behind the site gained detailed timing records, so a slow response can now be pinned to the step that caused it.

  • Gateway for paid services 2 commits

    See where time goes in the text and AI service

    The service that routes text messages and AI calls now records how long its internal steps take, so a slow request can be traced.

  • Sign-in service 1 commit

    Clearer internal tracing for the sign-in service

    Behind the sign-in flow, the service now records its own activity in more detail, naming the Google token step and grouping requests by route rather than by user id.

  • Storymap 1 commit

    More detail when a storymap request is slow or fails

    Storymap now records its own internal steps in more detail, so a slow or failing request can be traced to the operation behind it.

  • Behind the scenes 8 commits

    Automated checks keep performance monitoring consistent across the apps

    The system that tracks how fast each app responds got the finishing work that keeps it honest.

    • New automated checks now block code that skips performance tracing or mislabels it, so the monitoring dashboards stay trustworthy as the apps grow.
    • The rules for how this tracing works were written down, so any new project starts with the same monitoring built in.

29 June 2026

  • Shared code libraries 2 commits

    Sharper timing traces behind the live apps

    The shared tracing tools that measure the live apps gained a more detailed view of where each request’s time goes.

    • Traces now group requests by their route pattern instead of the exact web address, so every hit to one screen lines up together.
    • You can now see the time spent handing a request from one service to another, which was hidden before inside the receiving service.
    • Database traces now show how many rows a query read, so one that scans a whole table stands out instead of looking fast.
  • Storymap 4 commits

    Saving no longer loses your edits when you close then reopen an item

    Storymap got a nudge to where it opens and a fix that protects work you haven’t saved yet.

    • Opening storymap now takes you straight to the Planner board, instead of the general workspace board it showed before.
    • Saving no longer fails when you close an item then reopen it before saving, which used to leave your edits stuck and unrecoverable.
  • Behind the scenes 7 commits

    Planning a way to find slow backend requests

    Maintenance on the shared setup behind the projects, not the projects themselves.

    • Mapped out a way to measure how long the backend services take to answer, so slow requests can be pinned down and sped up.
    • Removed a tool that shortened the AI coding assistant’s explanations, so complex answers read clearly again instead of being squeezed too far.