An architecture whiteboard,
on an open notation.
SCAN is a YAML/JSON metamodel for software systems — services, datastores, streams, agents, repositories, and typed connections. Sphere is the reference whiteboard that reads, writes, and validates it.

The architecture board that stays in sync with the model.
Sphere is the reference modeler for SCAN — a live canvas where every box, port, and arrow is a validated node in a YAML document you can check into git.
System & Component Architecture Notation.
An open YAML/JSON metamodel for software architecture. Semantics live in root collections, presentation under views[], validation by @scan/model and @scan/rules.
scan: "0.1"
system:
id: checkout
name: Checkout
components:
- id: checkout-api
name: Checkout API
type: service
technology: NestJS
exposes:
- id: checkout-api-out
label: REST
protocol: OpenAPI
external_systems:
- id: payments
name: Payments Provider
exposes:
- id: payments-out
label: REST
connections:
- id: c1
from: payments
to: checkout-api
type: synchronous-request
label: REST
views:
- id: board
layout:
checkout-api: { x: 320, y: 120, w: 260, h: 190 }
payments: { x: 40, y: 120, w: 220, h: 150 }Five packages. One model.
SCAN ships as small, embeddable libraries. Read a document, render it, edit it, validate it — pick the surface you need.
import { ScanViewer } from "@scan/viewer";
const viewer = new ScanViewer({ container: "#canvas" });
await viewer.importYAML(yamlString);Every control on the board, explained.
A guided walk through Sphere — canvas, elements, ports, typed connections, inspector, views, and the AI copilot — with screenshots for each control.
SCAN is free and open.
Sphere takes it further.
The SCAN notation is developed and maintained by the team behind Sphere. Use the libraries and CLI freely — or create a free Sphere account to design SCAN schemas with an AI copilot, collaborate with your team, and keep architecture in sync with your codebase.