A small set of boring, battle-tested frontend contracts.
These documents are not “best practices”. They are explicit interfaces between:
- structure and content
- build-time and runtime
- components and orchestration
- developers and editors
If you adopt a contract, you also accept its boundaries.
- Short documents (5–10 min each)
- Each contract includes: intent, non-goals, rules, examples, failure modes
- Not a framework
- Not a design system
- Not a blog
- Not a set of “tips & tricks”
- 0001 — Layout is code, content is data
- 0002 — State ownership
- 0003 — Build-time first
- 0004 — Frameworks are optional
- 0005 — Accessibility baseline
- 0006 — Events, not callbacks
- 0007 — No implicit coupling
- 0008 — CSS does the heavy lifting
- 0009 — Runtime is a tax
Pick 1–3 contracts and apply them to a project. Don’t adopt everything at once.
If you disagree with a contract, open an issue explaining:
- your context
- what broke
- what alternative contract you propose
MIT