Non-functional requirements · Changing it safely next year
Maintainability-style app
Illustrative system design for a changing it safely next year app like Maintainability: 4 topics to read, from requirements to deep dives.
Illustrative design, not Maintainability’s actual implementation. Arrowbox is not affiliated with Maintainability’s owner. Disclaimer
Start with Testing Sign in to start readingUpdated 2 Oct 2026
Core
Spend tests where regressions are likely and expensive: many fast unit and component tests, integration tests that render real components against a fake network, a few end-to-end journeys, plus visual and accessibility checks.
Types help most where code you don't control meets code you do: API responses, storage, URL params, and shared components. Generate types from the API schema and validate untrusted data once, at the edge.
Named design decisions (colours, spacing, type, radius, motion) stored once and consumed everywhere let five teams stay visually consistent and let themes, dark mode and high-contrast modes change by swapping values, not code.
Ship code dark, turn it on for a slice of users, watch, then widen or roll back without a deploy. And plan the removal: every flag, shim and deprecated component is debt with an owner and a date.