Skip to main content

Multi-Site Strategy

One system, many sites​

SCS is not tied to a fixed list of sites. A site is a row in config/sites.csv; a workspace is a content program. The registry is the only source of truth.

scs sites
scs add-site client-site --domain client.example --prefix CLI --name "Client Site"
ConceptScope
site_idA target domain and its WordPress connection
prefixPID prefix, unique per site (FS, OPS, BSP, MX, ID, …)
workspaceA content program under data/<workspace>/

A workspace can contain rows for more than one site; site_id on each row keeps ownership clear.

Onboarding a new site​

  1. Register it with scs add-site and a unique 2–4 character prefix.

  2. Inspect WordPress before enabling publishing:

    scs wp inspect --workspace <ws> --site <site_id>
  3. Confirm the contract: ACF fields, content_format terms, authority topics, and the review-gate plugin. See WordPress Contract.

  4. Import keyword data from whatever SEO tool you use.

  5. Plan the cluster in clusters.csv.

  6. Run the gates exactly as on the first site.

warning

Do not assume another site shares the pilot's plugins, taxonomies, or ACF field names. Inspect first; enable the publish bridge only after the contract matches.

PID prefixes​

Prefixes are unique per site and are stored in config/sites.csv. SCS allocates <PREFIX>-<NNNN> IDs and never reuses a number. Existing content keeps its PID even if the site's name or domain changes.

Operating multiple sites​

  • Filter by site_id in keywords.csv to focus on one site.
  • Keep one workspace per content program, not necessarily one per site.
  • Use scs check (all workspaces) before a weekly review.
  • Track performance per workspace in <workspace>-performance.csv.
  • Register credentials and connection fields in config/sites.csv; never in Markdown or CSV content rows.

Deployment notes​

The docs and the SCS data are separate concerns:

  • SCS data lives in server-side-program/scs/data/.
  • These docs live in brain-donnyaw-cf-pages/seo-content-systems/.
  • WordPress connection fields live in config/sites.csv on the machine that runs the bridge.