Schema-driven admin
You never build an admin screen. Declare a collection in cms.config.ts — its fields, their types, which are required, which are unique — and the admin SPA renders the list view, the editor form, and the validation for it at build time.
Field types cover the things real content needs: text, rich text, slug (auto-derived from another field), number, boolean, date, select, media, JSON, and relations to other collections. The same definition drives the database schema, the REST and GraphQL APIs, and the TypeScript types — so a field you add in config is immediately queryable, editable, and typed.
Changing the schema is a migration, not a hot reload: kalayaan migrate --dry-run shows you the DDL before anything touches your data.