# SummerCMS (Go) ## Framework, not the application SummerCMS is the Go framework for the Golem15 stack: compiled plugins, configuration, data primitives, HTTP routing, the admin shell, and parity tooling. The Płytarium application and its binary live in the sibling [`fonoteka.go`](../fonoteka.go) repository, so this checkout is not the application binary. ## Two-repository development layout This repository has one `go.mod`; framework libraries live under [`modules/`](modules/). During development, `fonoteka.go/go.mod` uses a `replace git.golem15.com/golem15/summercms => ../summercms.go` directive to use this checkout. The same local-replace pattern is shown in [`examples/hello/go.mod`](examples/hello/go.mod), alongside the example's compiled plugin modules. ## Recreate the Phase 10 admin login Follow the [Fonoteka database setup](../fonoteka.go/README.md#database-setup) to create a `pl-PL` Postgres database and set `SUMMER_DATABASE__DSN`; the app repository owns its configuration and credentials. From `fonoteka.go`, run: ```bash summer build ./bin/fonoteka migrate ./bin/fonoteka serve ``` The admin SPA is embedded with `embed.FS` in that Fonoteka binary. Its configured backend URI is `/plytadmin`, so open the running app at that path; do not use `summer serve` from this framework repository to open the admin. ## Honest cutover status A working local admin login is not a DNS flip of `plytarium.com`. The production flip is Phase 15, after jobs and search in Phase 11 and the remaining API routes in Phases 12–14. Until then, directing production to this binary would take the public Nuxt application and MCP service offline. The operator procedure remains in the PHP `docs/deploy/plytarium.com.md`; this is not a production deployment runbook. ## Framework modules Each framework library has its own short onboarding note: - [`backpack`](modules/backpack/README.md), [`boardwalk`](modules/boardwalk/README.md), [`bonfire`](modules/bonfire/README.md), [`bouncer`](modules/bouncer/README.md), [`cabana`](modules/cabana/README.md), [`compass`](modules/compass/README.md) - [`festival`](modules/festival/README.md), [`fetchguard`](modules/fetchguard/README.md), [`lagoon`](modules/lagoon/README.md), [`pact`](modules/pact/README.md), [`party`](modules/party/README.md), [`phrasebook`](modules/phrasebook/README.md) - [`postcard`](modules/postcard/README.md), [`surf`](modules/surf/README.md), [`tide`](modules/tide/README.md), [`towel`](modules/towel/README.md), [`wire`](modules/wire/README.md), [`wristband`](modules/wristband/README.md) ## Why Go and the v1 target SummerCMS replaces the earlier Scala attempt with a deliberately conventional Go stack; see [why Go, not Scala](.planning/notes/why-go-not-scala.md). Its v1 target is Płytarium: the existing Nuxt app and MCP server must run unchanged against the Go backend. See [the v1 target note](.planning/notes/v1-target-plytarium.md).