Spillway CMSStructured content like Drupal. Page building like Puck. Setup like Ghost. AI that drafts, people who approve.
Menu

Roadmap

Spillway is built in phases. Each phase ships as a usable release; nothing in a later phase is required to run the earlier ones. Dates are not promised. Items move between phases as we learn. Phases 1 to 3b and the Phase 4 features are built; what is still ahead is listed under Phase 4 and in open-decisions.md. The notes per version are in CHANGELOG.md.

Phase 1: Foundation (v0.1, built)

The goal is a CMS one person can install in five minutes and use to publish real pages.

  • Content types with typed fields, stored in SQLite (typed columns plus JSON data)
  • Entities with revisions, statuses (draft, review, published, archived) and restore
  • Users, roles and permissions; cookie sessions; CSRF protection
  • Visual page builder with Puck and the core block library (@spillway-cms/blocks)
  • Server rendering of published pages with cache tags and X-Spillway-Cache headers
  • Media upload and a media library
  • Setup wizard, site settings and theme tokens
  • Admin SPA served by the same process as the API and the public site
  • Docker image, docker compose file, spillway export

Phase 2: Marketer-ready (built)

What a marketing team needs before it will move a real site onto Spillway. Everything in this list shipped; the admin walkthrough is getting-started.md.

  • Collections and site search (lists of posts, filters, a search endpoint)
  • SEO fields on every type with a path, sitemaps, redirects with a management screen
  • Forms block with submissions, conditional fields, steps, file uploads and CAPTCHA, plus connectors (HubSpot, webhook, email)
  • AI layer: a brand profile, page-from-brief, field suggestions, always as drafts for a human to approve
  • Comments on entities and a review queue for editors
  • Pre-publish checks (broken links, missing alt text, SEO length) and accessibility checks
  • Page templates and design-token import (from a Figma export or a JSON file)
  • Single sign-on: OIDC and SAML; user provisioning with SCIM 2.0 at /scim/v2 (see sso.md)
  • Audit log of who changed what and when

Phase 3: Enterprise and platform (built)

What makes Spillway a platform rather than a single site. Everything in this list shipped except the public beta, which waits for the first release tag.

  • Multisite: several sites in one install, shared users and media
  • Localization: translations per entity, locale-aware paths and fallbacks
  • Workstreams: group changes across many entities and publish them together
  • Module system: extensions in a Wasm sandbox with a registry, so modules cannot take down or read beyond the host
  • Personalization and A/B testing on blocks
  • Pluggable providers: Postgres for the database, Redis for the cache, Meilisearch for search
  • Fleet provisioning API: create and configure sites programmatically
  • MCP server so AI agents can read and draft content through the same permissions as a user
  • Public beta (open: the first tag is a project decision, see open-decisions.md)

Phase 3b: Project website and registry (built)

spillwaycms.com built on Spillway and hosted through the fleet: marketing site, versioned docs with task-based how-to guides, a registry of modules, themes and kits with publisher accounts, automated checks, human review for trusted modules and a signed index, plus docs for AI agents (AGENTS.md, llms.txt, agent guides, agent-readable package manifests). Full spec and task list in website.md. Built: the registry server with a signed index and review flow, four-eyes review, GitHub sign-in, spillway publish, the docs and marketing kits, reference generation and the agent guides. The marketing kit and the site's deployment files have since moved to their own repository, kwall-llc/spillwaycms.com. Still open there: per-theme preview sites, organizations as a first-class object, the showcase and the feedback widget.

Phase 4: Adoption (features built, 1.0 ahead)

Lowering the cost of moving to Spillway and of using it with the tools people already have.

  • The domain importer (below), with Drupal and WordPress adapters: built. See importer.md.
  • Connectors for translation management systems (TMS): built. XLIFF 2.0 export and import with inline markup, the manual exchange, Crowdin, Phrase TMS and Smartling, translation jobs with polling, webhooks and translation.ready notifications. See localization.md.
  • Connectors for digital asset management (DAM): built. Cloudinary, Bynder and Brandfolder, with search and import in the media picker, delivery from the DAM with focal crops, provider webhooks and copy-to-Spillway. See getting-started.md.
  • Front-end adapters for Astro and Next.js: built. @spillway-cms/client, @spillway-cms/astro and @spillway-cms/next over the public render API (GET /api/public/render/<path> and friends), with workstream and draft previews, entity.published, entity.unpublished and entity.deleted webhooks for revalidation, and example sites under examples/. See adapters.md.
  • 1.0 long-term support release with a published upgrade and support policy. Done: the policy (releases.md: release process, semver and what counts as breaking, 18-month LTS, upgrade path checked in CI, security advisories, deprecations), the release workflow, pnpm release, CHANGELOG.md, downgrade protection and spillway backup. Open: cutting the first tag, v0.1.0, as ghcr.io/kwall-llc/spillway-cms and @spillway-cms on npm (releases.md), a run of each adapter and connector against the real services (open-decisions.md, not verified), and the 1.0 tag itself.
  • The CDN purge hook driven by the page cache's tags, with Cloudflare, Fastly, Bunny and a generic webhook, and the Cache-Tag-aware purge of the registry's pages and JSON: built. See caching.md.

Done since: module blocks as draggable components in the page builder, and shared or per-role saved views (views.share).

The domain importer

Point Spillway at a domain and it migrates the site without a database connection or an export file:

  1. Crawl the sitemap and internal links, respecting robots.txt, rate-limited, with a page cap and a preview.
  2. Extract the main content, title, meta and open-graph tags, headings, images, videos, forms and menus from every page.
  3. Cluster pages into content types by DOM skeleton and URL pattern; the AI names each type, proposes fields and explains why; the owner approves.
  4. Fill fields per page and convert bodies into Spillway blocks (never free-form HTML); repeated sections become shared blocks.
  5. Extract colors, fonts, spacing and the logo from the site's CSS into a token set and generate a starter theme.
  6. Keep every URL or add a 301, download and re-link media, rebuild menus.
  7. Land everything as drafts with an original-vs-new comparison per page and a quality report; publish in bulk or page by page.

Drupal (JSON:API) and WordPress (REST) adapters enrich the import when available; the crawl path works for any site.

Spillway 0.1.0 · Edit this page on GitHub

Was this page helpful?