Projects/Live·2026

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

Visit ↗

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
Related build log