Philosophy
Convention over configuration, but still flexible. A citizen app is a directory of controllers, models, and views that follow a naming convention; the framework infers the routes. There is no build step, no router to register, and no assembly of a dependency graph before the first page renders.
The framework has few direct dependencies, which is the point. Routing, static serving, session management, caching, compression, form parsing, and logging are all part of the framework rather than a package each.
Code reuse happens through includes and chaining. An include is a complete MVC pattern with its own controller, model, and views, delivered to the caller as fully rendered output, so logic stays in the controller rather than the template.