Initial commit: SummerCMS Go planning docs and research
Records the move from Scala to Go, the compiled-plugin decision, the Płytarium port as the v1 target, and the Go ecosystem research that backs the choice. No code yet.
This commit is contained in:
25
.planning/seeds/keios-port-themes-payments.md
Normal file
25
.planning/seeds/keios-port-themes-payments.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
title: keios.eu port — server-rendered themes and payments
|
||||
trigger_condition: Płytarium v1 is running in production on SummerCMS Go (vue-fonoteka-app unchanged).
|
||||
planted_date: 2026-09-16
|
||||
---
|
||||
|
||||
# keios.eu port: themes and payments
|
||||
|
||||
Second port target after Płytarium. keios.eu is the smallest Golem15 project that has both a Twig theme and a payment flow.
|
||||
|
||||
| Aspect | keios.eu |
|
||||
|---|---|
|
||||
| Golem15 plugins | apparatus, dualformfield, faq, golem, journal, knobwidget, paymentgateway, pgstripe, quote, sitemap, translate, user, websockets |
|
||||
| Theme | `wn-keioseu-theme`, 14 template files |
|
||||
| Plugin PHP lines | ~74k |
|
||||
|
||||
## What it adds to SummerCMS
|
||||
|
||||
- Theme engine with Twig-like syntax (`pongo2` per research, used only for themes) and components dropped into templates.
|
||||
- `paymentgateway` and `pgstripe` port. Stripe Go SDK is official.
|
||||
- `journal`, `faq`, `quote` as classic content plugins with admin forms.
|
||||
|
||||
## Related
|
||||
|
||||
- `../notes/v1-target-plytarium.md`
|
||||
23
.planning/seeds/wasm-extension-api.md
Normal file
23
.planning/seeds/wasm-extension-api.md
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
title: WASM extension API for untrusted third-party extensions
|
||||
trigger_condition: Core plugin API (models, form fields, components, events) has been stable for one full milestone and at least two compiled plugins extend each other through it.
|
||||
planted_date: 2026-09-16
|
||||
---
|
||||
|
||||
# WASM extension API
|
||||
|
||||
Decided during the opening exploration: primary plugins compile in (Caddy/xcaddy model), and a second, narrow extension surface runs sandboxed at runtime for third parties who cannot or should not rebuild the binary.
|
||||
|
||||
## Shape
|
||||
|
||||
- Runtime: `extism` on `wazero` (pure Go, no cgo).
|
||||
- Surface: deliberately narrow. Hooks on events, custom form field renderers, HTTP handlers under a namespaced prefix, read-only model queries through a host function. No direct DB access, no model extension.
|
||||
- Packaging: one `.wasm` per extension plus a manifest. Installable from the admin without rebuild.
|
||||
|
||||
## Why not now
|
||||
|
||||
Both RPC and WASM plugins fail the same way for a CMS core: the plugin surface (register models, extend other plugins' models, add form widgets, add components) is too wide to marshal across a boundary. Only once the compiled API settles do we know which narrow slice is worth exposing.
|
||||
|
||||
## Related
|
||||
|
||||
- `../notes/why-go-not-scala.md` (plugin decision)
|
||||
Reference in New Issue
Block a user