A CMS that ships like Go software.
Define collections, access rules, hooks, and plugins in Go. Ridu turns that configuration into database migrations, a REST API, a generated TypeScript client, and an embedded Svelte admin. The application ships as one Go binary.
npm create ridu@latest my-appInteractive setup asks for the template and database. Bun, pnpm, Yarn, and a direct Go install are available too.

From content model to running application.
Define the model, work with it in the admin, use it from application code, and build the production binary.
package content
import (
"github.com/riducms/ridu"
"github.com/riducms/ridu/field"
)
var Posts = ridu.Collection{
Slug: "posts",
Fields: []field.Definition{
field.Text("title", field.Required()),
field.Select("status",
field.OneOf("draft", "published"),
),
},
}$ npm run dev
INFO Ridu is ready
Admin http://127.0.0.1:5173/admin/
API http://127.0.0.1:8080
INFO Watching Go configuration; press Ctrl+C to stopimport { createClient } from '../generated/ridu.generated';
const ridu = createClient({ baseURL: 'http://localhost:8080' });
const page = await ridu.list('posts', {
where: { status: { equals: 'published' } }
});
console.log(page.docs);$ npm run build
INFO Verified migration artifact history
Built dist/contentSee the whole path in one project.
Choose Starter and SQLite—no database service or Docker required. Create a post in the admin, then read it through the generated SDK.