Skip to content

How decisions get settled

The palette failed its own test, so the palette changed.

BAKORP's brand blue is unreadable on the dark navy used for evidence sections. Not as a matter of taste — measured. It reaches 2.88:1 against that background, where the accessibility guidelines require 4.5:1 for text. The measurement was taken before any of it was built.

So the design changed rather than the standard. On dark sections, links resolve to a lighter blue measuring 4.75:1, and the primary button inverts entirely because no single colour passed on both backgrounds. You can see the difference by comparing a dark section of this site with a light one; neither colour was chosen by eye.

Every colour pairing the site uses is checked the same way — 55 of them, on every change. Two of those checks are inverted: they assert that the combinations we banned still fail. A rule nobody re-tests is a rule that has quietly stopped being true.

Where correctness lives

Getting it wrong should be harder than getting it right.

Knowing a rule and following it every time are different problems. The colour rule above is not written in a style guide for someone to remember — it is built into the layout. A dark section redefines what 'link colour' means for everything inside it, so a link written the ordinary way is already the accessible one. Writing the unreadable version would take deliberate effort.

The same applies to words. Every piece of text on this site is validated when the site is built: a page description too long for a search result, or a product name that breaks the naming convention, stops the deploy rather than shipping quietly. So does a link pointing at a page that does not exist.

None of this makes mistakes impossible. It moves them from the kind that reach people to the kind that fail loudly on a Tuesday afternoon, which is the only meaningful improvement available.

What is left out

This site works with JavaScript turned off.

Try it. Every page here is plain HTML delivered from the server — there is no client-side application, nothing to hydrate, and nothing that must run before you can read the page. That is not a performance technique. It is the absence of code that was never needed.

The same restraint accounts for what else is missing: no analytics, no cookie banner, no chat widget, no live feed, no theme switcher. Each was considered. Each was left out because nothing here required it, and every one of them would have been a thing to maintain for years.

Restraint has a cost, and it is fair to name it: this site does less than it could. In exchange there is very little to go wrong, very little to keep working, and nothing gathering information about you while you read.