Skip to content

Architecture at a glance

┌───────────────────────────┐
│ sphere-dashboard │ ← this site
│ (landing · papers · docs ·│
│ demos · forum) │
└─────────────┬─────────────┘
│ links to
┌──────────────────────┼──────────────────────┐
▼ ▼ ▼
┌────────────────┐ ┌────────────────┐ ┌─────────────────┐
│ sphere-web │◀──▶│ sphere-graph- │◀──▶│ sphere-system │
│ (Next.js) │ │ api │ │ (chat agents) │
└────────────────┘ └───────┬────────┘ └─────────────────┘
┌──────────────────┐
│ graph storage │
│ (SQLite → ?) │
└──────────────────┘

The Graph API is the spine. Every other component reads from or writes to it through a single REST surface. Demos that need their own data add their own storage but still reference graph entities by UUID.

For v1, everything runs on one host (aetherius-2) under Docker Compose with Caddy as the reverse proxy and TLS terminator. A single domain (or single IPv4 + self-signed cert) routes paths to per-service nginx/static or per- service application containers.

See Deployment for the running config.

When a second host shows up, the Graph API moves first — once it’s a network service with auth, anything else can talk to it from anywhere. Federation (graph ↔ graph) is the next big jump, and the v1 design keeps the door open for it (UUIDs everywhere, append-only event log, no centralised secret).