Shipping · 2 min read · 21 October 2026

A CMS for editors who aren't the developers

Admin panels usually fit the people who build them. This one fits the people who actually use it: older editors, so the type is bigger, the contrast is higher and labels never hide.

A cartoon desk with a large monitor showing a simple form with big fields and one big button, beside reading glasses and a mug
16 px
minimum body text in the CMS
13 px
the smallest text allowed anywhere
44 px
minimum touch target

01 · Who actually edits

The editors are older than the people who usually test admin panels.

A default admin template assumes a 14 px table, grey-on-grey placeholders and icons without labels. That's fine for a developer at 2 a.m. It's a wall for someone who updates the site now and then and doesn't want to call for help. So the brief for the CMS said it plainly: bold, easy to read, friendly to older users.

02 · A bigger type scale

Every size is larger than in a typical admin panel.

  • page title: 28 px / 36 px, bold
  • section title: 22 px / 30 px
  • table headers: 18 px / 26 px
  • body and table cells: 16 px / 26 px
  • labels and captions: 14 px
  • 13 px only for breadcrumbs and meta, and nothing smaller anywhere

03 · A font for reading, not for branding

The public site and the CMS use different body fonts on purpose.

The public site keeps its modern sans. The CMS switches to Source Sans 3, which has a large x-height and open letterforms, so it holds up better at small sizes for older eyes. The headings keep the brand's heading font, so the CMS still feels like theirs.

04 · Rules that matter more than looks

Most of the wins are rules, not styling.

  • Every text/background pair meets WCAG AA (4.5:1 for normal text).
  • Never say something with colour alone. Add an icon, text or a pattern.
  • Every field has a visible label. Placeholders are hints, not labels.
  • Errors appear as text under the field, not just a red border.
  • Every interactive element has a visible 2 px focus ring.
  • Language tabs for bilingual content open on Indonesian, the editors' main language, and switch with the arrow keys.

05 · Density is feedback, not taste

On another CMS, QA asked for more room, and they were right.

The design file used a 4 px spacing unit. After QA feedback I raised the base unit to 4.8 px and moved the whole type scale up one step. That deliberately diverges from the design file, and the reason is documented, so nobody "fixes" it back later.

06 · The same rule outside the CMS

Design for the person holding the mouse.

I applied the same thinking to a small browser tool that prints house-number plates, with presets per housing estate: buttons at least 50 px tall and 16 px text, because it was designed for older users. None of this is special. It just isn't the default.

Next storyAn SEO audit that refuses to grade myths