Dyrected
Getting Started

Self-Hosted vs Cloud

The two ways to run Dyrected and when to pick each.

Self-HostedCloud
EngineRuns inside your appRuns on Dyrected's servers
DatabaseYour own (SQLite, Postgres, MySQL)Fully managed
StorageLocal disk or your S3/R2/CloudinaryFully managed
AuthYou manage JWT secret and sessionsManaged, with workspace RBAC
Multi-siteOne site per deploymentMultiple sites per workspace
PriceFreePaid plans — see Billing
Best forFull control, data residency, offlineSpeed, teams, multiple client sites

Self-Hosted

The Dyrected engine is an npm package that runs inside your Next.js or Nuxt app. There is no separate CMS process. Your config, your database, your server.

// app/dyrected/[...route]/route.ts
import { createDyrectedApp } from '@dyrected/core/server'
import config from '@/dyrected.config'

const app = createDyrectedApp(config)

export const GET    = app.fetch
export const POST   = app.fetch
export const PATCH  = app.fetch
export const DELETE = app.fetch
// nuxt.config.ts
import config from './dyrected.config'

export default defineNuxtConfig({
  modules: ['@dyrected/nuxt'],
  dyrected: {
    ...config,
    apiBase: '/dyrected',
  },
})

Self-hosting is free under the Business Source License. You can use it commercially for client projects with no restrictions.


Cloud

Your app sends requests to https://api.dyrected.cloud using a Site API Key and Site ID. The database, storage, and admin users are managed by Dyrected. You still write the same dyrected.config.ts — the difference is where it runs.

// dyrected.config.ts
import { defineConfig } from '@dyrected/core'

export default defineConfig({
  // No db adapter needed — Cloud manages the database
  serverURL: process.env.DYRECTED_CLOUD_URL,
  apiKey:    process.env.DYRECTED_API_KEY,
  siteId:    process.env.DYRECTED_SITE_ID,
  collections: [...],
})
// app/dyrected/[...route]/route.ts — same as self-hosted
import { createDyrectedApp } from '@dyrected/core/server'
import config from '@/dyrected.config'

const app = createDyrectedApp(config)

export const GET    = app.fetch
export const POST   = app.fetch
export const PATCH  = app.fetch
export const DELETE = app.fetch
// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@dyrected/nuxt'],
  dyrected: {
    apiKey:  process.env.DYRECTED_API_KEY,
    siteId:  process.env.DYRECTED_SITE_ID,
    baseUrl: 'https://api.dyrected.cloud',
  },
})

When Cloud makes sense

  • You're an agency building sites for multiple clients — each client gets their own site in one workspace, billed together, managed from one dashboard
  • You want to ship fast — no Postgres to provision, no S3 bucket to configure, no server to maintain
  • You're on Vercel or Railway and don't want to manage a separate database service
  • You need multi-site — Cloud workspaces let you spin up a new site without touching any code
  • You're a solo developer who wants a low-maintenance stack — $19/month is cheaper than provisioning and operating your own managed Postgres + storage

Deploy with Dyrected Cloud — full setup guide with pricing


Can I switch later?

Yes. Both modes use the same dyrected.config.ts. To migrate from self-hosted to Cloud: export your data, create a site in the Cloud dashboard, run dyrected push to sync your schema, and update your environment variables. No code changes needed.


Can I use both at once?

Yes — common pattern for agencies: self-hosted locally during development, Cloud in production. Or self-hosted for internal tools, Cloud for client-facing sites.

On this page