Skip to content

Architecture Decision Records

ADRs capture why we chose one option over others for a decision we expect to live with for years. Keep them short. Date them. When superseding, link back and mark the old one deprecated.

#TitleStatusDate
0001Stack choice: NestJS + Next.js + Postgres + PrismaAccepted2026-04-17
0002OSS/Community + commercial Enterprise splitAccepted2026-04-17
0003Multi-tenancy model: row-level with tenant-scoped queriesAccepted2026-04-17
0004Product name: PanoramaProposed2026-04-17
0005Licensing: AGPL-3.0-or-later for CommunityAccepted2026-04-17
0006Plugin / extension SDK boundaryDraft2026-04-17
0007Tenant Owner role (designated admin)Proposed2026-04-18
0008Invitation flow (email-token, TTL, one-time-use, audit)Proposed2026-04-18

Template

# ADR-NNNN: <short title>

- Status: Proposed | Accepted | Deprecated | Superseded by ADR-XXXX
- Date: YYYY-MM-DD
- Deciders: @alice, @bob

## Context
What is the problem? What constraints are we working under? What did we try before?

## Decision
What did we pick? State it as a sentence; avoid hedging.

## Alternatives considered
Brief list with why each was rejected.

## Consequences
Positive, negative, and neutral outcomes. What this locks us into. What this frees us up for.

AGPL-3.0-or-later · LICENSE