Composable Architecture
Use only the packages you need. Mix and match storage adapters and framework integrations.
Composable Architecture
Use only the packages you need. Mix and match storage adapters and framework integrations.
Local-First Development
Content stored as files by default. Git-friendly workflows with full version control.
TypeScript Native
Full type safety from schemas to frontend. Auto-generated types for your content.
Framework Agnostic
Works with Express, Next.js, Cloudflare Workers, Hono, and more.
// Define your schemaconst blogSchemas = [ { name: 'post', title: 'Blog Post', fields: [ { name: 'title', type: 'string', required: true }, { name: 'content', type: 'richtext' }, { name: 'publishedAt', type: 'datetime' }, ], },];
// Set up Trokky with Expressconst trokky = await TrokkyExpress.create({ schemas: blogSchemas, storage: { adapter: 'filesystem', contentDir: './content' }, security: { adminUser: { username: 'admin', password: 'demo123' } },});
trokky.mount(app);| Package | Description |
|---|---|
@trokky/core | CMS engine with schemas, validation, and storage |
@trokky/routes | Framework-agnostic HTTP handlers |
@trokky/studio | React-based admin interface |
@trokky/client | Frontend SDK with TypeScript generation |
@trokky/express | Express.js integration |
@trokky/nextjs | Next.js App Router integration |
Ready to get started? Head to the Introduction to learn more about Trokky’s architecture and capabilities.