mirror of
https://github.com/jakejarvis/stanza.git
synced 2026-07-16 18:05:58 -04:00
docs: expand registry module catalogue with new categories and planned modules
- Add `storage`, `observability`, and `analytics` categories (with module tables) to the registry docs - Add planned entries for `supabase` (auth + db), `turso`, `postmark`, `storybook`, `netlify`, `render`, and `fly` - Tighten category table descriptions and drop redundant examples from the "What it covers" column
This commit is contained in:
@@ -11,21 +11,24 @@ Inspired by [shadcn/ui](https://ui.shadcn.com), third parties can publish their
|
||||
|
||||
A category has two independent properties: its **cardinality** — `one` (single-choice, like `framework` or `auth`) or `many` (coexisting, like `testing`) — and its **home**, where a module's output lands (`app`, `repo`, or `package`). See [Concepts](/docs/concepts#categories) for the full mental model.
|
||||
|
||||
| Category | Cardinality | Home | What it covers |
|
||||
| ----------- | ----------- | ------- | ----------------------------------------------------------- |
|
||||
| `framework` | one | app | App shell + router (Next, TanStack Start, Expo, …) |
|
||||
| `api` | one | package | Typed RPC layer between framework and services |
|
||||
| `ai` | one | package | AI SDK + provider wiring |
|
||||
| `auth` | one | package | Authentication (Better Auth, Clerk, …) |
|
||||
| `db` | one | package | Database driver (Postgres, SQLite) |
|
||||
| `orm` | one | package | Schema + query layer (Drizzle, Prisma) |
|
||||
| `ui` | one | package | Styling system + component primitives (Tailwind, shadcn, …) |
|
||||
| `payments` | one | package | Checkout + webhooks (Stripe, Polar, …) |
|
||||
| `email` | one | package | Transactional email (Resend) |
|
||||
| `tooling` | one | repo | Lint/format toolchain |
|
||||
| `testing` | many | app | Unit + e2e (Vitest, Playwright) |
|
||||
| `deploy` | many | repo | Deploy targets (Vercel, Cloudflare, …) |
|
||||
| `monorepo` | one | repo | Monorepo task runner (Turborepo) |
|
||||
| Category | Cardinality | Home | What it covers |
|
||||
| --------------- | ----------- | ------- | ---------------------------------------------- |
|
||||
| `framework` | one | app | Web app shell + router |
|
||||
| `api` | one | package | Typed RPC layer between framework and services |
|
||||
| `ai` | one | package | AI SDK + provider wiring |
|
||||
| `auth` | one | package | Authentication, user accounts |
|
||||
| `db` | one | package | Database driver |
|
||||
| `orm` | one | package | Schema + query layer |
|
||||
| `ui` | one | package | Styling system + component primitives |
|
||||
| `payments` | one | package | Checkout + webhooks |
|
||||
| `email` | one | package | Transactional email |
|
||||
| `storage` | one | package | Object / file storage |
|
||||
| `observability` | many | app | Product analytics, error tracking |
|
||||
| `analytics` | many | app | Privacy-friendly site analytics |
|
||||
| `tooling` | one | repo | Lint/format toolchain |
|
||||
| `testing` | many | app | Unit + E2E |
|
||||
| `deploy` | many | repo | Deployment targets |
|
||||
| `monorepo` | one | repo | Monorepo task runner |
|
||||
|
||||
Single-choice categories with `home: "app"` (currently `framework`) are enforced **per app** — a multi-app project can pick `next` for the web app and `expo` for a native app side by side. See [Concepts → Apps](/docs/concepts#apps).
|
||||
|
||||
@@ -69,6 +72,7 @@ Single-choice, installs into `packages/auth/`.
|
||||
| `better-auth` | 🟢 Available | Local data. Peers on `orm` and `framework`. |
|
||||
| `clerk` | 🟢 Available | Hosted database & UI. Peers on `framework`. |
|
||||
| `workos` | 🟨 Planned | WorkOS AuthKit. |
|
||||
| `supabase` | 🟨 Planned | Supabase Auth; constrains `db`. |
|
||||
|
||||
## Database
|
||||
|
||||
@@ -78,6 +82,8 @@ Single-choice, installs into `packages/db/`.
|
||||
| ---------- | ----------------- | ------------------------ |
|
||||
| `postgres` | 🟢 Available | `postgres` driver. |
|
||||
| `sqlite` | 🟢 Available | `better-sqlite3` driver. |
|
||||
| `supabase` | 🟨 Planned | Hosted Postgres. |
|
||||
| `turso` | 🟨 Planned | libSQL (edge SQLite). |
|
||||
|
||||
## ORM
|
||||
|
||||
@@ -115,9 +121,40 @@ Single-choice, constraint-bearing. Installs into `packages/payments/`, plus a Be
|
||||
|
||||
Single-choice, installs into `packages/email/`.
|
||||
|
||||
| Module | Status | Notes |
|
||||
| -------- | ----------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| `resend` | 🟢 Available | `resend` SDK + a sample `react-email` template; framework-native `/api/webhook/resend` Svix-verifier. |
|
||||
| Module | Status | Notes |
|
||||
| ---------- | ----------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| `resend` | 🟢 Available | `resend` SDK + a sample `react-email` template; framework-native `/api/webhook/resend` Svix-verifier. |
|
||||
| `postmark` | 🟨 Planned | `postmark` SDK + framework-native webhook handler. |
|
||||
|
||||
## Storage
|
||||
|
||||
Single-choice, installs into `packages/storage/`.
|
||||
|
||||
| Module | Status | Notes |
|
||||
| ------------- | --------------- | ------------------------------ |
|
||||
| `s3` | 🟨 Planned | AWS S3 (`@aws-sdk/client-s3`). |
|
||||
| `r2` | 🟨 Planned | Cloudflare R2 (S3-compatible). |
|
||||
| `uploadthing` | 🟨 Planned | Managed uploads (UploadThing). |
|
||||
|
||||
## Observability
|
||||
|
||||
Coexisting, app-scoped.
|
||||
|
||||
| Module | Status | Notes |
|
||||
| --------- | --------------- | --------------------------------------- |
|
||||
| `posthog` | 🟨 Planned | Product analytics, error tracking, etc. |
|
||||
| `sentry` | 🟨 Planned | Heavier focus on error tracking |
|
||||
| `axiom` | 🟨 Planned | Logs + event analytics. |
|
||||
|
||||
## Analytics
|
||||
|
||||
Coexisting, app-scoped — privacy-friendly site analytics, distinct from `observability`'s product analytics and error tracking.
|
||||
|
||||
| Module | Status | Notes |
|
||||
| ----------- | --------------- | --------------------------- |
|
||||
| `plausible` | 🟨 Planned | Privacy-first, open source. |
|
||||
| `umami` | 🟨 Planned | Self-hostable, open source. |
|
||||
| `fathom` | 🟨 Planned | Privacy-first, hosted. |
|
||||
|
||||
## Tooling
|
||||
|
||||
@@ -137,6 +174,7 @@ Coexisting, app-scoped. Vitest and Playwright are independent and routinely run
|
||||
| ------------ | ----------------- | ----------------------------------------------------------------- |
|
||||
| `vitest` | 🟢 Available | Unit + integration; `jsdom` + RTL; `test`/`test:watch` scripts. |
|
||||
| `playwright` | 🟢 Available | e2e; per-framework `webServer`; `test:e2e`/`test:e2e:ui` scripts. |
|
||||
| `storybook` | 🟨 Planned | Component workshop + stories. |
|
||||
|
||||
## Deploy
|
||||
|
||||
@@ -148,6 +186,9 @@ Coexisting, repo-scoped.
|
||||
| `cloudflare` | 🟨 Planned | Workers / Pages adapter per framework (e.g. Vite plugins, `wrangler.json`, …). |
|
||||
| `railway` | 🟨 Planned | `railway.toml` + Dockerfile. |
|
||||
| `docker` | 🟨 Planned | Generic `Dockerfile` + compose for self-host. |
|
||||
| `netlify` | 🟨 Planned | `netlify.toml` + framework adapter. |
|
||||
| `render` | 🟨 Planned | `render.yaml` + Dockerfile. |
|
||||
| `fly` | 🟨 Planned | `fly.toml` + Dockerfile (Fly.io). |
|
||||
|
||||
## Monorepo
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ function NavLink({ url, name, pathname }: { url: string; name: ReactNode; pathna
|
||||
params={{ _splat: toSplat(url) }}
|
||||
aria-current={active ? "page" : undefined}
|
||||
className={cn(
|
||||
"block rounded px-2 py-1 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",
|
||||
"block px-2 py-1 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",
|
||||
active && "bg-accent font-medium text-accent-foreground",
|
||||
)}
|
||||
>
|
||||
@@ -82,7 +82,7 @@ export function DocsSidebar({ tree }: { tree: Root }) {
|
||||
<>
|
||||
{/* Mobile: a disclosure above the content so docs stay navigable < md. */}
|
||||
<details className="group my-4 md:hidden">
|
||||
<summary className="flex cursor-pointer list-none items-center justify-between rounded-md border border-border px-3 py-1.5 text-sm font-medium transition-colors hover:bg-accent [&::-webkit-details-marker]:hidden">
|
||||
<summary className="flex cursor-pointer list-none items-center justify-between border border-border px-3 py-1.5 text-sm font-medium transition-colors hover:bg-accent [&::-webkit-details-marker]:hidden">
|
||||
Documentation
|
||||
<IconChevronRight
|
||||
aria-hidden="true"
|
||||
|
||||
Reference in New Issue
Block a user