📄 hoffdesk-web-project.md 5,158 bytes Apr 19, 2026 📋 Raw

HoffDesk Web — Project Plan

Date: 2026-04-19
Status: Approved by Director Matt on 2026-04-19
Owner: Matt (Director), Wadsworth (Coordinator)


Objective

Build and deploy a web presence at hoffdesk.com — starting with a family dashboard that surfaces calendar, weather, and household status in a fast, zero-cloud-dependency, mobile-first experience.

Architecture Decisions (Pre-established)

Decision Choice Rationale
Hosting Cloudflare Pages Git-push deploys, free tier, already on CF DNS
Frontend HTMX + Tailwind CSS Sovereign stack per Daedalus charter; no SPA frameworks
Backend API FastAPI on Beelink Existing infra, zero-trust, localhost/Tailscale
Auth Cloudflare Access (public pages) + Tailscale (admin) Zero-trust, no OAuth complexity
Dark mode "Functional Luxury" aesthetic — default, not a toggle Daedalus doctrine
Mobile-first Primary device = phone High-WAF design principle

Subdomain Architecture

Subdomain Purpose Deployment
hoffdesk.com Public landing / family dashboard Cloudflare Pages
cal.hoffdesk.com CalDAV (existing) Beelink, Tailscale-only
hook.hoffdesk.com Webhook receiver (existing) Beelink, Tailscale-only
api.hoffdesk.com REST API for dashboard data Beelink → Cloudflare Tunnel or Tailscale Funnel

Socrates Day 1 Priority: Stand up Cloudflare Tunnel + CF Access (Email OTP). Proof of life required before API spec.

Sprint 1 — Family Dashboard MVP

Goal: A live dashboard at hoffdesk.com showing today's calendar, current weather, and household status. One glance. Phone-sized. Done fast.

Socrates Deliverables (Backend)

# Deliverable Description Depends On Status
S1 API spec: GET /api/today AGGREGATE endpoint — single payload: calendar + weather + health P2 — WAIT for tunnel
S2 API spec: GET /api/calendar/upcoming Structured calendar events with time, title, location S1 approved
S3 API spec: GET /api/weather Current conditions + 24h forecast for Green Bay, WI S1 approved
S4 API spec: GET /api/health Gateway status, Ollama status, disk usage S1 approved
S5 FastAPI endpoints wired to real data Implement all Sprint 1 endpoints with live data S1–S4 specs approved
S6 API deployed on Beelink Bound to localhost, exposed via Cloudflare Tunnel + CF Access (Email OTP) S5 complete

Socrates note: All API specs go in shared/api-specs/sprint-1/ as OpenAPI YAML. Daedalus builds against these contracts.

Daedalus Deliverables (Frontend)

# Deliverable Description Depends On
D1 Design system foundation Color palette, typography scale, spacing tokens, dark mode palette in shared/design-tokens/
D2 Component library Calendar card, weather card, health status card — Tailwind + HTMX D1
D3 Dashboard layout Mobile-first single-page, sections: calendar (top), weather (middle), health (bottom) D2
D4 Static mock with API contracts Deploy to Cloudflare Pages, HTMX pulls from API endpoints S1 spec approved
D5 Connected dashboard Real data flowing, auto-refresh via HTMX polling (30s) D4 + S5 + S6

Daedalus note: Start D1 (design tokens) immediately — unblocked. Wait for S1 spec approval before D4 integration.

Wadsworth Deliverables (Coordination)

# Deliverable Description
W1 Cloudflare Pages project setup Create project, connect to Git repo, configure builds
W2 Cloudflare Tunnel for API Route api.hoffdesk.com → Beelink localhost FastAPI
W3 CI/CD pipeline Git push → Cloudflare Pages auto-deploy
W4 Sprint tracking & blocker resolution Keep the board informed, escalate blockers

Definition of Done — Sprint 1

  • [ ] hoffdesk.com loads in <2s on mobile
  • [ ] Calendar shows next 24h of events, auto-refreshes
  • [ ] Weather shows current + forecast for Green Bay
  • [ ] Health section shows gateway + Ollama + disk status
  • [ ] All behind Cloudflare, zero-trust on admin routes
  • [ ] No third-party JS, no CDN dependencies
  • [ ] Dark mode default, mobile-first layout

Out of Scope — Sprint 1

  • User authentication / login flow
  • Multi-family support
  • Push notifications
  • Calendar event creation via web UI
  • Historical data / analytics
  • Desktop-first layout refinements

Risks

Risk Mitigation
Cloudflare Tunnel latency Test early; fall back to Tailscale Funnel
CalDAV API response time Cache aggressively, 5-min TTL
HTMX polling overhead 30s interval, lightweight payloads
Both specialists blocked on each other Contract-first: specs before implementation

Approval

Director Matt: Approve / Modify / Reject → tag @hoffmann_butler_bot in The Hoffmann Board


This document is the source of truth for Sprint 1. Updates go here first, then propagate to specialist workspaces.