📄 sidelineworks-scope.md 5,854 bytes Today 04:23 📋 Raw

SidelineWorks — Domain Scope & RTSport Migration Plan

2026-05-09 | Author: Wadsworth 📋
Domain: sidelineworks.com (Matt-owned)
Existing: hoffdesk.com (blog/admin)


The Vision

SidelineWorks.com becomes the public face of the return-to-play platform. Two layers:

Layer 1: Public Marketing Site (this is what we build now)

  • sidelineworks.com → public website
  • Sales / landing pages
  • Product pages (AT Dashboard, Coach Dashboard, Parent Portal)
  • Support / knowledge base
  • Blog (separate from HoffDesk — product-focused)
  • Contact / demo request
  • Pricing page (the $1,500-2,000/school model)

Layer 2: Application (RTSport migrates here later)

  • app.sidelineworks.com or sidelineworks.com/app/ → the RTSport dashboards
  • AT/Coach/Parent/AD login
  • Sideline entry, case management, recovery tracking
  • Message system between roles
  • Currently lives at hoffdesk.com/rtsport/ — needs migration plan

What We Get With Our Own Domain

Feature How
Email Cloudflare Email Routing → forward *@sidelineworks.com to us
Webhooks hooks.sidelineworks.com — same Cloudflare Tunnel pattern as current
SSL Automatic via Cloudflare
Subdomains app.sidelineworks.com, docs.sidelineworks.com, status.sidelineworks.com
SPF/DKIM For sending email as @sidelineworks.com (down the line)

Current Architecture (unchanged)

titanium-butler (Beelink, 127.0.0.1)
  ├── port 8000 → HoffDesk API (blog, family, rtsport proxy)
  │     └── Cloudflare Tunnel → hoffdesk.com
  ├── port 8001 → RTSport API (standalone FastAPI)
  └── port 8002 → Radicale (CalDAV)

SidelineWorks.com would get its own Cloudflare Tunnel (separate from hoffdesk.com), pointing to either:
- A new port on the Beelink (e.g. port 8003) running a marketing site
- OR the same port 8000 with host-based routing (Tunnel sends hostname → app routes)


What We Build (Phase 1: Marketing Site)

1. Public Pages

Page Purpose
/ Hero + value prop + 3-role cards (AT/Coach/Parent) + CTA
/product Feature breakdown: 3-tap sideline entry, recovery tracking, case management
/pricing School ($1,500-2,000/yr), District ($4-8K/yr), Enterprise (negotiated)
/demo Request form → webhooks → Telegram notify Matt
/contact Support contact form
/blog Product blog (separate from HoffDesk)

2. Tech Stack

  • Same as current: FastAPI + Jinja2 + HTMX (vanilla JS)
  • Hosted on: Beelink via new Cloudflare Tunnel
  • No auth needed — fully public site
  • Design: Dark theme from RTSport dashboards (existing palette). Clean, minimal, professional. Communicates high-impact tool for high school athletes, not a startup.

3. Domain Infrastructure

  • Cloudflare Tunnel for sidelineworks.com → local port
  • DNS: A or CNAME via Cloudflare
  • Email routing: hello@sidelineworks.com, support@sidelineworks.com → current iCloud/outlook
  • Webhooks: hooks.sidelineworks.com → same Beelink

RTSport Migration Path (Phase 2+)

When

After marketing site is live. RTSport stays at hoffdesk.com/rtsport/ for now.

Steps

  1. Build marketing site on sidelineworks.com
  2. When RTSport is beta-ready, move dashboards to app.sidelineworks.com
  3. Keep HoffDesk as internal admin/blog — never exposes RTSport data

Benefits of Separate Domain

  • No confusion between "this is a product" and "this is my personal blog"
  • Professional email addresses for sales outreach
  • Clean separation: HoffDesk = the workshop, SidelineWorks = the product

What We DON'T Do (yet)

  • ❌ No email sending infrastructure (SPF/DKIM config deferred)
  • ❌ No multi-server architecture (everything on Beelink)
  • ❌ No payment processing (pricing page is informational)
  • ❌ No user signup flow (demo request → manual outreach)
  • ❌ No migration of RTSport from hoffdesk.com (Phase 2)

Brand Architecture (2026-05-09 ✅)

Two Marks Required

1. SidelineWorks — Master Brand
- Full wordmark + icon/emblem for sidelineworks.com
- The company / platform brand
- Style: Clean, professional, high-impact. Dark theme palette from RTSport alpha.
- Sits in header of marketing site, blog, all public pages

2. RTSport — Product Wordmark
- Complimentary wordmark, not competing with SidelineWorks
- Use case: sub-brand on the app/sign-in pages, footer credit "RTSport — a product by SidelineWorks"
- Same design language, smaller scale, clearly subordinate
- Maintains product identity for the AT/Coach/Parent audience who know "RTSport"

Relationship:

SidelineWorks
   └── RTSport (product by SidelineWorks)
   └── (future products)

Demo Form → Telegram Notifications

On the /demo page, a form collects:
- School name
- Contact name
- Email
- Phone (optional)
- Role (AT / Coach / AD)
- Message

On submit: The webhook sends a Telegram message to Matt's DM with the lead details. This requires:
1. A POST endpoint on port 8003 that receives the form
2. A Telegram API call from the Beelink (using existing bot token) to notify Matt

Matt sees something like:

📋 New Demo Request
School: Green Bay South
Contact: Jake Thompson (AT)
Email: jake@south.k12.wi.us
Phone: (920) 555-0142
Message: Looking for district pricing, 3 high schools

This is implementable with 50 lines of Python and the existing Telegram bot setup.

Director Decisions (2026-05-09 ✅)

  1. Design: Dark theme from RTSport alpha, clean and minimal. Convey high-impact tool for high school athletes.
  2. Blog: Separate product blog on sidelineworks.com. HoffDesk stays personal.
  3. Email: Phase 2 — not setting up forwarding now.