One screen for the week: why I built my own dashboard
My todos lived in Google Calendar, my study plan in markdown, my surf forecast in a separate app, and my weekly reviews in my head. So I built Week Board — a local-first dashboard that puts my entire week on one screen.
Tomorrow at 6:30 AM, I'll open a browser tab on localhost and start my week differently.
The background: too many tabs, no picture
I run several tracks in parallel. An advanced Chinese study plan that owns my mornings from 6:30 to 8:00 — currently Practical Audio Visual Chinese 5, plus readers and Hanzi writing, structured into phases through December. A queue of things I also want to learn and deepen on the side, for example with financial modeling. A reading list that only ever grew. And on good weekends, surfing — which in Taiwan means checking swell for 烏石港 on the northeast coast or planning a proper trip down to 金樽.
The problem wasn't discipline, I can be focused with that. The issue was, that the whole picture of my week didn't exist anywhere. Todos and events lived in Google Calendar. The study plan lived in a markdown file. The surf forecast lived in an app I'd check separately (usually too late). Weekly reflection lived nowhere. I'd think about how the week went while brushing my teeth on Sunday, and by Monday it was gone.
I tried a lot: From Notion templates, note apps, obsidian, bullet journals. They all kind of forced me to move my life into their structure. What I wanted was the opposite: one place that pulls from where my life already is.
The goal
Three things, honestly:
- See the shape of the week before starting it. News, surf, events, and tasks per day, at a glance, every morning.
- Make learning a tracked system that has an overvoew. Concrete lesson counters against a roadmap, updated by a weekly ritual — so "how's Chinese going?" has a datapoint that updates itself.
- Own the data. Everything local, everything markdown or SQLite, everything exportable. If the app dies, my history doesn't.
What it looks like
Week Board is a local web app. One screen equals one calendar week. The layout, top to bottom:
The morning section. A small meditation card asks one question: "What's the one thing that gives today purpose?" I type one line, it collapses, done. Below it, a Stoic quote for the day — same quote every year on that date, from a file I can edit. Next to it: exactly 18 headlines, six each from The Guardian, Tagesspiegel, and TechNews.tw. One snapshot per day, filtered (no war, no violence — I get to choose what enters my head at 6:30), headlines only, links out. The constraint is the feature: there is nothing to scroll, nothing refreshes, no algorithm feeding me more. Ninety seconds of "what's happening," and the section is finished with me.
The week board. Seven day columns. Weather on top of each day. Under it, a small wave icon: a wave if the surf is worth it, windy if it's not, a flat line if there's no swell — hover shows size, direction, and wind. A toggle switches between my two spots. Below that, each day stacks its calendar events and its tasks, pulled live from Google Calendar and Google Tasks. Checking a task here completes it in Google. The best surf day of the week gets a highlighted border — the app's way of saying protect this morning.
The learning tracker. This is the heart of it. My topics live in a single roadmap.md file — human-readable, hand-editable, git-tracked. Chinese is active, structured in four phases with real counters: PAVC5 at 13/14 lessons, Business Chinese 3 at 0/10, Writing Hanzi 2 at 0/6. The dashboard shows the current phase, a progress bar computed from those counters, and a warning badge when an intense phase is coming up. Behind Chinese, other topics wait in a queue — when I mark one finished in a weekly review, the next one activates automatically. No dead topics cluttering the view, no guilt wall.
Reading queue and AI brief. A short list with one highlighted "pick" for the week, and a paragraph generated on Monday that reads my calendar, the forecast, and my learning targets, then tells me things like: flat until Thursday, clean Saturday at 烏石港 — protect that morning; front-load lesson 14 before the rain.
The Sunday ritual. At the bottom sits a review box. I write what moved, what slipped, what to change. One button — Save, update roadmap, close week — writes my new lesson counts into roadmap.md, appends a log line per topic, freezes the whole week (tasks, forecasts, intentions, review) into an immutable record, and commits everything to a private git repo. Every week of my life becomes one markdown-exportable snapshot I can grep, analyze, or feed to an AI six months from now and ask: what patterns do you see?
The development
I designed the whole thing in one long conversation with Claude: brainstorming sections, iterating on an HTML mockup until the layout felt right, then turning every decision into a proper PRD with data models, a surf-quality heuristic, and six build milestones. Claude Code built it from that PRD in a day, with some pauses due to the token limit. React and Vite on the front, Node and SQLite behind, Open-Meteo for weather and marine data (free, no keys), Google's APIs for calendar and tasks.
But honestly, the code is the least interesting part. The interesting part was being forced to decide what my week should look like — what deserves a place on the screen and what doesn't. No inbox. No metrics I don't act on. No streak-shaming. News that ends. A system that closes on Sunday instead of following me around.
What happens now
Tomorrow is day one. The real test isn't whether the app works — it's whether the ritual survives contact with a normal Tuesday. I'll write a follow-up after a few closed weeks, with the parts that stuck and the parts I deleted.
If you've built something similar — or you think staring at your own week on one screen would terrify you — I'd genuinely like to hear about it.