# SummerCMS documentation

> SummerCMS is a content management framework for Go, inspired by WinterCMS.

SummerCMS keeps what makes WinterCMS productive (plugins that extend each other, YAML-driven admin forms and lists, console scaffolding) and compiles an application into a single Go binary. The framework modules, the application's plugins, the embedded admin SPA and the console commands all ship as one executable.

Start with [Installation](/docs/setup/installation.md) to set up the toolchain and the `summer` CLI. If you know WinterCMS, read [Coming from WinterCMS](/docs/setup/coming-from-wintercms.md) for a map of its concepts to SummerCMS. Then follow [Porting a plugin](/docs/setup/porting-a-plugin.md), which moves a WinterCMS plugin to SummerCMS step by step. The API reference section has one page per framework module.

## Where to start

- [Setup](/docs/setup/introduction.md): what SummerCMS is, installation, configuration, the move from WinterCMS and a [plugin porting walkthrough](/docs/setup/porting-a-plugin.md).
- [Architecture](/docs/architecture/introduction.md): the single binary, Go modules, the application lifecycle, the request lifecycle and [performance and scaling](/docs/architecture/performance-and-scaling.md) compared with PHP-FPM.
- [Plugins](/docs/plugins/registration.md): registering a plugin, scheduling, extending other plugins and testing.
- [Backend](/docs/backend/admin-controllers.md): admin controllers, forms, lists, relations, users, settings and the admin SPA.
- [Database](/docs/database/models.md): models, migrations, queries, relations, casts, attachments and transactions.
- [Services](/docs/services/configuration.md): configuration, events, routing, authentication, mail, jobs, realtime, search and the other services, plus what SummerCMS does not provide for the frontend.
- [Console](/docs/console/introduction.md): the `summer` tool, the application binary's commands and writing your own.
