| 0001 |
Record decisions as ADRs |
| 0002 |
No Kubernetes; our own small scheduler |
| 0003 |
One Go binary per service, one stack |
| 0004 |
PostgreSQL for platform data |
| 0005 |
RBAC on a hierarchy, not ABAC |
| 0006 |
id is the OIDC provider; no shared cookie |
| 0007 |
A shadcn registry for shared panel code |
| 0008 |
Node agents connect out to the control plane |
| 0009 |
Mail runs on its own IP, written in Go |
| 0010 |
xvii-node also manages the platform services |
| 0011 |
yaebal for bot templates, Go for services |
| 0012 |
ai builds on CLIProxyAPI |
| 0013 |
Limits and plans live in id; services enforce and report |
| 0014 |
Backups run restic through the node agent |
| 0015 |
Workloads run on Docker through the agent; nodes serve traffic as edges or through a relay |
| 0016 |
Mail runs on the control plane; an edge server owns its address, relays its ports and carries its outgoing mail |
| 0017 |
docs keeps spaces in PostgreSQL and collaborates through Yjs in Go |