v0.3 · Open Source

Your repo
is the database.

SpliceCMS is a self-hosted, Git-backed headless CMS. Every save is a commit. Works with GitHub, GitLab, and Azure DevOps. No database to manage, no vendor lock-in, no surprises — just files.

Azure Functions Vite + Vanilla JS CodeMirror 6 GitHub · GitLab · Azure DevOps Node.js 22 Mobile-friendly
index.html
Visual ✦
1<!DOCTYPE html>
2<html lang="en">
3  <body>
4    <h1 data-splice-editable="region-1">editable
5      Welcome to our site
6    </h1>
7    /* Click any highlighted element
8       to start editing */
9    <section data-splice-editable="region-2">editable
10      <p>Content goes here</p>
11    </section>

Edit. Commit. Deploy.

Three steps, zero magic. SpliceCMS sits between your editors and your Git repo — works with GitHub, GitLab, and Azure DevOps. No proprietary database, no data migration, no lock-in.

01

Sign in with your Git provider

OAuth authentication via GitHub, GitLab, or Azure DevOps — no separate accounts to manage. Permissions are inherited from your provider and the roles defined in your config.

02

Edit in the visual preview

Click any tagged region in the live preview to edit it with a rich contenteditable editor. Or switch to the Code tab for full-source CodeMirror editing. Changes are tracked locally until you commit.

03

Save → Git commit → Deploy

Hitting Save writes the file directly to your Git host via the provider API. Your existing CI/CD pipeline — GitHub Actions, GitLab CI, Azure Pipelines, Netlify, Vercel — picks it up from there. SpliceCMS doesn't touch your deploy.

Everything you need.
Nothing you don't.

Visual HTML Editor

Live preview with click-to-edit contenteditable regions. Tag any block element as editable without touching code.

CodeMirror 6 Source Editor

Full-file code editing for HTML, CSS, JavaScript, Markdown, and YAML. Syntax highlighting and smart completions included.

🖼

Media Manager

Browse folders, drag-and-drop uploads, copy URLs, create folders, and delete files — all backed by the GitHub Contents API.

Branch, PR & MR Workflow

Edit on feature branches and open pull requests (GitHub/ADO) or merge requests (GitLab) for review without leaving the CMS. Full branch switching built in.

Git-native

AI Content Rewrite

Opt-in AI rewriting via Anthropic, OpenAI, Azure OpenAI, or Azure AI Foundry. Attach context files to guide the model.

Opt-in
🔒

Role-Based Access

Per-repo editor and admin roles. allowedPaths restricts which folders each user can touch — enforced server-side, not just in the UI.

📱

Mobile-Friendly

Responsive layout with a slide-out file tree. Full editing capability on phones and tablets — even touch-device image pickers.

Zero Database

No Postgres, no MongoDB, no Redis. Your Git provider is the content store, the version history, and the access control layer.

🏗

Private Repo Support

An authenticated asset proxy rewrites image URLs so private-repo assets render correctly inside the CMS preview without leaking tokens to the browser.

🔗

GitHub, GitLab & Azure DevOps

All three providers active simultaneously in one instance. Mix GitHub, self-hosted GitLab, and Azure DevOps repos in a single config — each with its own OAuth flow.

Multi-provider

JSON Array Editor

Edit JSON and JS data files as a spreadsheet-style table. Primitive values inline; object rows open a form modal with per-field inputs. Switch to raw CodeMirror at any time.

New

Your Git host.
Your choice.

SpliceCMS talks to GitHub, GitLab, and Azure DevOps simultaneously. Mix providers in a single deployment — each repo specifies its own provider and authenticates independently.

GitHub

The original integration. OAuth App + GitHub Contents API for reads, writes, branches, and pull requests. Works with github.com and GitHub Enterprise.

GitHub OAuth App with repo scope
Contents API for file read / write
Git Data API for large uploads
Pull request creation built in
Private repo asset proxy included

GitLab

Full parity with the GitHub integration. Supports gitlab.com and any self-hosted GitLab instance. Set GITLAB_HOST for private instances.

GitLab OAuth Application (api + read_user scopes)
Self-hosted GitLab via GITLAB_HOST env var
Group, project, or instance-level OAuth apps
Merge request creation instead of pull requests
Offline fixture mode for local dev

Azure DevOps

Authenticated via Azure AD (Microsoft Entra ID) using a single delegated user_impersonation permission — no admin consent required in most tenants.

Azure AD App Registration (single or multi-tenant)
ADO REST API v7.1 for all operations
Requires owner, repo, and project fields in config
Pull request creation to ADO PRs
DEVOPS_TENANT for single-tenant orgs

Data files,
without the friction.

Open any .json or .js (or jsx, .ts, .tsx) file containing an array and SpliceCMS renders it as an editable spreadsheet — no hand-editing raw JSON required.

Inline editing — primitive values (strings, numbers, booleans) edit directly in table cells
Form modal — object rows open a labelled form with one input per field, plus an Add field option
Nested arrays — nested arrays and objects shown as clickable chips that drill down to a sub-view
JS file support — detects const/export default array declarations in .js and .ts files
Raw mode — switch to CodeMirror source view at any time without losing changes
team.json
Visual
Code
name role
Alice Chen Engineering
Carol Smith Product
Edit row
Name
Role

One JSON file
to rule them all.

Drop a splicecms.config.json in the repo root. Define your repos, access rules, branding, and AI settings. No admin UI to learn.

Per-repo allowedPaths enforced server-side on every request
Role overrides let admins have higher AI quotas than editors
Multiple AI provider profiles — switch with a single env var
Custom branding: primaryColor, logo, and favicon per deployment
splicecms.config.json JSON
{
  "id": "acme-site",
  "name": "Acme CMS",
  "branding": { "primaryColor": "#539D27" },
  "repos": [
    {
      "owner": "acme", "repo": "website",
      /* GitHub (default) */
      "allowedPaths": ["/pages"],
      "roles": { "alice": "admin" }
    },
    {
      "owner": "acme-group", "repo": "docs",
      "provider": "gitlab",  /* self-hosted OK */
      "allowedPaths": ["/"]
    },
    {
      "owner": "acme-org", "repo": "marketing",
      "provider": "devops",
      "project": "acme-project", /* ADO only */
      "allowedPaths": ["/content"]
    }
  ],
  "ai": {
    "provider": "anthropic",
    "model": "claude-sonnet-4-5",
    "features": { "contentRewrite": true },
    "limits": { "requestsPerUserPerDay": 50 }
  }
}

Plain English.
Real edits.

AI is entirely opt-in. When enabled, editors can rewrite regions, full pages, or raw source with a single instruction — and attach context files like stylesheets so the model understands your brand.

Anthropic Claude
OpenAI GPT
Azure OpenAI
Azure AI Foundry
contentRewrite
Rewrite any region or full file with a plain-English instruction. Select text to scope the rewrite.
htmlGenerate
Generate new HTML blocks from a description. Scaffold layouts in seconds.
cssThemeGenerate
Describe a visual direction and get a matching CSS theme back instantly.
altText
Auto-generate accessible alt text for images with a single click.
Per-user daily & monthly quotas · Role-based limit overrides · Context file attachment via 📎

One deployment. Three modes.

SpliceCMS scales from a personal site to a fully white-labelled client platform without changing the codebase.

Personal

Your own repos, your own deployment. Full access with no user management required.

  • No allowedUsers list needed
  • One OAuth App per provider
  • Full repo access or scoped paths

White-label

Isolated deployment on the client's own domain, with their OAuth App, Git host, and custom branding.

  • Custom primaryColor, logo, favicon
  • Client's GitHub / GitLab / ADO OAuth App
  • Fully isolated — no shared infra
Coming soon

SpliceCMS,
without the ops.

Everything you love about SpliceCMS — Git-backed, zero database, fully multi-provider — hosted and managed for you. No Azure subscription, no Functions deployment, no secrets to wrangle. Ready in minutes.

Managed hosting
Auto-updates
GitHub + GitLab + ADO
AI included
99.9% uptime SLA
Zero config ops
Join the waitlist → Learn more
~10
minutes to set up
0
servers to manage
3
Git providers

Ready to splice?

Clone the repo and point it at your GitHub, GitLab, or Azure DevOps — and you're editing in under ten minutes. Or let SpliceCloud handle the ops.

git clone https://github.com/your-org/splicecms