GoSX CMS
GoSX CMS is the opinionated content layer for GoSX applications.
Agent Skill
Agents helping someone use GoSX CMS should read the GoSX ecosystem skill: using-gosx-ecosystem.
It is meant to feel like the batteries-included side of Django: site settings,
pages, posts, media, SEO, and opinionated block catalogs built on top of
gosx-admin.
Core GoSX stays small; this module carries reusable CMS patterns for apps that
want them. It can grow independently as the examples harden into packages.
Current package surface:
blocks: CMS content block catalogs that can be rendered by admin block
editors or public GoSX surfaces.
content: compatibility parsing and view-model helpers for structured body
documents and the lightweight legacy block syntax.
lifecycle: revision, draft, publish, preview, and rollback primitives for
CMS stores.
media: reusable asset, variant, focal point, usage, picker, and media-line
primitives.
render: generic content block rendering with hooks for app-owned product,
flow, and custom block output.
store: generic CMS store contracts and helpers for pages, posts, site
settings, draft/publish state, and revisions.
store/memory: turnkey in-memory implementation of the generic CMS store
contracts for demos, tests, previews, and early site builds.
flows: reusable server-action-backed flow definitions and Studio panels
for contact, scheduling, enrollment, newsletter, checkout handoff, and
app-owned handlers. The package also includes persisted authoring primitives
for flow documents, drafts, publications, runtime instances, and lifecycle
revision snapshots plus a memory store for demos and early Studio sites.
studio: reusable three-pane authoring shell model and server-rendered
structure for canvas, preview, panels, and actions.
go get github.com/odvcencio/gosx-cms
Flow Documents
flows.Document is the persisted author-authored counterpart to
flows.Definition. It keeps flow metadata, action handler references, and each
step's blockstudio.Document together so Studio can draft and publish generic
flows such as contact, purchase request, checkout handoff, newsletter,
appointment, schedule tour, and enrollment.
Use flows.StandardDocuments to seed those generic flow shapes with app-owned
handler refs, flows.NormalizeDocument to clean authored step block documents,
flows.InstanceFromDocument to build a runtime definition, and
flows.PublishDraft or flows.NewDocumentRevision to create lifecycle
snapshots. The package exposes store interfaces only; applications decide where
documents, drafts, publications, and revisions live.