Chapter 16 / 17

The 7 repos

Seven repositories hold everything built for this engagement. All release tags use calver — YYYY-MM-DD-slug — so Michel reads 2026-04-22-postfix-live, not v1.2.3.

RepositoryWhat it doesStatus
sodimo/sodimo-repo-templateTemplate every other repo forks from. Pre-baked release workflows, commit conventions, architectural descriptor.Done
sodimo/changelogThis site. Changelog feed and the manual.Done
sodimo/brandDesign tokens, logos, brand kit v2 (Cedar/Sumac palette, Fraunces typeface). Assets ready — creating the repo is a move, not a build.Next
sodimo/whatsapp-webhookCloudflare Worker that parses WhatsApp messages into order candidates for Sodiwin entry.Next week
sodimo/mailMail server on the Framework Desktop: inbound and outbound handling, spam filtering, full indefinite archive with search. Migration tooling from Strato.Blocked — Framework Desktop
sodimo/mcpThe AI tool servers (ERP queries, email archive access, CRM actions). The D1 database schema and all dashboards live here.Blocked — needs ETL + mail
sodimo/etlNightly pipeline: Sodiwin CSV files → processed → loaded into D1.Blocked — Florian’s dump not yet live

Three pre-existing repos (no action needed):

  • mecattaf/harness — Thomas’s Fedora 44 server OS base. Every Sodimo server extends this.
  • mecattaf/dotfiles — Thomas’s personal config. The skills library lives here.
  • sodimo/harness — Sodimo’s server configuration. All services (mail, AI models, ETL cron jobs, OpenWebUI, Caddy, Cockpit, Moonlight/Sunshine for remote access) deploy through this as Podman Quadlets.

Three blockers that gate everything:

  1. Framework Desktop not yet arrived — blocks the mail server, AI inference, voice transcription, and the nightly ETL cron job. Paul ordered it (ETA this week).
  2. Florian’s nightly dump not yet live — blocks all data work: ETL pipeline, D1 database, and every AI tool that needs real Sodimo data.
  3. MCP gateway depends on 1 and 2 — blocks the pre-call brief, collection letters, morning briefs, and Rani’s full daily workflow.

Search uses Pagefind — available after npm run build.