ADR-001: Multi-repo over monorepo (for now)

  • Decision: Use multiple repositories for services instead of a monorepo
  • Date: TBD
  • Status: Accepted
  • Context: Services are deployed independently (Pages/Workers) with distinct runtimes
  • Consequences: Service docs and platform standards must stay aligned across repos

ADR-002: Cloudflare Access for admin protection

  • Decision: Protect admin UIs and admin APIs at the edge with Cloudflare Access
  • Date: TBD
  • Status: Accepted
  • Context: Services rely on public edge routing with admin routes that should not be public
  • Decision Details: Use Cloudflare Zero Trust Access for */admin* and */api/admin*
  • Consequences: Admin routes require Access configuration; code-level auth may still be added for defense-in-depth

ADR-003: Token-gated calendar feeds

  • Decision: Programs calendar access is token-gated with email verification
  • Date: TBD
  • Status: Accepted
  • Context: Calendar feeds are private but need to work in external calendar apps
  • Decision Details: Use magic-link verification and tokenized ICS URLs; store token hashes at rest
  • Consequences: Token lifecycle management is required (TTL, revocation, rotation)

ADR-004: Canonical docs in Obsidian; repo docs mirrored

  • Decision: Obsidian vault is canonical; repo docs mirror it
  • Date: TBD
  • Status: Accepted
  • Context: Platform governance needs a single source of truth for system docs
  • Decision Details: Maintain system docs in this vault; update repo docs as mirrors
  • Consequences: Requires periodic sync of repo docs to avoid drift

ADR-005: Document Pub Scheduler automation in IHNYC-Remote

  • Decision: Capture Pub Scheduler n8n workflows in the Obsidian vault as a first-class service doc
  • Date: 2026-01-12
  • Status: Accepted
  • Context: Pub scheduling relies on three n8n workflows that touch Notion, Formbricks, and email
  • Decision Details: Maintain a single doc covering triggers, data sources, business rules, and troubleshooting
  • Consequences: Updates required when Notion schemas, Formbricks survey ids, or n8n node logic changes

📝 Documentation Principles

  • Docs live in IHNYC-Remote and are the canonical source
  • Service docs are per-repo summaries under services
  • Platform docs explain shared patterns (Cloudflare, Notion, n8n, tokens, analytics)
  • Diagrams must follow the global Mermaid style guide used in this vault