All screens
42 days

Package Graph

Every @uploz/* workspace package and the workspace:* edges between them, transcribed from the manifests. An arrow points from a package to the dependency it relies on, so the graph flows foundation → domain / platform → apps. Columns are placed by the validation-engine's topologicalOrder — same engine the platform uses to order event dependencies.

13

Workspace packages

29

Internal edges

10

Libraries

3

Deployable apps

Dependency flow

Layered left to right by longest prerequisite chain. Leaf foundation packages sit on the left; the apps that consume everything sit on the right.

Foundation(2)Domain(3)Platform(5)App(3)
@uploz/configShared tsconfig / lint / buil…@uploz/shared-typesCanonical enums + DB-mirrorin…@uploz/dbPrisma client (types-only; Su…@uploz/observabilityStructured logging / tracing …@uploz/validation-enginePure, zero-IO gate / readines…@uploz/contractsZod request/response schemas …@uploz/uiDesign-system primitives + si…@uploz/supabaseTyped Supabase client + gener…@uploz/notificationsEmail + Web Push delivery ada…@uploz/test-utilsShared test fixtures + builde…@uploz/dev-adminThis cockpit — internal proje…@uploz/webThe operator-facing Next.js a…@uploz/workerpg-boss background worker (es…

Package roster

@uploz/config is the most-depended-on package (12 internal dependents) — change it and the blast radius is widest.

@uploz/configFoundation

Shared tsconfig / lint / build config. The root every package extends.

12 internal dependents.

@uploz/shared-typesFoundation

Canonical enums + DB-mirroring types. The contract the whole tree shares.

9 internal dependents.

@uploz/validation-engineDomain

Pure, zero-IO gate / readiness / critical-path engine.

1 internal dependent.

@uploz/contractsDomain

Zod request/response schemas at the API boundary.

No internal dependents (leaf consumer).

@uploz/uiDomain

Design-system primitives + signature components (this graph reuses them).

2 internal dependents.

@uploz/supabasePlatform

Typed Supabase client + generated row types.

2 internal dependents.

@uploz/dbPlatform

Prisma client (types-only; Supabase CLI owns the schema, R5).

No internal dependents (leaf consumer).

@uploz/notificationsPlatform

Email + Web Push delivery adapters.

1 internal dependent.

@uploz/observabilityPlatform

Structured logging / tracing helpers.

2 internal dependents.

@uploz/test-utilsPlatform

Shared test fixtures + builders.

No internal dependents (leaf consumer).

@uploz/webApp

The operator-facing Next.js app (mission control).

No internal dependents (leaf consumer).

@uploz/workerApp

pg-boss background worker (escalation timers, notifications).

No internal dependents (leaf consumer).

@uploz/dev-adminApp

This cockpit — internal project-tracking dashboard.

No internal dependents (leaf consumer).

Illustrative dataset transcribed from each package.json (third-party deps omitted). The layered layout is derived live by the engine's topologicalOrder; if the workspace ever introduced a cycle, this view would say so instead of drawing an undefined layout.