Documentation

Practical product docs for setting up, mapping, editing, and operating BaseBuddy.

Docs/Self-hosted Supabase CMS

Self-hosted Supabase CMS

Learn how BaseBuddy works as a self-hosted Supabase CMS with app-data setup, saved mappings, and safe editor workflows.

A Supabase CMS you run yourself

BaseBuddy is built for teams that want a CMS-style editor without handing their content database to another service.

You host the BaseBuddy app, connect it to your own Supabase or Postgres content database, and let BaseBuddy save setup in its own app-data backend. Editors sign in with local BaseBuddy users and work inside projects that map your existing tables.

What self-hosted means in BaseBuddy

Self-hosted does not mean every project stores its own database password. Database and storage credentials stay in environment variables. BaseBuddy stores project setup, local users, members, permissions, invites, and mappings in basebuddy-data/ by default, or in BaseBuddy-owned Supabase/Postgres app-data tables when selected.

BaseBuddy app dataBaseBuddy appProjects, users,permissions, mappingsSaved project mappingExisting Supabasecontent tables

That split keeps setup predictable. App data controls BaseBuddy users, projects, and mappings. Each project controls which content tables and fields are editable.

Configuration covers the env contract, and Security explains why secrets stay out of project rows.

Why teams choose this model

Self-hosting is useful when your content already lives in Supabase and you want control over deployment, data access, updates, and auditability.

NeedHow BaseBuddy handles it
Keep content in SupabaseBaseBuddy edits mapped tables directly
Avoid per-project secretsInstall credentials stay in environment variables
Keep schemas stableMapping reads your schema instead of reshaping it
Give editors a focused UIProjects expose only the mapped editor surface
Control deploymentRun on your VPS, Dokploy, Docker host, or another Node-compatible setup

What BaseBuddy leaves alone

BaseBuddy creates its own config state, but your content schema stays yours. It does not rename tables, rebuild columns, move rows into a CMS-owned content model, or publish content just because a row was opened.

Normal saves write changed mapped fields only. Publishing, unpublishing, and archiving are explicit actions with their own permission checks.

Start here

Install BaseBuddy from the public repo, complete setup from the UI or CLI, and pass setup checks before mapping production content.

Use Installation, Configuration, and First-run setup for the full path. When your install is ready, use Projects and mappings to connect your first content table.

For production, finish with Deployment, Production readiness, and How to safely edit your first post.