Light core, lazy componentsComponents are declared in config and instantiated on first access. Nothing loads until you use it.
Models over post typesDeclare a public property on your model and it becomes post meta — read and written automatically. Chainable query API included.
Real routingMap URL paths to controller actions, filtered by HTTP method, with required path parameters — Router::get('user/{id}', ...).
Meta boxes without ceremonyDeclare meta boxes on the model; rendering, nonces, validation, saving and admin notices are wired for you.
Plugin and theme, side by sideEach application runs isolated with its own config, aliases, router and components. No shared state.
Batteries includedCurrent-user component, admin options pages, logger with rotation, form helpers and asset cache busting.