The public site — the module and its seams

The public site — the module and its seams An architecture diagram generated by Archify. site · Deps.Site: sitecontracts.Service · Deps · other modules' contracts/ · Deps site Deps.Site: sitecontracts.Service Deps an anonymous visitor · the surface itself · who it is for · visitor an anonymous visitor the surface itself visitor contracts/ · none: nothing promised to a module · modules/web contracts/ none: nothing promised to a module module.go · Module(Deps{Site, Content, Theme}) · modules/web module.go Module(Deps{Site, Content, Theme}) internal/ · home · page · empty states · header · footer · modules/web internal/ home · page · empty states · header · footer page.Serve · GET / · GET /{slug} · public · HTML · kit/ seams page.Serve GET / · GET /{slug} · public · HTML the site itself · bar · article · footer · kit/ seams the site itself bar · article · footer events · none · kit/ seams events none jobs · none · kit/ seams jobs none migrations · none: it owns no table · kit/ seams migrations none: it owns no table content · Deps.Content: contentcontracts.Service · Deps · other modules' contracts/ · Deps content Deps.Content: contentcontracts.Service Deps nothing to declare Mount Routes: page.Serve × 2 View Deps GET / at the host Deps modules/web kit/ seams Deps · other modules' contracts/ who it is for Legend Frontend Backend Database Message bus External

Promises

  • • No permissions and no events: both routes are public and read-only
  • • Home is the content named by homeSlug; a fresh installation says so and points at the admin

Needs

  • • Deps.Site and Deps.Content are the two modules' services, handed over in main; Theme is the palette
  • • The tenant's theme and brand colour pin each document; the site runs no script

Proof

  • • module_test: empty state, published home with theme and colour, page by slug, 404 pages, unknown host
  • • e2e/site.spec.ts publishes a page through the API and reads it at /