Getting Started
Code-first, single-schema CMS built inside an Astro app. ~2k lines of core engine.
Collections config generates everything: Drizzle tables, TypeScript types, and a runtime admin UI.
Supports Astro 6’s route caching with tag-based invalidation for static-speed content delivery.
Quick Start
Section titled “Quick Start”pnpx create-kide-appOr just manually clone the repo and run pnpm i && pnpm dev.
Commands
Section titled “Commands”| Command | What it does |
|---|---|
pnpm dev | Start dev server (auto-generates schema, pushes to DB) |
pnpm build | Production build |
pnpm check | Type-check (astro check) + lint (eslint) |
pnpm format | Format with Prettier |
pnpm cms:generate | Regenerate .generated/ from cms.config.ts |
pnpm db:generate | Generate migration SQL from schema changes |
pnpm db:migrate | Apply pending migrations |
In dev mode, schema changes are pushed to the DB automatically. Migration files are for production deployments.
Project Structure
Section titled “Project Structure”src/cms/ cms.config.ts # CMS config (database, locales, collection imports) collections/ # One file per collection access.ts # Access control rules hooks.ts # Lifecycle hooks core/ # CMS runtime (editable) .generated/ # Auto-generated (don't edit) schema.ts # Drizzle tables types.ts # TypeScript interfaces validators.ts # Zod schemas api.ts # Typed APIAstro 6, React 19, Drizzle ORM, SQLite, Zod, Tiptap, shadcn/ui, Tailwind CSS v4