DEVELOPMENT · 7 MIN · 2026-05-18
API Contracts Are UX for Developers
Consistent errors, pagination, and versioning — the boring stuff users never see but always feel.
Non-negotiables
- One error envelope everywhere: `{ message, errors, trace_id }`.
- Pagination: cursor for feeds, offset for admin tables — documented.
- Validation messages a human can act on.
Versioning without drama
Never break a field. Add, deprecate with sunset header, then remove. Your future self says thanks.
I spent two hours debugging this site's CSS once. The bug was a missing semicolon. I am not proud.