tw. ← back to work
// case study · evolving product
product

My Workspace

self-directed · Mar 2026 – present · AI-assisted development

A personal workspace for a career break: one place to decide what matters today, keep life moving, and see where the weeks actually went.

the problem

On the first day of my career break, I didn't know what to do with the day. For years, Teams and Outlook had decided my time for me. Suddenly that structure was gone, but life was still full: family, habits, learning, projects, and all the small things that needed attention.

The tools I tried assumed I was managing a job. I wanted something built for a slower, more intentional life: a place to choose a daily focus and reflect honestly, without turning a break into another set of work targets. That became My Workspace.

// the beginning · Version 1

built for a break, not a job

I started with Claude-assisted prototyping: a single-file app, hosted on Netlify, with records kept in the browser. I used it for six months. The sections followed my life rather than an organization chart, bringing daily planning, family, learning, creative work, and reflection together.

The Today view made the idea tangible. A briefing led with one focus, then surfaced the emails, school updates, and plans that needed attention. The goal was to spend less time assembling the day before I could begin it.

Version 1 · Today
Version 1 Today screen with a daily focus, morning briefing, week at a glance, and family digest, using fictional examples.
Version 1 · the original Today interface, shown with made-up data. This is not the current Firebase interface.

what six months of use taught me

The useful part was the rhythm between planning and reflection. The morning helped me choose; the monthly retro helped me notice what I had actually done. I wanted the review to say when a category was thin, not smooth everything into a success story.

Version 1 · monthly retro
Version 1 monthly retrospective with activity patterns, health and movement observations, and reading notes, using fictional examples.
Version 1 · the original monthly retro, shown with made-up data. Its AI automation is historical Version 1 behavior.

Using the prototype also changed the question. Once the workspace held work I cared about, I needed to think beyond the next feature: where was an edit saved, could I use my records beyond one browser, and what would happen if a save failed or two edits conflicted?

// the next chapter · Version 2

from a useful prototype to a more dependable workspace

I moved ongoing development from Claude to Codex and rebuilt the app around Firebase. I kept the familiar workflows and warm green-and-cream design; the bigger change was giving records, saves, and recovery a clearer foundation.

Version 1 · find the rhythm
Claude + Netlify
  • A single-file prototype
  • Browser-local records
  • Six months of use to learn which routines mattered
Version 2 · support the work
Codex + Firebase
  • Modular JavaScript and CSS, bundled with esbuild
  • Firebase Hosting, Authentication, and Cloud Firestore
  • Versioned saves, conflict checks, and local draft recovery

The two changes serve different purposes: Codex is my development partner; Firebase hosts the private app and supports sign-in and synchronized records. This portfolio remains on Netlify.

where the workspace is now

The newer app brings daily and weekly planning, projects, learning, reading notes, and reflection into a modular workspace. The most important product decision is making the difference between an unfinished local edit and a confirmed cloud save understandable.

A history of savesVersioned records retain earlier revisions.
A chance to resolve conflictsRevision checks surface stale edits instead of silently treating them as current.
A way back to a draftLocal draft recovery supports interrupted editing.
Version 2 · daily reflection
Actual Version 2 reflection panel with an empty journal field, an optional mood selector, and a reading notebook link.
Version 2 · a cropped screenshot of the current app’s daily reflection panel. The fields are empty; no personal records are shown.

The earlier Today and monthly retro screenshots document Version 1. Not every legacy automation has migrated: those images should not be read as a claim of current Firebase automation.

what I learned about building with AI

I define the workflows, make product decisions, review AI-assisted implementation, and test the experience. Claude helped me get the first idea into daily use; working with Codex has pushed me to think harder about how that work persists and recovers.

The lesson is that a useful screen is only the beginning. I still own the choices about what should be saved and how a failure should be explained. Cloud sign-in and sync need connectivity, and local drafts cannot guarantee recovery after browser storage is cleared. My next focus is testing the remaining workflow gaps and making recovery feedback clearer.

// Version 1

The workspace I used for six months

I used the Claude-assisted, single-file workspace for six months. It helped me discover the routines worth keeping before rebuilding the app with Codex and Firebase.

Read the original Version 1 case study
// case study
product

Micro-Retirement Workspace

self-directed · Mar 2026 – present · single-file PWA · AI scheduled tasks + APIs

A personal operating system for a career break. Every morning an AI task reads my calendar and inbox and writes a briefing into the app. Every month the app tells me, honestly, how I actually spent my time.

6 months live
still daily
single file
no backend
AI briefing
every morning
monthly retro
honest, not flattering

the problem

On the first day of my career break, I didn't know what to do with the day. For years, Teams and Outlook had decided my time for me. Suddenly nothing did, and it felt strange. Every productivity tool I tried was built for working life: sprints, meetings, OKRs. None of them was built for a life that's meant to be slower on purpose.

day one
An empty calendar and apps built for work
  • No Teams or Outlook setting the shape of the day
  • Tried Notion; like everything else, it assumed you had a job
  • Habits, money, kids' school, and learning scattered across tools that didn't talk to each other
  • No honest way to see where the weeks were actually going
now
One place, already filled in by breakfast
  • A morning briefing generated from my calendar and inbox
  • Habits, family, finance, learning, and creative work in one file
  • A weekly digest of the kids' school newsletters, action items first
  • A monthly retro that reports what actually happened

built for a break, not a job

The sections match what a career break actually contains. No sprints, no OKRs.

🏠TodayBriefing, habits, focus, this week
❤️Body & MindMovement, journal, streaks
👨‍👩‍👧‍👦FamilySchool events, classes, summer camps
💵FinanceIncome by source, spending
🧠LearningCourse library, books, skills
✦CreateProjects and content pipeline
✨AIAn assistant that knows the data
📊RetroThe monthly honest review

how AI writes into it

The app is a single HTML file. No framework, no server, no accounts; all data lives in the browser. So how does an AI fill it in every morning? The page exposes a small JavaScript bridge, and scheduled AI tasks call it.

reads
📅
Google Calendartoday + this week
✉️
Gmailwhat needs action
🏫
School newslettersevery Saturday
SCHEDULED · EVERY MORNING

Scheduled AI task

Decides what matters today: the one focus, the alerts, the emails worth acting on, the week ahead. It follows my own rules for what makes the cut.

writes

The workspace

__ws.setBriefing(…)
__ws.setTodos(…)
__ws.setFamilyData(…)
__ws.logHabit(…)

Refreshes when I switch back to it, so the briefing is just there.

The bridge is the only way in. It's a named, documented set of methods, not open access to the page, so every write is one I can read and reason about.
fig. 1 — calendar and inbox in, a finished morning out

what the morning looks like

By the time I open the laptop, the Today tab is already filled in. I didn't type any of what you see below.

my workspace · today
The Today tab: a dark green morning briefing card with a countdown, an alert about early school release, the day's focus, emails to act on and the week at a glance; beside it the weekly school digest with action items for each child.
One focus, not a listThe briefing leads with a single sentence about what the day is for.
Only what needs meEmails are filtered down to the few that need action.
School, pre-readA week of newsletters becomes three action items.
fig. 2 — the real app, filled with made-up data

the monthly retro

For each month, the app sends that month's habits, journal entries, reading, and money to an AI model. It gets back a written review: a theme for the month, what happened in each area, and two things to carry forward. The prompt asks for real numbers and honest calls, and to say so when a category is thin.

my workspace · retro
The Retro tab for a month: summary chips for workout days, journal entries and income; a headline insight; a health section with two findings and a day-by-day activity strip; a reading section.
fig. 3 — the real format, filled with made-up data

A lightly redacted excerpt from a real month:

exercise days: 17 of 31 deep work: 21 days learning: 21 days social: 10 logged
"17 active exercise days this month, the strongest consistency yet. A structured routine plus a formal check-in kept the streak intact."
"21 deep work days, the best month on record. The AI and learning stack finally turned into a steady output loop instead of sporadic bursts."

what I learned

The interesting output of a self-tracking system isn't the dashboard. It's the monthly retro that reports what actually happened, without smoothing it over. Some months read like the one above. Others don't, and the tool has to say that just as plainly. That honesty turned out to be the real product decision, more than the layout or the color palette.

The second lesson was about where the AI lives. It doesn't run the app; it fills it in. Keeping the app a plain file that works with or without AI is why it's still in daily use six months later, not abandoned in week three.