Introduction
What Dyrected is, who it is for, and how the hosting options fit together.
Use this page to understand what Dyrected gives you, when it fits, and which setup path to choose first. If you are ready to install it now, jump to Quickstart.
Dyrected is a code-first CMS for websites and apps that need a safe content handoff. You define your content model in TypeScript — collections, fields, access rules, and hooks — and Dyrected generates the API, admin, and SDK automatically. Your team or client updates content. Your codebase and layout stay under your control.
Philosophy
Dyrected handles the boring parts: storage, admin UI, access control, and relationship management. You own everything interesting: validation, business rules, emails, and concurrency. Collections define your data shape. API routes define your logic. The boundary is intentional and worth respecting from day one.
The core idea is simple: build the site the way you want, then give editors a controlled admin for the parts they should be allowed to change.
Who Dyrected is for
Dyrected is strongest when:
- You build client websites and want to hand off content editing without handing over design control
- You are a freelance developer tired of small text, image, and listing update requests
- You have a product or marketing team that should own pricing pages, announcements, help content, or onboarding copy
The engine can run inside your existing Next.js or Nuxt.js app as a route handler, or you can use Dyrected Cloud for the backend while keeping the same schema in your repo.
How it fits together
There are four moving parts. Once you know what each one does, the hosting choices are easier to understand.
@dyrected/core — the engine. It handles the database, REST API, file uploads, auth, and email. Use @dyrected/next or @dyrected/nuxt to mount it inside your app.
Admin UI — auto-generated from your config. Use the hosted admin at app.dyrected.com, or mount it inside your app at /admin. Your clients or teammates use this to edit content. You never have to build a dashboard.
@dyrected/sdk — a typed TypeScript client for fetching content from your frontend, Node scripts, or any other environment.
Dyrected Cloud — managed hosting for the backend: database, storage, auth, API, and multi-site workspaces. This is the fastest way to go live. If you'd rather manage your own infrastructure, self-hosting is free.
Why Dyrected?
| Dyrected | Payload CMS | Sanity | Contentful | |
|---|---|---|---|---|
| Config | TypeScript in your repo | TypeScript in your repo | Studio UI | Web UI |
| Runs in your app | Yes — no separate server | Yes | No | No |
| Managed cloud option | Yes (Dyrected Cloud) | No | Yes | Yes |
| Self-hostable | Yes — free | Yes — free | Limited | No |
| Multi-site | Yes (Cloud workspaces) | Manual | Project-based | Organisation-based |
| License | BSL → Apache 2 | MIT | Proprietary | Proprietary |
The short version: Dyrected gives you config-as-code and an app-native runtime, with the option to stay self-hosted or move faster with a managed backend.
Choose your setup
There are three separate decisions to understand:
- Where the backend runs: Dyrected Cloud backend or self-hosted backend
- Where editors use the admin: hosted admin or embedded admin
- Who owns updates: Dyrected for hosted surfaces, or your app deployment/package updates for embedded and self-hosted surfaces
If you only need the quick rule:
- Choose Cloud when you want the shortest path and the least infrastructure work.
- Choose Self-hosted when you want Dyrected running inside your own app and infrastructure.
- Choose Hosted Admin when you want the least maintenance for editors.
- Choose Embedded Admin when you want the editing experience to live on your own domain.
Backend location
| Self-Hosted | Cloud | |
|---|---|---|
| Engine | Runs inside your app | Runs on Dyrected's servers |
| Database | Your own (SQLite, Postgres, MySQL) | Fully managed |
| Storage | Local disk or your S3/R2/Cloudinary | Fully managed |
| Auth | You manage JWT secret and sessions | Managed, with workspace RBAC |
| Multi-site | One site per deployment | Multiple sites per workspace |
| Price | Free (BSL) | Paid — see Billing |
| Best for | Full control, data residency, offline | Speed, teams, multiple client sites |
Admin location
| Hosted Admin | Embedded Admin | |
|---|---|---|
| Where editors log in | app.dyrected.com | Your app, usually at /admin |
| Branding | Dyrected-hosted | White-label inside your domain |
| Updates | Managed by Dyrected | Shipped when you update your app packages and deploy |
| Best for | Fastest setup, lowest maintenance | Client handoff, custom workflows, own-domain experience |
When to choose each backend
Cloud backend makes sense when:
- You're an agency managing multiple client sites — each gets its own site in one workspace
- You want to ship fast — no Postgres to provision, no S3 bucket to configure
- You need multi-site without deploying new infrastructure
- You're a solo developer who wants a low-maintenance stack
Self-hosted backend makes sense when:
- You want the engine, database, and file handling to live inside your own infrastructure
- You need full control over deployment, networking, or data residency
- You are comfortable owning backend upgrades and operational maintenance
Both backend modes use the same dyrected.config.ts. You can move from self-hosted to Cloud, or back again, by syncing your schema and updating env vars. Your content model does not need to be rewritten.
Not sure where to start? Answer one or two questions and we'll take you to the right guide.
Which path is right for you?
Use these shortcuts if you already know what you want to do next.
I want the fastest path to a live site → Deploy with Dyrected Cloud
I want to build a marketing site with flexible page sections → Building a Page Builder
I want to get started locally first → Quickstart
I want to add a blog to an existing Next.js app → Building a Blog
I just need to know what API endpoints exist → REST API Reference
Using Dyrected with AI coding tools
Dyrected is designed to work well with AI coding agents. Because your CMS definition — collections, fields, hooks, and access rules — lives in a TypeScript file, an agent can inspect it and make changes without reverse-engineering a separate admin system.
.dyrected/ai-rules.md is generated automatically when you run npx dyrected init. It teaches any AI agent in your workspace (Claude, Cursor, Windsurf, Copilot) how to work correctly with Dyrected — the DO NOTs, schema evolution rules, and a plain-language intent-to-pattern reference.
The Dyrected Claude Code skill loads the same knowledge on demand in any session:
npx skills add dyrected/agent-skills@dyrectedThen use /dyrected at the start of any task. The skill covers setup, content modeling, hooks, access control, relationships, uploads, workflows, and more — all from plain-language descriptions, without needing to know Dyrected's internal terminology first.