Files
moonweb-site/PLAN.md
T
2026-08-13 21:58:53 +02:00

5.1 KiB
Executable File

moonweb.org — Implementation Plan

Companion to SPEC.md. Defines order of work. All five sites (hub, infra, smarthome, code, retro) launch simultaneously — no staged rollout by domain. cv (stefankoelle.de) stays external (Cloudflare Free-Tier limits to 5 Pages projects per repository).

Phase 0 — Repo & tooling setup

  1. Create the moonweb-site monorepo (private until first launch, then can stay private since Pages deploys the built output, not the source).
  2. Initialize Eleventy project structure per SPEC.md §10.
  3. Set up shared/layout-base.njk (header + card-grid) and one theme-*.css per accent color (hub, infra, smarthome, code, retro).
  4. Verify local dev server works per site (npm run dev:<site>) before any content work starts.

Phase 1 — Content migration & authoring (per domain)

Work order within this phase is flexible since all domains launch together; suggested sequence based on how self-contained each domain's content is:

  1. code — simplest case, no detail pages, no sensitive-data filtering needed.
    • Add .moonweb.yml to each GitHub repo (see SPEC.md §8).
    • Build the aggregator script, run it once, generate code/_data/repos.json.
    • Build the overview page grouped by subcategory (Automation & Sync, Dev-Tools, Web Apps, Firmware/Hardware, Misc).
  2. smarthome — overview first, detail pages only where content already exists.
    • Draft the overview: how the smart home is structured (mirrors what's on home.moonweb.org: buttons/control, sensors, calendar, weather, media).
    • For each existing topic with enough material (HomematicIP/MQTT, Tasmota, LED-Matrix reference only, no migration, M5Stack/WT32SC01 dashboards, WetterAPI, AirPlay, OctoPi, TubeArchivist), decide case by case: enough content → detail page; too thin → mention in overview only, no placeholder.
    • Translate source material to English during authoring (one-time AI pass per document, per SPEC.md §7).
  3. infra — overview only, redaction pass required.
    • Draft a shallow, structured overview: Proxmox/pve2, Synology, VLANs, Fritz!Box mesh, SSO, Docker hosting model, plus the "how I work" section (OpenClaw/OpenCode setup, dev workflow).
    • Apply the redaction rule from SPEC.md §6 while translating — strip IPs, keys, credentials, internal hostnames from every source document before it becomes public content.
    • Skip detail pages unless a topic can be described without any sensitive detail.
  4. retro — minimal effort, rudimentary only.
    • One overview page listing what hardware exists.
    • Add "work in progress" notices for anything that isn't ready — better an honest short page than none.
  5. hub — build last within this phase since it links to all the others.
    • One-line description + link per destination (infra, smarthome, code, retro, and external links to stefankoelle.de, www.moonweb.org, 28k8.moonweb.org, home.moonweb.org).

Phase 2 — CI/CD

  1. Write .github/workflows/build-deploy.yml: builds all five sites in one job (or matrix), then deploys each output folder to its corresponding Cloudflare Pages project via wrangler pages deploy.
  2. Create five Cloudflare Pages projects (hub, infra, smarthome, code, retro), each bound to its target custom domain (DNS already on Cloudflare, no extra setup needed). Note: Cloudflare Free-Tier limits to 5 Pages projects per repository — cv (stefankoelle.de) stays external.
  3. Do one full dry run per site locally before the first real deploy.

Phase 3 — Launch

  1. Deploy all five sites simultaneously.
  2. Point the respective custom domains at their Pages projects.
  3. Apex domain moonweb.org keeps redirecting to www.moonweb.org for now (no change in this launch).
  4. Smoke-test cross-linking: hub → each site, site-switcher on infra/smarthome/code/retro, smarthome → external ledmatrix link, code cards → GitHub links.

Phase 4 — Explicitly deferred (not part of this build)

  • Migrating /ledmatrix/ and any other stefankoelle.de sub-pages into smarthome.
  • Deciding on 28k8.moonweb.org's future (stay separate vs. eventual monorepo inclusion).
  • Building any Perplexity-backchannel mechanism for reusing published site content in this project.
  • Redirecting the apex domain from www.moonweb.org to hub.moonweb.org.
  • Any analytics, "last updated" timestamps, or scheduled/automated content generation beyond the one-time GitHub aggregator run.
  • Porting stefankoelle.de into the monorepo — stays external (Cloudflare Free-Tier limits to 5 Pages projects).

Definition of done for this build

  • All five sites live on Cloudflare Pages under their intended domains.
  • code.moonweb.org reflects the current GitHub repos via the .moonweb.yml aggregator, grouped by subcategory.
  • smarthome.moonweb.org gives an accurate picture of what's running on home.moonweb.org today, with detail pages only where content already existed.
  • infra.moonweb.org describes the stack shallowly with zero sensitive data leaked.
  • retro.moonweb.org exists with an honest, minimal overview (WIP notices allowed).
  • hub.moonweb.org correctly links everything, including the untouched external sites (stefankoelle.de, www.moonweb.org, 28k8.moonweb.org).