Week in Review: Voice Platform Foundations, Level Search, and a Better Front Door

21 commits across voice-platform, database, Free-English, Lesson Planning, the portfolio, and Firstly Academy. The week was mostly about foundations: a new voice platform repo, stricter database governance, better grammar discovery, analytics salvage, and finally a cleaner explanation of what I actually do.

21 commits this week.

Not one of those feral 700-commit weeks where the graph looks like a medical event. More of a “make the system easier to understand and easier to use” week.

That happened in a few different places:

  • voice platform foundations
  • shared database governance
  • grammar discovery
  • analytics preservation
  • lesson workflow cleanup
  • portfolio positioning that should have existed earlier

voice-platform

The biggest new addition was voice-platform.

I started the repo properly this week and gave it an actual shape instead of leaving it as a vague future-system in my head.

The work there was mostly foundation work:

  • public contract and package structure
  • guided-turn control APIs
  • engineering playbook and release docs
  • testing rollout plan
  • public package release discipline

So this was less “look, shiny demo” and more “build the thing in a way that other repos can actually depend on without chaos”.

Which, for platform work, is the whole point really.

database

The new database repo also had a real week.

I reorganised the governance docs, added stronger validation and evidence snapshots, and wrote down the shared policies around source of truth, tenancy, auth, and migration tracking in a way that is much less likely to rot immediately.

There was also a useful case study around a voice-platform blocker and a documented audit of Firstly engineering docs.

Again, not glamorous. But this is the repo that is meant to stop cross-app database decisions turning into folklore.

english-exercises.org

The main product work was a proper level-search layer for grammar.

I added generated catalogue-based discovery so grammar topics can be filtered by CEFR level under routes like /grammar/level/b1, instead of depending on a pile of handwritten registries that quietly drift apart when nobody is looking.

That work also tightened a few useful foundations:

  • shared CEFR parsing
  • stronger exercise JSON validation
  • generated search data for grammar topics
  • cleaner topic counts and routing

Basically, finding the right exercise should depend more on real metadata and less on me remembering where I hardcoded something three months ago.

I also started a proper Amplitude exit capture pass. The account is on borrowed time, so I wanted exports, chart context, and a backlog of page improvements saved in one place before anything disappears into the swamp.

There was also one small but satisfying grammar fix: the reported speech WH-question answers got corrected. Always nice when a week contains both architecture work and a reminder that answer keys can still embarrass you.

Lesson Planning

Lesson-planning was quieter, but useful.

I added a new article discussion lesson type so advanced students doing discussion-heavy classes have a clearer structure for summary, stop-and-speculate prompts, paraphrasing, and short writing follow-up.

I also added a recap PDF workflow for one discussion format and did a broader debrief pass across a lot of student roadmaps.

Not glamorous work, tbh. Very good work.

This is the part that keeps the teaching system from becoming a folder full of semi-related documents and optimistic memory.

Portfolio

The portfolio got the most visible changes.

I added a proper Build With Me page, tightened the positioning around AI pilot sprints / practice layers / teacher workflow automation, and wrote the career materials that sit behind that pitch.

In plain English, I finally tried to explain what I actually do without sounding like a generic “AI consultant” from LinkedIn hell.

I also:

  • backfilled the weekly blog archive
  • added tag and project archive pages
  • published the SEO enrichment experiment write-up properly

Which means the site is starting to feel less like a scrapbook and more like an actual front door.

Firstly Academy

Firstly only had a few commits, but they were worth doing.

I added Clerk auth guardrails, a smoke test around the protected student lessons surface, and a docs pass to align auth guidance with schema guidance.

Very unsexy. Very necessary.

These are the kinds of changes that do not make a flashy screenshot, but they do reduce the odds of future-me breaking something stupid while moving quickly.

The Mood

The common thread this week was clarity.

Make the platform repo real. Make the database rules less fuzzy. Make grammar easier to discover. Make analytics harder to lose. Make lesson formats easier to reuse. Make the portfolio less vague.

I like weeks like this more than I used to. They look smaller from the outside, but they usually make the next month much less annoying.