Skip to content
Abdullah Rahman Building fast, reliable web software

A Recorded Night

Day 12 — The plugin interface that almost was not

Date
September 16, 2026
Alcove
General
State
Productive
Marked
  • work
  • cli
  • architecture

Spent 4 days on the plugin interface. The first three designs were too clever. The fourth design — the one I shipped — is boring: every check is a function that takes a context and returns a list of findings.

I was trying to invent a clever DSL for declaring checks. The DSL would have saved 3 lines per check and cost 200 lines of framework code. Plus a learning curve for contributors.

Lesson I keep re-learning: boring is a feature. The 3 saved lines are not worth the complexity tax.

Ported 40 of the 50 v2 checks today. The plugin system made the port trivial — each check is independent, so I could port one at a time without breaking the others.