Multi-Site Platform
I korthet
Spin up a full website for any federation, region, or club in minutes. Each tenant gets an isolated CmsSite, a free platform subdomain on petanque-life.com out of the box, and the option to attach one or more custom domains with auto-provisioned TLS later, all managed from a single multi-tenant control plane with strict cross-tenant isolation, per-site activation toggles, and a public site directory for discoverability.
Så fungerar det
Multi-Site Platform is the container layer of the CMS. Every CmsSite document is bound to exactly one OrgNode in a tenant — FIPJP, a continental confederation, a national federation, a district, or a club — and inherits scope rules from the existing tenant model. A site-creation wizard walks an admin through three decisions: site archetype (federation-formal, events-heavy, shop-first, community-minimal), branding (logo, primary/accent color, sender-name) and the URL strategy.
Every site is immediately reachable on a generated platform subdomain such as norrbotten-bk.petanque-life.com via wildcard DNS, so editors can start working before any external DNS is configured. When the tenant is ready to go public on its own brand, the Custom Domains module (F18.14) hooks into Cloudflare for SaaS to issue certificates and route traffic. Sites can be activated, deactivated or hidden from the public directory without losing pages or media — deactivation flips an is_published flag that the Next.js renderer respects on every ISR build.
Tenant-scoped management means a federation admin sees and can manage every club site under the federation in a single list view, while a club editor only sees their own site. Cross-tenant management is impossible — a Swedish federation admin never lists French clubs. A platform-wide site directory (opt-in per site) lets players and visitors browse all federation and club websites by country, region, or activity, surfacing the full ecosystem in one place.
The directory is fed by the same CmsSite collection, filtered by visibility and indexed for fast lookup.
Centrala funktioner
- One CmsSite per federation, region, or club with strict tenant isolation
- Wildcard platform subdomain (`<slug>.petanque-life.com`) available instantly
- Custom domain attach with Cloudflare-managed auto-SSL
- Site-creation wizard: pick template, set branding, go live
- Activate/deactivate without data loss
- Tenant-scoped admin views — federation admins manage all club sites under them
- Public site directory to discover federation and club websites
I praktiken
Anna, the new website editor at BK Norrbotten, logs into admin and clicks 'Create site'. The wizard suggests the community-minimal archetype because her club has fewer than 80 members, applies the Swedish federation's brand inheritance, and offers norrbotten-bk.petanque-life.com as a free platform URL. She accepts, uploads the club logo and picks a bottle-green accent.
Within thirty seconds the site is live with a homepage, news feed, calendar widget pre-wired to the club's events, and a contact form. Two weeks later the board buys norrlandbk.se. Anna pastes the domain into the Custom Domains tab, copies the CNAME and TXT records to her registrar, and Cloudflare issues a certificate automatically.
The platform subdomain keeps working as a fallback while the new domain warms up.
Features i detta subsystem
8| ID | Status | Funktioner |
|---|---|---|
| F18.01.01 | Levererad | One site per tenant/club/region with unique URL ✅ PL-F1801a |
| F18.01.02 | Levererad | Platform subdomain (e.g., norrbotten-bk.petanque-life.com) ✅ PL-F1801a |
| F18.01.03 | Levererad | Custom domain support (e.g., www.norrlandbk.se) with auto-SSL ✅ PL-F1801a |
| F18.01.04 | Levererad | Site creation wizard (pick template, set branding, go live) ✅ PL-F1801a |
| F18.01.05 | Levererad | Site activation/deactivation ✅ PL-F1801b |
| F18.01.06 | Levererad | Tenant-scoped site management (federation admin manages federation site + club sites) ✅ PL-F1801b |
| F18.01.07 | Levererad | Site directory (find federation/club websites) ✅ PL-F1801b |
| F18.01.08 | Levererad | Path-prefix routing — child OrgNode-CmsSites kan mountas under förälderns domän (www.svenskboule.se/<distrikt>/); 1–3 nivåer; reserverar systemslugs; canonical URL pekar på path-formen ✅ PL-T233 |
Intressenter som behöver detta subsystem
Förekommer i 17 intressentanalyser