Statement of Work (SOW)
Project Debate - Linux Distribution Builder Platform
1. Project Overview
Project Name: Debate
Project Type: Web-based Linux distribution customization and ISO generation platform
Version: 1.0
Date: January 2026
1.1 Executive Summary
Debate is a visual, web-based platform that enables users to customize Linux distributions by selecting, combining, and overriding "opinions" - preconfigured choices about packages, configurations, window managers, themes, and system behaviors. The platform generates custom ISO images based on user selections and supports community-contributed configurations ("speeches").
The initial implementation will use Omarchy (DHH's opinionated Arch Linux distribution) as the foundational opening statement, with CachyOS repositories providing optimized packages. The architecture is designed to support additional base distributions contributed by the community.
1.2 Problem Statement
Current barriers to Linux adoption include:
- Overwhelming number of distribution choices
- Difficulty customizing distributions without deep technical knowledge
- "Take it or leave it" approach to distribution opinions
- No visual, accessible way to understand what a distribution includes
- Fragmented community knowledge about configuration options
1.3 Solution
Debate provides:
- A visual 3D interface for building custom Linux configurations
- Modular overlay system where each "opinion" can be toggled or swapped
- Dependency resolution with visual conflict feedback
- Community-driven speech (preset) sharing
- Automated ISO generation with caching for popular configurations
2. Scope of Work
2.1 In Scope
Phase 1: Core Platform
Phase 3: Expansion
2.2 Out of Scope (v1.0)
- Mobile application
- Direct installation (users download ISO and install themselves)
- Paid/premium tiers
- Enterprise features
- Hardware vendor partnerships
3. Deliverables
| ID |
Deliverable |
Description |
Format |
| D1 |
Overlay System |
Core engine for managing layered configurations |
Python/Backend |
| D2 |
Dependency Resolver |
Conflict detection and resolution logic |
Python/Backend |
| D3 |
Web Frontend |
3D visual builder interface |
React + Three.js |
| D4 |
ISO Generator |
Build pipeline for creating custom ISOs |
Shell/Python |
| D5 |
Caching System |
ISO storage and cache invalidation |
Backend + Storage |
| D6 |
API |
REST/GraphQL API for all operations |
Python/FastAPI |
| D7 |
Database |
Schema and migrations |
PostgreSQL |
| D8 |
Omarchy Mapping |
Complete mapping of Omarchy opinions |
Data/YAML |
| D9 |
Documentation |
User docs, API docs, contributor guides |
Markdown |
4. Technical Architecture
4.1 Stack Overview
┌─────────────────────────────────────────────────────────────┐
│ Frontend (React) │
│ Three.js / React Three Fiber │
├─────────────────────────────────────────────────────────────┤
│ API Layer (FastAPI) │
├──────────────────┬──────────────────┬───────────────────────┤
│ Overlay Engine │ Dependency │ ISO Build Queue │
│ │ Resolver │ │
├──────────────────┴──────────────────┴───────────────────────┤
│ PostgreSQL Database │
├─────────────────────────────────────────────────────────────┤
│ ISO Build Server │
│ (Dedicated: 6 cores, 64GB RAM, NVMe) │
├─────────────────────────────────────────────────────────────┤
│ ISO Cache Storage │
└─────────────────────────────────────────────────────────────┘
4.2 Overlay Package Structure
overlay/
├── manifest.yaml # Metadata, dependencies, conflicts, provides
├── packages.yaml # Package list (distro-agnostic names)
├── configs/ # Configuration files to install
│ ├── hyprland/
│ ├── waybar/
│ └── ...
├── scripts/
│ ├── pre-install.sh
│ ├── install.sh
│ └── post-install.sh
└── README.md
4.3 Layer Hierarchy
Opening Statement (Base) : Arch | CachyOS | Fedora | Ubuntu
↓
Platform (Window Manager) : Hyprland | Sway | i3 | KDE | COSMIC
↓
Rhetoric (Theming/Ricing) : Omarchy-style | Catppuccin | Nord | Custom
↓
Talking Points (Apps) : DHH bundle | Minimal | Gaming | Productivity
↓
Closing Argument (System) : Partitioning | Security | Boot | Services
5. Timeline
Phase 1: Core Platform (Weeks 1-8)
| Week |
Milestone |
| 1-2 |
Data model design, overlay schema, database setup |
| 3-4 |
Dependency resolver, conflict detection logic |
| 5-6 |
Omarchy opinion mapping, initial overlays created |
| 7-8 |
ISO generation pipeline, basic build queue |
Phase 2: Frontend (Weeks 9-14)
| Week |
Milestone |
| 9-10 |
React app scaffolding, API integration |
| 11-12 |
3D stack visualization with Three.js |
| 13-14 |
Builder UI, layer selection, conflict display |
| Week |
Milestone |
| 15-16 |
User auth, speech save/load/publish |
| 17-18 |
Speech browser, tagging, filtering |
| 19-20 |
ISO caching, performance optimization, testing |
Phase 4: Launch (Weeks 21-24)
| Week |
Milestone |
| 21-22 |
Beta testing, community feedback |
| 23-24 |
Public launch, documentation, marketing |
6. Resources
6.1 Infrastructure
| Resource |
Specification |
Purpose |
| Build Server |
6 cores, 64GB RAM, NVMe |
ISO generation |
| Web Server |
Standard VPS |
Frontend + API hosting |
| Database |
PostgreSQL managed instance |
Data storage |
| Object Storage |
S3-compatible |
ISO cache storage |
6.2 Personnel
| Role |
Responsibility |
| Project Owner |
Vision, decisions, community management |
| AI Assistant (Claude) |
Development, code review, opinion mapping |
7. Acceptance Criteria
7.1 Core Functionality
7.2 Performance
8. Risks and Mitigations
| Risk |
Impact |
Likelihood |
Mitigation |
| Omarchy upstream changes break overlays |
High |
Medium |
Automated testing on upstream updates, version pinning |
| ISO build queue overwhelmed |
Medium |
Medium |
Aggressive caching, queue prioritization |
| 3D UI too heavy for low-end devices |
Medium |
Low |
Fallback 2D interface option |
| Community submits malicious overlays |
High |
Low |
Review process, sandboxed builds, signing |
9. Success Metrics
| Metric |
Target (6 months post-launch) |
| Registered users |
10,000 |
| ISOs generated |
50,000 |
| Community speeches published |
500 |
| Additional base distributions |
3+ |
| YouTube videos featuring Debate |
20+ |
10. Signatures
| Role |
Name |
Date |
| Project Owner |
Mikkel |
____________ |
This SOW is a living document and may be updated as the project evolves.