Personal project · UX case study

A wall that keeps track of time so I don't have to

I lose track of time, and if I can't see something, it stops existing. So I designed an always-on wall display that keeps my day in view, interrupts me before things start, and lets me act on it with one tap.

My role
Designer, product owner, and the user
Timeline
3 days from idea to wall, September 2026
Team
Me, with Claude Code writing the code
Tools
Claude Code · Node · TickTick API · Google Calendar · Fire HD 10

Swipe sideways to see the whole board.

01 · The problem

My calendar was fine. I just never looked at it.

My problem is time blindness. I don't feel time passing, so an appointment at 2:30 is either "not now" or "oh no." There's nothing in between.

Everything I needed was already written down. Appointments were in Google Calendar. Tasks were in TickTick. Habits were in a tracker I'd built earlier. All of it sat behind an unlock screen, and the brief I gave on day one was one sentence long:

"If I don't see something, it's like it doesn't exist."

Capture was working. Sight was the gap. I didn't need another app to put things into. I needed the day on a wall, in a spot I walk past, where it could get my attention before I was late.

One user
Me. No personas to average across, and nobody else to blame when it's wrong.
Read from across a room
Type and contrast sized for the kitchen doorway, with touch for when I'm standing at it.
Nothing new to maintain
It reads the calendar, task list and habit tracker I already use. If it needed feeding, I'd stop feeding it.
Cheap and always on
A $73 tablet and an $11 kiosk browser license, pointed at a small server I already had at home.

02 · Principles

Five rules I held the design to

Time is a shape

A list of times means nothing to me. A strip with a line moving across it does. The day bar turns the day into distance, so I can watch the gap before my next appointment get shorter.

Three things, never twenty

I had 20 tasks due or overdue. A wall of 20 is the fastest way to make me stop looking at the wall. The board shows three, and the rest are one tap away.

Starting is the hard part

Every task carries a first step that takes a minute or two and needs no decisions. "Reply to a friend" stalls. "Open Messages and reread his last two texts" doesn't.

Mistakes have to be free

It's a touchscreen on a wall, so stray taps will happen. Nothing asks "are you sure?" Every action shows as done, waits five seconds before it's sent, and a second tap takes it back.

The wall can't be wrong

If the board is wrong once, I stop trusting it and it turns into furniture. I treated stale or missing data as a design failure, even when the cause was technical.

03 · The design

What's on the wall

One screen, no navigation. Everything I might need in the next few hours is visible without touching it, and everything I might do is one tap.

Swipe sideways to see the whole board.

Recreated in code with sample data. My real board has my real week on it.
  1. The day as a stripAppointments on the top lane, planned work blocks below, and a white line for right now.
  2. Now, with a way inWhat I should be doing, when it ends, and the first physical step.
  3. Three tasksOverdue first. Tap one to complete it in my task app.
  4. Not todayTakes a task off the wall until tomorrow without touching the task list.
  5. Habits as chipsOne tap checks a habit in. Habits that need writing open the tracker instead.
  6. Two actions and five lightsPlan the day, open the nightly check-in, and a status dot for each data source.

An alert I can't scroll past

Five minutes before anything starts, the whole screen becomes one line of type, a countdown, and the first step. It beeps. It stays there until I tap it. If the start time passes, it turns red and keeps beeping.

I sized it for the far side of the room. An alert I have to walk over and read is an alert I've already missed.

Done, with five seconds to change my mind

Tap a task and it shows as done, with a bar that shrinks for five seconds. Tap again and nothing happened. I chose this over a confirm dialog because a dialog adds a second tap to every completion, and friction I hit every time is friction I'll start avoiding.

Not today works the same way. It hides the task from the wall until tomorrow and changes nothing in the task list. That's on purpose. I'm deciding it won't happen today, and my task list should still say it's undone.

You can swipe a row sideways for the same result, but the button came first. A gesture nobody can see gets forgotten.

A night mode that knows what night is for

After 10:30 the board dims and hides the task list. In its place it shows tomorrow's first appointment in large type, so I see a morning commitment while there's still time to set an alarm.

My first version hid the habits too. Then I noticed two of my habits are things I do right before bed, and the wall had hidden them at the one time of day I needed them. Now the habits stay, and the nightly check-in button stays bright while everything around it dims.

04 · Testing

What the wall taught me that the laptop couldn't

Every screen had been checked in a desktop browser at the tablet's exact resolution, and every screen looked right. Then the tablet arrived, I put the board on it, and found six problems in one evening. The laptop hadn't shown me any of them.

My whole test method was standing at the device, taking a photo of what looked wrong, and describing it in one line.

Taps did nothing

Why
The tablet's browser throws away a slow or slightly sliding press and never calls it a click.
What changed
Every control now reads the raw touch. A press that drifts still counts.

The right edge was cut off

Why
The kiosk browser was showing the page at 105% zoom. The page believed it fit.
What changed
I locked the scale, and had every screen report its real size and zoom back to the server, so the next layout problem starts with a measurement.

The "now" line turned black

Why
With the tablet in dark theme, its browser repaints white shapes dark and leaves white text alone.
What changed
One line telling the browser the page is already dark.

I pressed a label, and it was a button

Why
After a test, the planning button read "Test run finished." I took it for a test button, pressed it, and it re-planned my real evening and moved 15 tasks to tomorrow.
What changed
The button names the action it will take. Test states never show up in the interface.

The wall disagreed with my task app

Why
The task feed I was reading ran 23 minutes behind. It also dropped a repeating task and left out checklist items entirely.
What changed
I replaced the data source. The board reads tasks directly now and matches the app within about a minute.

"Overdue" meant the wrong thing

Why
I put start and end times on tasks only to record how long they take. The board read 9:00 PM as a deadline and turned the task red.
What changed
A task is overdue the next day, never the same day. The board shows its length ("2h") where the clock time used to be.

05 · The agent button

One button that hands my calendar to an AI

The last piece was Plan my day. It runs a planning routine I already used with Claude: read today's calendar, tasks and habits, then build time blocks with a first step in each. In chat, that routine asks me two questions before it touches anything. A wall has no chat.

So the button asks those same two questions on screen, when I'm starting and when I have to stop, pre-filled with the routine's own guesses. Only then does it run. A few minutes later the plan opens on the wall, with a section listing every call it made on my behalf.

This was the one feature where the tooling pushed back. Claude Code's own safety check refused to build it, twice, because it creates a way to start an AI agent with nobody watching. My "go ahead" in chat didn't count. I had to switch modes and approve every command by hand.

I think the check was right, and it shaped the design.

A short leash
The run can use one routine, my calendar, and my task list. No files and no shell.
One at a time
A second press is refused while a run is going, and every run is cut off at 20 minutes.
A read-only rehearsal
A test mode runs the whole path with tools that can only look, so I could prove it worked before it could change anything.
The questions stay mine
Start and stop are asked every time. The agent fills in everything else and shows its work.

06 · My role

Who did what

I didn't write the code. Claude Code did, in conversation with me, over three days. I'm saying that plainly because a case study that hid it would be lying to you about my job.

My job was the part that didn't get faster. I decided what the board was for and what it wouldn't do. I tested every change on the real tablet, usually by sending a photo and a one-line complaint. And I made the calls: breaks keep their alerts, the now line stays thin, overdue means tomorrow, the nightly check-in gets its own button.

I also asked for three review passes before I'd call it launched. They turned up 24 issues and all 24 were fixed. The worst was a bug introduced an hour earlier that would have let a repeating task get completed twice.

When building is this fast, the designer is the slow part. I'm fine with that. Being the slow part is the job.

07 · Outcomes

Where it stands

3 daysfrom the first conversation to a working board on the tablet
$84for the tablet and the kiosk license, on a home server I already had
24issues found across three review passes, all fixed before launch
23 → 1minutes the wall runs behind my task app, before and after changing the data source

It launched on September 30, 2026. That first evening I completed tasks from the wall, checked off habits, and planned an evening I hadn't meant to plan.

I don't have outcome numbers yet and I'm not going to invent any. What I plan to watch over the first month is how often I start an appointment late, how many tasks get completed at the wall compared with my phone, and how often I press Postpone.

That last one is a warning light. If I'm rolling the same tasks forward every night, the answer is fewer tasks, and the board should tell me so.

08 · Reflection

What I'd do differently

Put it on the real device on day one

Every serious problem came from the tablet, and I found all of them in the last evening. Until then, checking in a desktop browser told me the layout was fine. It was fine, on a desktop.

Revisit early shortcuts when the facts change

I picked the slow task feed because it needed no sign-in. That was a good call on day one. On day three I added sign-in for another feature and didn't go back and ask whether the feed still made sense. It didn't.

Take it past a study of one

Designing for myself gave me a user who was always available and never polite. It also means every rule here is tuned to how my own head works. Next I want to put it in front of other people who lose track of time and find out which rules hold up and which are only mine.