Platform · 2026

HQ

Solo build

HQ runs my devices. Goals, check-ins, and notes live in one PostgreSQL store instead of being scattered across apps.

Every device talks to the same authenticated command API. An ESP32 smart mirror and a Telegram bot both use it, so adding a device costs no new integration work.

Pages, fields, and values are stored as JSONB rows behind a GIN index. That removed schema migrations across five tables. I can add a new page type without touching the database schema.

Webhooks get redelivered, which used to mean duplicate rows. A partial unique index makes those writes impossible, and 25 end-to-end database checks prove it stays that way.

Built with

  • TypeScript
  • Next.js
  • Tailwind
  • PostgreSQL
  • Supabase
  • ESP32

Highlights

01

Goals and check-ins centralized in a single PostgreSQL store

02

One authenticated command API shared by every device

03

Schema-free pages, fields, and values as JSONB behind a GIN index

04

Partial unique index kills duplicate writes on webhook redelivery