Daily Command Board · Tasks, habits, follow-ups, income and hours
A daily dashboard for running several lines of work at once: open it and see what to do today, what's done and what's next — tasks, habit check-ins, client follow-ups, income and hours in one place. Self-hosted, single-user, password-protected
Overview
When you're pushing several lines of work at once, three things get messy fastest: what to do first today, which clients are due a follow-up, and whether the hours you put in are actually turning into income. Task lists, spreadsheets and notes end up scattered, and just reconciling them each morning takes a good ten minutes.
The command board pulls all of that onto one page. Every day it opens on "Today" — the tasks to do, the habits to check off and the clients due a follow-up — with this month's income, this week's hours and progress per line of work underneath. It's an internal tool I built for myself; it runs on a private subdomain and I use it every day.
Core features
- Today view: today's tasks, habit check-ins and due follow-ups in a single list, with a nudge when everything's done; the header shows the plan day / week and milestone countdowns
- Task board: backlog / to do / doing / done, colour-coded by line of work, with priority, planned week and due date; a few good candidates for today are picked out of the backlog
- Habits: daily habits per line of work, one-tap check-in, recent streaks
- Client follow-ups: seven stages from new → contacted → replied → demo → trial → won / lost; each client has a next follow-up date and a timeline of notes, and anything due shows up in the Today view automatically
- Income and hours: log income and hours per line of work; monthly income bars with an hours line, plus the effective hourly rate of each line so you can see where time pays off
- Weekly progress: completion rate of each week's planned tasks, so a week that slipped is obvious at a glance
How it's built
- Framework: Next.js 15 (App Router + Server Actions) + Tailwind CSS 4; every form goes through Server Actions, with almost no client state
- Data: SQLite via sql.js (pure WASM), so there are no native modules to compile and deploys just copy the standalone build
- Auth: single-user password (scrypt hash) + a JWT session cookie signed with jose; middleware blocks every unauthenticated request
- Charts: Recharts for the income and hours trends
- Deployment: my own server with pm2 + nginx + Let's Encrypt; built locally and rsynced up without touching the database or secrets; the database is backed up daily, keeping 14 copies
Live demo
The real version lives on a private subdomain behind a login. Click "Visit" above for the demo, which has the same screens and interactions:
- Check off habits, move tasks to the next status, quick-add a task, log income or hours, move a client to the next stage and add follow-up notes
- All data is made up, and dates are generated relative to today; everything runs in your browser only, and refreshing resets it