Skip to content

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.

Terminal window
pnpx create-kide-app

Or just manually clone the repo and run pnpm i && pnpm dev.

CommandWhat it does
pnpm devStart dev server (auto-generates schema, pushes to DB)
pnpm buildProduction build
pnpm checkType-check (astro check) + lint (eslint)
pnpm formatFormat with Prettier
pnpm cms:generateRegenerate .generated/ from cms.config.ts
pnpm db:generateGenerate migration SQL from schema changes
pnpm db:migrateApply pending migrations

In dev mode, schema changes are pushed to the DB automatically. Migration files are for production deployments.

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 API

Astro 6, React 19, Drizzle ORM, SQLite, Zod, Tiptap, shadcn/ui, Tailwind CSS v4