Waypoint — mission control for life

To-dos, bills, calendar, job hunt, and homelab status on one screen, and on every TV in the house.

nodeexpresssqliteself-hosted1 min read

The problem

I had to-dos in one app, bills in another, a job search tracked in a spreadsheet, and homelab status scattered across dashboards. I wanted one place that was mine.

What I built

Waypoint: a Node/Express + SQLite app with:

  • To-dos (kanban board)
  • Calendar
  • Bills
  • A job-search pipeline
  • Homelab status
  • Agent activity
  • A read-only TV wall board that cycles views on every TV in the house and can speak announcements

Stack

Node.js, Express, SQLite, vanilla frontend.

What broke and how I fixed it

Two browser tabs would silently overwrite each other’s saves — everything lived in one JSON state blob, so whichever tab saved last won, full stop. I fixed it by stamping reads with a server timestamp and merging server-written rows back in on save, instead of blindly overwriting the whole blob.

What I’d do next

Split that one JSON blob into per-item tables. It works, but every save-conflict bug so far has traced back to it.

Like this one

The resume has the rest of the story.

See resume →