[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"journal-post-summercms-0-1-1":3},{"author":4,"categories":8,"content":9,"content_html":10,"created_at":11,"excerpt":12,"featured_image_url":9,"featured_images":13,"id":6,"is_pinned":14,"metadata":9,"next_post":9,"previous_post":15,"published":19,"published_at":20,"reading_time":16,"related_posts":21,"slug":22,"sources":9,"tags":23,"title":24,"translations":9,"updated_at":11},{"first_name":5,"id":6,"last_name":5,"login":7},"",1,"jakubzych@gmail.com",[],null,"\u003Ch2>Highlights\u003C\u002Fh2>\n\u003Cp>This is the first tagged release of SummerCMS. It lays down the foundation of the framework: compiled plugins with a WinterCMS-shaped structure, a schema-driven admin backend with an embedded Vue SPA, the \u003Ccode>summer\u003C\u002Fcode> CLI and a set of service modules, all built into a single Go binary.\u003C\u002Fp>\n\u003Ch2>Added\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Plugins and app structure\u003C\u002Fstrong>: plugins implement \u003Ccode>pact\u003C\u002Fcode> capability interfaces, \u003Ccode>party\u003C\u002Fcode> registers and boots them in dependency order, \u003Ccode>backpack\u003C\u002Fcode> holds config, services and events, and \u003Ccode>summer.yaml\u003C\u002Fcode> generates the app's \u003Ccode>main.go\u003C\u002Fcode>. \u003Ccode>summer make:plugin\u003C\u002Fcode>, \u003Ccode>plugin:add\u003C\u002Fcode> and generators for models, migrations, commands, jobs and admin controllers scaffold Winter-shaped code.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configuration and data\u003C\u002Fstrong>: layered YAML config with \u003Ccode>SUMMER_\u003C\u002Fcode> environment overrides (\u003Ccode>compass\u003C\u002Fcode>); a shared Postgres pool, per-plugin migrations and rollback, model helpers, Laravel-style validation rules, encrypted and JSON casts, pagination and file attachments (\u003Ccode>lagoon\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>HTTP\u003C\u002Fstrong>: routing with route groups, typed path params, constraints, rate limiting, body limits, path-scoped CORS and \u003Ccode>route:list\u003C\u002Fcode> (\u003Ccode>surf\u003C\u002Fcode>); JSON helpers that keep responses compatible with a Laravel backend (\u003Ccode>wire\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Authentication\u003C\u002Fstrong>: JWT minting, refresh and blacklisting with separate admin and user guards (\u003Ccode>bouncer\u003C\u002Fcode>), plus an OAuth authorization server for MCP clients (\u003Ccode>wristband\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin backend\u003C\u002Fstrong>: \u003Ccode>cabana\u003C\u002Fcode> compiles Winter-style YAML list, form, filter and relation definitions and serves them as a JSON API to the embedded admin SPA at \u003Ccode>backend.uri\u003C\u002Fcode>. Lists search, sort, filter, page and bulk-delete; forms cover tabs, toggles, relation fields, settings pages, a relation manager, toolbar and widget actions, a datepicker, file uploads, and hasMany child records edited in modals with deferred binding until the parent is saved.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Services\u003C\u002Fstrong>: background jobs and a scheduler on River (\u003Ccode>conga\u003C\u002Fcode>, \u003Ccode>queue:work\u003C\u002Fcode>, \u003Ccode>schedule:run\u003C\u002Fcode>), realtime broadcasts via Centrifugo (\u003Ccode>lighthouse\u003C\u002Fcode>), Web Push (\u003Ccode>flare\u003C\u002Fcode>), search index sync with Typesense (\u003Ccode>beachcomber\u003C\u002Fcode>), transactional mail (\u003Ccode>postcard\u003C\u002Fcode>), translations with pluralization (\u003Ccode>phrasebook\u003C\u002Fcode>), a typed event bus (\u003Ccode>festival\u003C\u002Fcode>) and an SSRF-guarded HTTP client (\u003Ccode>fetchguard\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CLI and tooling\u003C\u002Fstrong>: \u003Ccode>bonfire\u003C\u002Fcode> console commands, \u003Ccode>summer dev\u003C\u002Fcode> watch-and-rebuild, admin \u003Ccode>admin:create\u003C\u002Fcode> and password-reset commands, and \u003Ccode>tide\u003C\u002Fcode> for recording and replaying HTTP traffic against a reference backend.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Documentation\u003C\u002Fstrong>: \u003Ccode>summer docs:build\u003C\u002Fcode> and \u003Ccode>docs:serve\u003C\u002Fcode> render the docs site, including Setup, Architecture, Plugins, Database, Services, Backend and Console sections, a Coming from WinterCMS concept map and an \u003Ccode>acme.blog\u003C\u002Fcode> walkthrough plugin.\u003C\u002Fli>\n\u003C\u002Ful>\n","2026-10-17T21:26:24+00:00","The first tagged SummerCMS release: plugins, a YAML-driven admin, console commands and services compiled into one Go binary.",[],false,{"id":16,"slug":17,"title":18},2,"summercms-0-1-2","SummerCMS 0.1.2",true,"2026-10-02T21:27:20+00:00",[],"summercms-0-1-1",[],"SummerCMS 0.1.1"]