KISS: We Actually Follow It

· Updated July 1, 2026 Share

KISS: We Actually Follow It

"KISS" is one of those principles that gets tacked to the wall near the coffee machine and then promptly ignored. Around here, it's not a poster - it's a rulebook. Simple, in this project, means four concrete things:

  • minimize third-party dependencies,
  • prefer native browser functionality over shiny JS frameworks,
  • keep the UI clean, predictable, and fast,
  • you ain't gonna need it.

Minimize dependencies

Every dependency is future work: updates, breaking changes, security patches, and the occasional late night debugging session. We refuse to accumulate libraries just because they're popular. What we do instead:

  • pick tiny, well-understood packages when we need them,
  • prefer server-side Razor Pages for markup and behavior when it makes sense,
  • re-use small, explicit utility code inside the repo rather than pulling a 30k-line helper library.

Yes, we have CSS. No, it's not a framework that requires a second mortgage. We keep styles minimal and pragmatic so the UI is easy to reason about and the load is tiny.

Use native browser functionality

Browsers are better than they used to be. Instead of reaching for a JavaScript framework as the reflexive answer, we use the platform:

  • semantic HTML and accessible form controls,
  • the fetch API for straightforward async calls,
  • localStorage for tiny client-side caches when necessary,
  • details/summary and native dialogs for simple show/hide UX,
  • lightweight progressive-enhancement techniques (a pinch of PJax-style navigation where it makes pages feel snappy without an SPA).

This improves performance and keeps complexity where it belongs - servers and validated APIs, not tangled client-side state machines.

Keep the UI clean and simple

Simplicity isn't just minimal pixels. It's deliberate decisions about what to show and when:

  • one clear primary action per screen,
  • visible states that map directly to feature-flag outcomes,
  • small, consistent icon set,
  • predictable navigation and minimal modal cruft.

A clean UI means fewer user questions, fewer "where did that go?" support tickets, and fewer places for bugs to hide.

You ain't gonna need it (YAGNI)

YAGNI isn't a permission slip for laziness - it's a refusal to invent problems you'll have to debug later. Practical rules we follow:

  • add code only when there is a real need: avoid recreating the wheel.
  • avoid speculative abstractions. Simple, concrete code is easier to read and safer to refactor later than a forest of generic hooks you hoped you'd use someday.
  • if code outlives its purpose, remove it. Stale code is technical debt and accidental surface area for bugs.
  • prefer server-side code and reserve client-side code for where it truly adds value.

Add features when they add real value; skip them when they're just "nice to have." The rest can wait until someone actually asks for it.

The boring-but-useful payoff

When you minimize dependencies, rely on native browser features, and design a simple UI, you get:

  • faster page loads,
  • fewer security and upgrade headaches,
  • easier code review and fewer surprise regressions,
  • a product that actual humans can actually use.

We're not allergic to useful libraries. We just don't hoard them. Simplicity is an engineering choice, not a marketing slogan.

Keep it simple. Keep it honest. Ship less that works better.