Setup

Introduction

What SummerCMS is, who it is for, how its headless model works and how this documentation is organised.

On this page

SummerCMS is a content management framework for Go, inspired by WinterCMS. It keeps what makes WinterCMS productive (plugins that extend each other, backend lists and forms described in YAML, models, migrations and console scaffolding) and compiles an application into a single binary.

Who it is for#

SummerCMS is for developers who build content-driven applications and APIs the WinterCMS way and want a compiled, typed backend. If you already know WinterCMS, most concepts carry over: a plugin still has an ID, requires other plugins, registers and boots, ships migrations and admin YAML, and adds console commands. Start with Coming from WinterCMS for a concept-by-concept map.

The headless model#

SummerCMS is headless. An application serves:

  • a JSON API, declared route by route by its plugins;
  • an admin area, a compiled single-page application embedded in the binary, driven by each plugin's fields.yaml and columns.yaml;
  • console commands for migrations, workers, the scheduler and your own tasks.

It does not render public pages. There are no themes, CMS pages, layouts, components or AJAX framework. Build the public site as a separate frontend application that calls the JSON API and, for live updates, subscribes to realtime channels.

One binary#

Plugins are Go packages compiled into the application at build time. The summer tool reads the application's summer.yaml manifest, generates the plugin imports and builds one executable. Nothing is loaded or installed at runtime, so what you tested is exactly what you deploy.

The data layer supports PostgreSQL only, and SummerCMS targets Go 1.27.

How these docs are organised#

  • Setup covers installation, configuration and the move from WinterCMS.
  • Architecture explains the single binary, Go modules, the application lifecycle and how a request reaches your code.
  • Plugins covers registering a plugin, scheduling, extending other plugins and testing.
  • Console lists the summer tool's commands and the commands of every application binary, and shows how to write your own.
  • API reference has one page per framework module.

Continue with Installation.