Developer experience principles
The invisible architecture that makes Meridian feel fast, predictable, and respectful of your attention.
Zero-friction onboarding
A new developer clones the repo and runs pnpm dev. No env files to hunt down, no undocumented system dependencies, no tribal knowledge gated behind Slack threads. The README is the contract — if it says three commands, it takes three commands.
Fast feedback loops
Hot reload under 200ms. Type-checking in watch mode that finishes before you switch windows. Tests that run in under a second for the file you changed. When the gap between save and feedback exceeds a breath, developers context-switch — and context is the most expensive resource in software.
Predictable conventions
File-system routing means the URL bar tells you exactly where the code lives. Co-located styles and tests mean you never hunt across the tree. Naming is boring on purpose — create not instantiate, fetch not retrieve. Surprise is the enemy of velocity.
Error messages that respect you
Every error tells you what happened, why it matters, and what to do next — in that order. Stack traces point to your code, not framework internals. Validation failures return structured problems, not generic 400s. A developer staring at a red screen is already frustrated; the tooling should never add to that.
Escape hatches, not cages
Meridian provides sensible defaults but never locks you in. Every abstraction has a documented escape hatch — drop to raw fetch when the wrapper gets in the way, eject config when the generator falls short. Frameworks should accelerate the 90% case without punishing the 10% case.