~/log / 29 June 2026

Designing app UI from states, not screenshots

App interfaces fail differently from marketing pages: AI defaults produce a landing page layout misused for a product, low information density, fake placeholder data, and no empty, loading, or error states. This skill designs from the opposite end: real states, real data shapes, and the core object the app revolves around.

Foundations first: a type system with tabular numerals for data, a palette with semantic roles, and density decided up front, because SaaS lives or dies on row height and control size. References are gathered screen by screen, borrowing the best pattern from several products rather than copying one wholesale.

Drumlit's command centre UI came out of this process: dense tables, honest states, and a shell that feels like a tool rather than a brochure.

All posts