Currently working on.
A growing log of the technologies, problems, and patterns I’m working through right now — pulled from real commits, open issues, and pull requests. Anonymised where the work lives in private repos.
Active technologies.
Last 30 days255 commits
#1 / 3200 COMMITS
TypeScript
2 projects activeLast touched 2026-10-26
Share of activity100%
#2 / 336 COMMITS
MDX
1 project activeLast touched 2026-10-27
Share of activity18%
#3 / 319 COMMITS
Python
1 project activeLast touched 2026-10-26
Share of activity10%
Currently solving.
Open issues + PRs
TypeScript · PR #63docs(production): Supabase London created and migrated; Vercel project set up [Phase 16]
MDX · PR #562refactor(images): remove the Gemini image harness; ChatGPT is the generator
MDX · PR #559writing: The /streams/ page compiled clean. The audit found five bugs.
MDX · PR #553chore(deps): bump the npm-minor-and-patch group across 1 directory with 7 updates
TypeScript · PR #97feat(privacy): enquiries kept 12 months from last contact, then deleted
Python · PR #128chore(devlog): 2026-06-20 (#3) — GA4 OAuth live + first real baseline (9 sessions, 0 organic)
TypeScript · ISSUE #13Update CLAUDE.md: document legal/ component subfolder and Controls Map route
TypeScript · ISSUE #31tests: legal breadcrumb tests cover visual nav but not JSON-LD <script> tag
MDX · ISSUE #30chore: adopt per-project bootstrap.sh + scaffold security-by-design + run security trio
TypeScript · ISSUE #27security(deps): action 32 dependency vulnerabilities from 2026-05-25 scan (2 CRITICAL + 15 HIGH)
Just shipped.
Closed in last 14 days
MDX · PR #563chore(streams): Apex Legends Tue–Thu 18:00–20:00 UK, week 44
TypeScript · PR #125feat(blog): the welcome post opens on its own header image
TypeScript · PR #124feat(newsletter): double opt-in with a consent record and one-click unsubscribe
TypeScript · PR #123fix(phone): price card terms, one quote label, a full-screen menu
TypeScript · PR #122chore(db): size the pool for Supabase's free pooler
TypeScript · PR #121fix(auth): account emails after the response; admin audit rows keep their ids
TypeScript · PR #120docs(plan): sprint 2 as spec 030
MDX · PR #561feat(backend): /api/live/ live check behind the homepage hub
TypeScript · PR #119docs(launch): bytebridges.co.uk is live on Vercel
MDX · PR #560feat(workshop): seven-tier badge set from ChatGPT, adds Principal and Distinguished