BaryoDev / BaryoDev/barakoCMS

Client sites: the same three images for every site, configured in barakoBrew

Open
#722 7 comments 0 reactions 0 assignees View on GitHub
client-sites
Dominant language
C#
Stars
6
Forks
7
Avg merge
4h 42m
Merged PRs (30d)
307

Description

Every site, barakocms.com included, runs the same published barakoCMS, barakoBrew and barakoPress images. Everything that makes a site that site is data set in barakoBrew: a blueprint, a theme, site settings, navigation, pages made of blocks, and connectors to outside data. The images are extended, never customised.

Plan page, with site maps for all three sites: https://claude.ai/code/artifact/cb6f408e-0446-4b97-8392-c885cad5da11

The earlier version of this issue, where a site owned `press.config.ts` and registered its own blocks, is superseded. Its closed work (#714, #715, #717, #719, BaryoDev/barakoBrew#88, #89, BaryoDev/barakoPress#6) still stands.

## Test sites, in order

1. **rckoronadal.org.** Approved Umbraco prototype, no content to migrate. Work on the `barako` branch of its repository, which holds only a blueprint, content and deploy settings.
2. **baryo.dev.** Adds outside data (NuGet, Medium, GitHub) and motion. Answers why it left barakoCMS on 11 September: as a tenant it adds a domain, not a server.
3. **barakocms.com.** Adds docs, changelog, roadmap and the module catalogue.

ColorMeFun is not migrating. It is the boundary check the plan must not design out (#724).

## Decision

- [ ] #795 D22: configuration, then workflows and connectors, then a plugin, then a module only for a rule inside the write. Identity at request time. One renderer, many domains. Same look, generic behaviour.

## Phase 1: model the site

- [ ] #792 tenant domains through the API, and a host lookup
- [ ] #793 identity, theme and site chrome per tenant

## Phase 2: barakoPress reads identity per request, for many domains

- [ ] BaryoDev/barakoPress#20 host to tenant, identity and theme per request, cache per tenant (covers BaryoDev/barakoPress#14)
- [ ] BaryoDev/barakoBrew#134 Site and Theme screens

## Phase 3: pages and navigation

- [ ] #718 Pages module
- [ ] BaryoDev/barakoPress#4 render pages and navigation
- [ ] BaryoDev/barakoBrew#91 pages tree

## Phase 4: collections

- [ ] BaryoDev/barakoPress#5 any collection, from settings, with field filters and colour by option

## Phase 5: block library v1 and the editor

- [ ] BaryoDev/barakoPress#21 the rckoronadal set
- [ ] #720 Forms module
- [ ] BaryoDev/barakoBrew#90 block editor

## Milestone: rckoronadal.org on the stack

- [ ] #721 site kit as data, rckoronadal first
- [ ] BaryoDev/barakoPress#27 look check: screenshot diff against the approved design, the gate before the domain switch
- [ ] #803 a choice field type, for area of focus and its colours
- [ ] BaryoDev/barakoBrew#136 choice field picker, options designer and changing options
- [ ] BaryoDev/barakoPress#28 coming soon mode per tenant, with a preview key, to replace Umbraco's holding page

## Phase 6: outside data and motion

- [ ] #794 collections filled from outside sources on a schedule
- [ ] BaryoDev/barakoPress#22 block library v2

## Milestone: baryo.dev as a tenant

## Phase 7: docs, changelog and roadmap

- [ ] BaryoDev/barakoPress#23 docs collection
- [ ] BaryoDev/barakoPress#24 block library v3

## Milestone: barakocms.com as a tenant

## Later

- [ ] BaryoDev/barakoPress#25 plugin packages through a derived image, enabled per tenant
- [ ] BaryoDev/barakoPress#26 operator blocks, so an operations screen is configuration
- [ ] BaryoDev/barakoPress#7 viewer sessions, needed by gated pages
- [ ] BaryoDev/barakoPress#9 visual editor

## Decided, 14 September 2026

1. **Theme and identity** are a singleton content type per tenant. Contrast is flagged in the barakoBrew Theme screen, not refused by the API (#793).
2. **Plugins** ship in one derived barakoPress image and each tenant enables the blocks it uses (BaryoDev/barakoPress#25).
3. **"The same look"** is a CI screenshot diff at 390px and 1280px, run before each domain switch (BaryoDev/barakoPress#27).
4. **baryo.dev** becomes a tenant, with cached pages still served when the API is briefly down (BaryoDev/barakoPress#20).

## Milestones

| Site | barakoCMS | barakoPress | barakoBrew |
|---|---|---|---|
| Foundation and rckoronadal.org | 4.2.0 | 0.4.0, 0.5.0 | 1.3.0 |
| baryo.dev | 4.3.0 | 0.6.0 | |
| barakocms.com | 4.4.0 | 0.7.0 | |
| Later | | 0.8.0 | |

Security and correctness fixes that should not wait for the sites are on barakoCMS 4.1.1.

Contributor guide

Open the contributing guide

Research direction

This is an umbrella architecture and rollout plan; it names no implementation file or test. Start with the linked site-map plan and decision checklist, then use the phase issues (#792, #793, #718 and #721) as entry points. Done is the staged tenant rollout through the listed site milestones, including the rckoronadal.org milestone.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.