Jakub Zych f4e97cccad feat(10-04): search, link and unlink related records through the relation manager
- relation-manager registered in the field registry; renders only on an
  existing record, never on create, and is never part of the save body
- RelationManager: relation schema label and comment, debounced search,
  selectable linked list (DataTable relation variant), toolbar buttons in
  declared order, confirmed unlink with plural messages and toasts
- RelationPickerModal: Reka Dialog (aria-modal, focus trap, Esc) over the
  candidates endpoint five per page, selection kept across pages, Dodaj (N)
  POSTs link, focus returns to the opener
- admin OpenAPI documents search, sort, dir, page and per_page on the linked
  and candidate relation routes so the SPA sends them typed
- neutral acme.demo.widgets members fixtures and relation smoke tests
2026-09-27 17:18:14 +02:00
2026-09-16 09:36:57 +02:00

SummerCMS (Go)

A Go rewrite of the WinterCMS/OctoberCMS content management framework, built for the Golem15 stack.

SummerCMS keeps what makes WinterCMS productive — plugins that extend each other, YAML-driven admin forms, models/controllers/components, scaffolding commands — and drops the parts that do not survive a compiled language.

Status

Pre-alpha. Planning and research. Nothing runs yet.

Why Go

The first SummerCMS attempt was Scala 3. Three infrastructure modules were built (config, i18n, console) before the effort stalled on ecosystem depth: proven, reusable libraries for things like an OAuth2/OIDC server did not exist, and building them from scratch was out of budget. Go's ecosystem covers every concern in the Illuminate module map with maintained, widely used libraries. See .planning/notes/why-go-not-scala.md and .planning/research/go-ecosystem.md.

v1 target

Port Płytarium (the fonoteka project): a headless WinterCMS backend with a Nuxt 4 frontend, 160 API routes, its own OAuth2 provider, Discogs and AI integrations, queued jobs, realtime notifications, and organization-scoped collections.

Definition of done for v1: vue-fonoteka-app runs unchanged against the Go backend.

See .planning/notes/v1-target-plytarium.md.

Architecture decisions so far

  • Compiled plugins, Caddy/xcaddy style: a plugins/ workspace of Go modules, a generated import list, scaffold and rebuild commands, watch-rebuild in dev.
  • A sandboxed WASM extension API for untrusted third-party extensions comes later, behind a stable core plugin API.
  • Headless first. Admin is a schema-driven SPA. Server-rendered themes come with the second port target (keios.eu).

Layout

.planning/   GSD planning artifacts (notes, research, seeds, roadmap)

Everything else will be created by the GSD roadmap phases.

Description
Content management framework for Go,
https://summercms.io
Readme 9.6 MiB
Languages
Go 73.5%
TypeScript 11.3%
Vue 5.7%
Shell 4.3%
JavaScript 2.6%
Other 2.6%