@stackra package (115, as of 2026-10-29) by category, with its entry points (import … from "@stackra/<name>/<entry>").
A reference generated from the TSDoc comments is planned. The docs app cannot generate one today
without adding a dependency (TypeDoc or API Extractor), so this index is the reference until then.
HTTP API references for services are generated from their manifests and appear in their own tab
when a service is published.
@stackra-pro packages are documented in their own READMEs,
delivered inside each tarball.application
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/achievements | Use when a module grants, revokes or verifies awards, badges or certificates for a recipient, by hand or automatically from rule criteria; it owns award kinds, awards, verify tokens and certificate fields. | ., ./contracts, ./node | README · CHANGELOG |
@stackra/actions | Reach for it whenever you write a module’s actions, queries, preconditions, interceptors or extension points; it owns the fixed pipeline (tenancy, permission, idempotency, rate limit, approval) every Stackra mutation and read runs through. | ., ./contracts, ./devtools, ./node, ./testing | README · CHANGELOG |
@stackra/ai | Use when a module exposes AI behaviour (prompts, skills, facts for retrieval, typed model decisions through decide()) or must decide which of its actions an AI agent may run as MCP tools and with what approval. | ., ./contracts, ./node | README · CHANGELOG |
@stackra/clients | Use when code calls another service’s actions, queries or events through the generated #stackra/clients refs from a server, a Worker or React, and use fakeClient to stub those calls in tests. | ., ./contracts, ./react, ./server, ./testing, ./worker | README · CHANGELOG |
@stackra/registry | Use when building or testing a module registry service that validates published stackra.manifest.json catalogues and carries app market records such as reviews, developer sandboxes and fee schedules. | . | README · CHANGELOG |
@stackra/rules | Reach for it whenever tenant-editable logic needs a condition tree (eligibility, criteria, routing, outcomes) instead of hard-coded branches; it owns the condition model, field operators, deterministic evaluation and outcome guards. | ., ./assets/*, ./contracts, ./node, ./react | README · CHANGELOG |
@stackra/segments | Use when a feature targets a named audience of any subject model, defined by a rule set or a manual list, and needs materialised membership with entered and left events. | ., ./assets/*, ./contracts, ./node, ./testing | README · CHANGELOG |
commerce
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/fiscal | Use when a sale or invoice must be sealed, submitted or journaled for a market’s tax authority (e-invoicing or till fiscalisation); market-pack data picks the FiscalDriver, so callers never name a country. | ., ./contracts, ./testing | README · CHANGELOG |
@stackra/ledger | Use when a model must keep balances (points, wallets, stored value, credit) as an append-only double-entry journal with balance floors and reversals instead of a mutable balance column. | ., ./node | README · CHANGELOG |
@stackra/loyalty-kit | Use when a product needs loyalty points, tiers, earning and redemption ready-made, or as the reference capability kit showing how ports, drivers, actions, workflows and UI fit together. | ., ./assets/*, ./contracts, ./native, ./node, ./react, ./testing | README · CHANGELOG |
@stackra/money | Use whenever code stores, computes, rounds, splits or converts an amount of money; never use floating-point numbers for money outside it. | ., ./contracts | README · CHANGELOG |
@stackra/payments | Use when code takes, captures, refunds or pays out money through a payment provider, or runs terminal and pay-link flows; the gateway is picked per tenant and Market, so callers never name a provider. | ., ./contracts, ./node, ./testing | README · CHANGELOG |
@stackra/pricing | Use when resolving what an item costs for a currency, Market, sales channel and date, or computing tax from rate tables, as pure functions on top of @stackra/money. | ., ./contracts | README · CHANGELOG |
@stackra/shipping | Use when code quotes rates, buys or cancels labels, books pickups, tracks parcels or plans routes through a carrier; the carrier is picked per scope and Market, so callers never name one. | ., ./contracts, ./testing | README · CHANGELOG |
communication
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/integrations | Use when a module talks to a third-party provider: describe it as an Integration, keep each tenant’s credentials as a Connection, and resolve them through the ConnectionStore instead of reading secrets directly. | ., ./contracts, ./node, ./testing | README · CHANGELOG |
@stackra/notifications | Use when a module must tell a person something by mail, SMS, WhatsApp, push, in-app or chat; it owns the Notification kind, channel ports, templates, quiet hours and escalation, while the host picks the provider. | ., ./assets/*, ./contracts, ./node, ./react, ./testing | README · CHANGELOG |
@stackra/versioning | Use when an integration event or API response changes shape and older clients must keep receiving the old version through Stackra-Version, with Deprecation and Sunset headers. | . | README · CHANGELOG |
@stackra/webhooks | Use when receiving a provider’s webhook (verify its signature, then route it through the outbox) or delivering signed outbound webhooks to subscribers under the Standard Webhooks spec. | ., ./contracts, ./node, ./testing | README · CHANGELOG |
cross-cutting
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/analytics | Use when sending product analytics events from web or native clients; it holds events until the visitor’s consent is granted and hides the vendor (PostHog, memory or none) behind the AnalyticsDriver port. | ., ./contracts, ./native, ./node, ./react, ./testing | README · CHANGELOG |
@stackra/seo | Use when a route needs meta tags, hreflang alternates, JSON-LD, canonical redirects, robots rules, paged sitemaps or a rendered Open Graph image, on a server or a Worker. | ., ./contracts, ./server, ./worker | README · CHANGELOG |
data
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/assets | Use it to address and load the files a module ships with its code (images, prompt templates, evaluation sets, seed data) through typed generated keys instead of hard-coded paths or URLs. | ., ./react | README · CHANGELOG |
@stackra/content | Use it when a model needs tenant-defined custom fields, record revision history or the built-in content entry types, all stored as checked data rather than schema changes. | ., ./node | README · CHANGELOG |
@stackra/data-maintenance | Use when a service runs the data layer’s system jobs: partition upkeep, record retention, search reindex, change log upkeep and the outbox prune, each with a system-held permission. | ., ./node | README · CHANGELOG |
@stackra/data-transfer | Use it for any tabular import or export: reading or writing CSV, JSON Lines and XLSX, mapping columns, previewing, resuming and reverting import runs, and payroll export files. | ., ./contracts, ./node | README · CHANGELOG |
@stackra/database | Use it for server-side persistence on Postgres: CRUD services, repositories, migrations, seeders, units of work, gapless sequence numbers and the PGlite test database. | ., ./contracts, ./node, ./testing | README · CHANGELOG |
@stackra/documents | Use it to render a printable document such as a receipt, invoice, label or signed form from one template to HTML, PDF or DOCX, including bilingual Arabic layouts and e-signature requests. | ., ./contracts | README · CHANGELOG |
@stackra/filesystem | Use it when server code reads or writes files through a configurable disk (memory, local, S3/R2, Google Cloud Storage, Encore bucket, Electron or the phone) instead of calling a storage SDK directly. | ., ./contracts, ./desktop, ./native, ./node | README · CHANGELOG |
@stackra/media | Use it for user-uploaded files: declaring buckets, signed direct uploads, image variants and transforms, text extraction and OCR, and scanning before a file is accepted. | ., ./contracts, ./node, ./react, ./testing | README · CHANGELOG |
@stackra/model | Use it to declare a persisted model: the Model base with its traits, relations across modules, index and search facets, and the column types generated entity metadata imports. | . | README · CHANGELOG |
@stackra/reports | Use it when a module ships reports: grouped, totalled and pivoted reads over declared dimensions and measures of a model or projection, which REST, MCP, the panel and agents run through one generated query. | ., ./contracts, ./node | README · CHANGELOG |
@stackra/search | Use it to make a model searchable and query it: ranked and paged full-text, trigram and hybrid search over Postgres, indexing and reindexing, with a memory driver for tests. | ., ./contracts, ./node, ./testing | README · CHANGELOG |
@stackra/state-machine | Use it when one field of a model has a lifecycle (an order or invoice status) whose transitions must check their from states and record history inside the caller’s unit of work. | . | README · CHANGELOG |
@stackra/storage | Use it for client-side persistence on web and native: preferences, session, cache, offline outbox, secrets and files, each a named area with schema-checked values and an optional time-to-live. | ., ./browser, ./contracts, ./desktop, ./native, ./react, ./testing | README · CHANGELOG |
design-system
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/icons | Use it when UI code names an icon: it owns the IconName contract and the per-platform registries that map each name to a rendered icon. | ., ./assets/*, ./contracts, ./native, ./native/lucide-icons, ./native/lucide-registry, ./node, ./react, ./react/lucide-icons, ./react/lucide-registry | README · CHANGELOG |
@stackra/tokens | Use it to read or change the theme: the token schema, the default stackra theme and the CSS it produces for HeroUI on web and Uniwind on native. | ., ./assets/*, ./contracts, ./fonts/*, ./node, ./themes/* | README · CHANGELOG |
@stackra/ui | Use it for every UI component in a Stackra app: one component API with shared contracts, rendered by HeroUI on web and HeroUI Native with Uniwind on native. | ., ./assets/*, ./contracts, ./form, ./native, ./node, ./react, ./testing | README · CHANGELOG |
developer
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/brand-kit | Use it to regenerate a product’s brand assets (tokens, icons, splash screens, favicons, web manifest, store frames) from its brand kit.json, or to check that the committed assets are current. | ., ./contracts | README · CHANGELOG |
@stackra/cli | Use it for any stackra command a developer or agent runs: scaffolding packages and services, gen, dev, build, test, lint, check, seed packs and the MCP commands. | README · CHANGELOG | |
@stackra/coding-standard | Use it to add or change a house lint rule that oxlint lacks, or to find which convention or grammar check a stackra lint error comes from. | . | README · CHANGELOG |
@stackra/devtools-kit | Use it when a package exposes developer tools: registering data tabs and RPC functions and emitting events that a devtools panel or the stackra dev console reads through one host session. | . | README · CHANGELOG |
@stackra/gen | Use it to change what stackra gen discovers and writes: kind discovery on the TypeScript API, the committed manifest, shapes, wiring, member entries, the OpenAPI projection and class components. | ., ./metro-transformer, ./node, ./testing | README · CHANGELOG |
@stackra/mcp | Use it to work on the developer MCP server an assistant uses inside a Stackra repository, the .mcp.yaml to .mcp.json rendering and secret launcher, or the hosted per-tenant MCP tool table. | ., ./node | README · CHANGELOG |
@stackra/renderers | Use it to change how the neutral skills, rules, sub-agents, commands and hooks are written into one assistant’s layout such as Claude Code, OpenCode, Kiro, Cursor or AGENTS.md. | . | README · CHANGELOG |
@stackra/repo-checks | Use it to add or fix a repository rule that stackra check or pnpm validate enforces, such as config files, member structure and metadata, the doc standard or lang catalogue completeness. | ./node | README · CHANGELOG |
@stackra/runway | Use it when reading or changing runway files: the member and root runway schemas, the topology placement check, and the readers of dev ports and release facts that generated configs call. | ., ./node, ./schema/*.json | README · CHANGELOG |
@stackra/skills | Use it to write or load the agent-neutral skills and rules, parse their Markdown frontmatter format, or validate registry items against the StackraPackageField contract in ./contracts. | ., ./assets/*, ./contracts, ./node | README · CHANGELOG |
@stackra/testing | Use it in every test: import vitest, the frozen clock and ids, the Fake base, matchers, fixture factories and the React, React Native and Playwright helpers from here instead of the tools directly. | ., ./e2e, ./native, ./react | README · CHANGELOG |
@stackra/vite-plugin | Use it when a web member’s build or dev server needs changing: it turns stackra.config.ts and the generated options into the one Vite config and serves the #stackra/* modules. | . | README · CHANGELOG |
experience
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/builder | Use it to build or extend a visual editor for any builder document kind (pages, screens, forms, dashboards, email templates, automations) on the shared document, change, undo and selection kernel. | ., ./contracts, ./react | README · CHANGELOG |
@stackra/collaboration | Use it for live co-editing (presence, cursors, shared Yjs documents and snapshots) or for comment threads with mentions on any commentable record. | ., ./contracts, ./node, ./react, ./testing | README · CHANGELOG |
@stackra/experience | Use it to declare a renderable block or render a builder document on web, native, the edge or the server, including email templates and print documents. | ., ./contracts, ./edge, ./native, ./react, ./server | README · CHANGELOG |
@stackra/native-card-terminal | Use it when an Expo app takes card-present payments with a Stripe Bluetooth reader or Tap to Pay on the phone, behind the CardTerminal port and the payments StripeTerminalBridge. | ./app.plugin.js, ./contracts, ./native | README · CHANGELOG |
@stackra/native-cash-drawer | Use it when an Expo app opens a cash drawer through its receipt printer or a Sunmi or PAX terminal through the CashDrawer port. | ., ./app.plugin.js | README · CHANGELOG |
@stackra/native-customer-display | Use it when an Expo till draws its customer display on the screen plugged into the tablet through the CustomerDisplay port. | ., ./app.plugin.js | README · CHANGELOG |
@stackra/native-receipt-printer | Use it when an Expo app prints receipts on an Epson, Star, Sunmi or PAX printer through the ReceiptPrinter port. | ., ./app.plugin.js | README · CHANGELOG |
@stackra/native-scale | Use it when an Expo app reads a retail or precision scale over Bluetooth or USB serial behind the Scale port. | ., ./app.plugin.js | README · CHANGELOG |
@stackra/native-share | Use it when an Expo app receives photos, PDFs, links or text that a person shares from another app. | ., ./app.plugin.js, ./assets/*, ./contracts, ./native, ./react | README · CHANGELOG |
@stackra/native-spotlight | Use it to make the signed-in person’s own recent records findable from the phone’s search (iOS Spotlight, Android launcher search) with deep links back into the app, cleared on sign-out. | ., ./app.plugin.js, ./contracts, ./native | README · CHANGELOG |
@stackra/navigation | Use it to declare routes, layouts and menus once and get typed route refs, loaders and links on web, desktop and mobile through React Router 7 and React Navigation. | ., ./assets/*, ./contracts, ./native, ./react, ./testing | README · CHANGELOG |
@stackra/panel | Use it to declare admin resources, dashboard widgets, documents and panels and to render them in the web shell or native widget slots. | ., ./assets/*, ./native, ./node, ./react | README · CHANGELOG |
@stackra/peripherals | Use it when a client drives point-of-sale hardware such as receipt and label printers, cash drawers, scanners, scales, customer displays or card terminals. | ., ./contracts, ./desktop, ./native | README · CHANGELOG |
@stackra/platform | Use it to ask what the running target supports and use it (push, captcha, kiosk mode, second screen, service worker, sharing, haptics) across web, PWA, Electron and Expo without platform checks in app code. | ., ./assets/*, ./browser, ./contracts, ./desktop, ./native, ./node, ./react, ./sw, ./testing, ./worker | README · CHANGELOG |
@stackra/shortcuts | Use it to declare a keyboard shortcut once so the keyboard, command palette and desktop menus run the same action, with chord parsing, conflict detection and key hints. | ., ./react, ./testing | README · CHANGELOG |
foundation
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/calendar | Reach for it when code must compute business days, working hours, holiday-aware recurrences, free slots or Hijri and Gregorian dates for a market; it owns the date math, while holidays and working weeks come from market packs. | ., ./contracts | README · CHANGELOG |
@stackra/config | Reach for it when a member needs deploy-time values or secrets: declare a Config class over a schema with @Secret fields and inject it, instead of reading process.env directly. | ., ./contracts, ./node, ./react, ./testing | README · CHANGELOG |
@stackra/container | Reach for it when defining a kind, decorator, module, port driver or injectable service, or when overriding bindings in tests; it owns the DI container every member is resolved through. | ., ./devtools, ./react, ./testing | README · CHANGELOG |
@stackra/contracts | Reach for it for the Port and Enum bases, id and actor types, Duration and the core ports (Clock, Logger, KeyProvider, FieldCipher, Tracer); it is the dependency-free leaf every member imports, so shared cross-member vocabulary lands here. | . | README · CHANGELOG |
@stackra/errors | Reach for it when a member must refuse on purpose with a typed, coded error, report unexpected errors to Sentry, or assert refusals in tests; it owns the one error envelope every transport carries. | ., ./contracts, ./react, ./testing | README · CHANGELOG |
@stackra/events | Reach for it to declare domain, integration, webhook or analytics events and their listeners, publish in process, or test emitted events; cross-service delivery goes through @stackra/outbox behind its EventOutbox port. | ., ./contracts, ./devtools, ./testing | README · CHANGELOG |
@stackra/i18n | Reach for it whenever user-facing text, numbers, dates, addresses or units must be translated or formatted per locale (Arabic included), or when adding catalogue keys; it also holds the translation, geocoding and address-autocomplete ports. | ., ./contracts, ./native, ./react | README · CHANGELOG |
@stackra/logger | Reach for it to configure how the Logger port writes (levels per channel, sampling, redaction of secrets and classified fields) or to ship logs over OTLP; code that only logs injects the Logger port from @stackra/contracts. | ., ./contracts | README · CHANGELOG |
@stackra/market-packs | Reach for it when code needs a market’s value for a key on a date (holidays, legal floors, rule facts) or must load, verify, store or gate a signed market pack; per-country data is read through this loader, never hard-coded. | ., ./node | README · CHANGELOG |
@stackra/support | Reach for it for small dependency-free helpers (time shifts, exact quantities, canonical JSON hashing, signed tokens and one-time codes, GTIN and Code 128) before writing a new utility; a helper lands here only when two members need it. | . | README · CHANGELOG |
@stackra/transport | Reach for it when calling a Stackra API over HTTP or changing how generated clients send requests (auth, retries, timeouts, idempotency keys, streaming bodies); it owns the client middleware pipeline, not the server side. | ., ./native | README · CHANGELOG |
@stackra/validation | Reach for it to declare request, response or record shapes as classes with field rules and to validate raw input against them; stackra gen compiles them to zod, so zod is written by hand only through @Field. | . | README · CHANGELOG |
infrastructure
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/infra-aws | Reach for it when changing the per-environment AWS foundation (data key, files bucket, Postgres backups, deploy roles, budgets) or the Pulumi state backend and backup account; its values come from the root runway. | ., ./node, ./testing | README · CHANGELOG |
@stackra/infra-aws-runtime | Reach for it when changing how the queues, caches and buckets that services declare in runway.yaml are provisioned in AWS; to add one, edit the service’s runway, not this code. | ., ./node | README · CHANGELOG |
@stackra/infra-cloudflare | Reach for it when changing Cloudflare zones, DNS, Worker custom domains, R2 buckets, dev tunnels, Access policies or edge security rules; every value comes from the root runway. | ., ./node | README · CHANGELOG |
@stackra/infra-gcp | Reach for it when an environment runs on GCP (in-country hosting where AWS has no region) and its foundation (provider, data key, files bucket, deploy identity, budget) must change; its AWS twin is @stackra/infra-aws. | ., ./node, ./testing | README · CHANGELOG |
@stackra/infra-github | Reach for it when changing repository settings, deployment environments, Actions variables, CI secret names, rulesets or branch protection; they are applied from code here, not edited in the GitHub UI. | ., ./node | README · CHANGELOG |
@stackra/infra-identity | Reach for it when adding an app’s OIDC client, a machine user, a role or branding to ZITADEL, or changing the instance’s token and sign-in policies; edit the seed and the runway, and this slice applies them. | ., ./node | README · CHANGELOG |
@stackra/infra-mobile | Reach for it when preparing a mobile app release: the EAS project and environments, store records, push credentials and signing, plus the owner steps no API can take. | ., ./node | README · CHANGELOG |
@stackra/infra-observability | Reach for it when changing where telemetry goes, log retention, cron and queue heartbeats, Sentry projects and alerts, or service-level indicators; services only export OTLP and declare their indicators in the runway. | ., ./node | README · CHANGELOG |
@stackra/infra-tools | Reach for it when adding, pinning or resizing a self-hosted regional tool (e-signature, OCR, geocoding, translation, support chat) or changing the endpoints integrations connect to. | ., ./node | README · CHANGELOG |
runtime
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/app | Reach for it when booting a member: createApp for its target (server, worker, browser, native or desktop) runs the generated wiring, and it owns the server lifecycle, request guards and raw-HTTP controllers. | ., ./browser, ./contracts, ./desktop, ./native, ./react, ./server, ./worker | README · CHANGELOG |
@stackra/cache | Reach for it when a service, driver or listener should keep a computed value for a while instead of recomputing it; inject the Cache port and pick memory, storage, Valkey or Workers KV through CacheConfig. | ., ./contracts, ./node, ./worker | README · CHANGELOG |
@stackra/devices | Reach for it when building a device app (sensor gateway, kiosk, till) that pairs, reports telemetry, takes commands or orders offline calls, or when the server tracks registered devices. | ., ./contracts, ./node | README · CHANGELOG |
@stackra/locking | Reach for it when work must run on one runner at a time across processes (single-runner jobs, serialised updates); run it under Locks with a named key instead of rolling a lock by hand. | ., ./contracts, ./node | README · CHANGELOG |
@stackra/outbox | Reach for it when another service must learn of a committed change even if the process dies after the commit: write integration events in the same transaction and let the relay publish them; it also deduplicates incoming events. | ., ./contracts, ./node | README · CHANGELOG |
@stackra/queue | Reach for it when an action runs as a background job (its job option): pushing, running, retrying and dead-lettering jobs, choosing the queue driver, and draining queues in tests. | ., ./contracts, ./node, ./testing | README · CHANGELOG |
@stackra/realtime | Reach for it when sessions must see a change live: services broadcast data-free refresh events by permission and audience and clients refetch; it also hosts collaboration rooms and the cross-instance fanout. | ., ./contracts, ./node, ./react, ./testing | README · CHANGELOG |
@stackra/sandbox | Reach for it whenever tenant-written automation code must run: it is the only place tenant code executes, under time, memory, output and network limits; never evaluate tenant code anywhere else. | ., ./contracts, ./node | README · CHANGELOG |
@stackra/scheduler | Reach for it when an action must run on a cron, platform-wide or per scope, or when a tenant keeps its own schedules as data; each due run is pushed through @stackra/queue. | ., ./contracts, ./node, ./testing | README · CHANGELOG |
@stackra/workflow | Reach for it when an action crosses modules, calls an external system, must undo earlier steps on failure, waits for a human or an event, or must survive a restart; it also runs tenant automations built from blocks. | ., ./node, ./testing | README · CHANGELOG |
security
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/access-log | Reach for this when an action, query or service touches personal data and every call must leave a tamper-evident, per-tenant access record; it owns the @AccessLogged facet, the sinks, the hash chain and its verification. | ., ./contracts, ./node, ./testing | README · CHANGELOG |
@stackra/consent | Use it to keep optional tracking or features off until a visitor has decided, or to record and prove a user’s acceptance of versioned terms; it owns the consent ledger, its stores, the banner and preference UI and the consent proofs. | ., ./assets/*, ./contracts, ./node, ./react, ./testing, ./ui | README · CHANGELOG |
@stackra/csp | Use it to build the Content-Security-Policy header of a web or desktop target and to stamp the per-request nonce on what a server render writes. | ., ./react | README · CHANGELOG |
@stackra/entitlements | Reach for this when a call must be gated by what the customer’s plan grants (a feature, a numeric limit, a module or seats); it owns the Entitlement kind and the action pipeline’s plan check, not release flags or consent. | ., ./contracts, ./testing | README · CHANGELOG |
@stackra/iam | Use it to declare a model’s permissions, roles and record policies and to answer who may do what on which records, including the action pipeline’s access check and the record-visibility filter on reads. | ., ./contracts, ./node, ./react, ./testing | README · CHANGELOG |
@stackra/identity | Reach for this to sign users in through the hosted identity provider, read the current session and its claims, require step-up assurance, or verify a person or business (KYC, KYB); it builds no login UI. | ., ./contracts, ./desktop, ./native, ./node, ./react, ./testing | README · CHANGELOG |
@stackra/licensing | Use it when an install must verify its signed licence offline and derive its standing (active, grace, read-only), or when the issuing service writes licences through the LicenceIssuer port. | ., ./contracts | README · CHANGELOG |
@stackra/privacy | Reach for this when a person asks for their data or asks to be forgotten (PDPL, GDPR): modules declare their personal data with the PersonalData kind; this package exports it to a signed zip and erases it through a workflow that crypto-shreds, deletes or anonymises, honours legal holds and issues receipts. | ., ./contracts, ./node, ./testing | README · CHANGELOG |
@stackra/scope | Reach for this to resolve a request’s node in the scope tree that settings, IAM and feature flags cascade against, or to declare levels and create, move or query scope nodes. | ., ./assets/*, ./contracts, ./native, ./node, ./react, ./testing | README · CHANGELOG |
@stackra/tenancy | Use it when a model’s rows must be isolated per tenant in Postgres, when code needs the current tenant or a tenant switcher, or for sandbox tenants and consented cross-tenant shares; it is the only package that declares the tenant concept. | ., ./assets/*, ./node, ./react, ./testing | README · CHANGELOG |
state
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/coordinator | Use it when only one tab or window of a device may run a task (drain the offline queue, hold the realtime socket, refresh a token) and another must take over when that one closes. | . | README · CHANGELOG |
@stackra/feature-flags | Reach for this to declare a typed release switch or experiment arm and read it in code or React; a commercial right is never a flag and belongs in @stackra/entitlements. | ., ./contracts, ./lint, ./react, ./testing | README · CHANGELOG |
@stackra/query | Use it on a client for server data: the live-refetched query cache, offline mutations with idempotency keys, bounded offline replicas and the offline lock; local UI state belongs in @stackra/state. | ., ./contracts, ./devtools, ./react, ./testing | README · CHANGELOG |
@stackra/settings | Reach for this when a module exposes runtime values that admins or users change per scope, with locks, revisions, approval and schedules; deploy-time values belong in @stackra/config and secrets never go here. | ., ./assets/*, ./contracts, ./native, ./node, ./testing | README · CHANGELOG |
@stackra/state | Use it for local UI state as a class-based store or a single shared signal, optionally persisted to client storage; server data belongs in @stackra/query. | ., ./react, ./testing | README · CHANGELOG |
@stackra/theming | Reach for this to read or change a user’s light, dark or system colour scheme on a device, or to configure a member’s theme and logo over @stackra/tokens. | ., ./assets/*, ./browser, ./contracts, ./native, ./react, ./testing | README · CHANGELOG |
tooling
| Package | Use it for | Entry points | Source |
|---|---|---|---|
@stackra/commitlint-config | Use it as the single extends of a repository’s commitlint configuration, and to turn on the Refs issue-key footer rule with the tracker prefix. | . | README · CHANGELOG |
@stackra/oxlint-config | Use it when creating or changing a workspace’s .oxlintrc.jsonc: extend exactly one role preset from this package’s src/, and add or change lint rules here, never in the workspace. | ., ./base, ./boundaries, ./decorators, ./node, ./react | README · CHANGELOG |
@stackra/tsdown-config | Use it in a library’s tsdown.config.ts through library() to build its entries to ESM with types and sourcemaps; build options change here, not per member. | . | README · CHANGELOG |
@stackra/typescript-config | Use it as the single extends of a workspace’s tsconfig.json, picking the role preset (node, library, decorators, runtime and the others); compiler options change here, never in a member. | ., ./app, ./base, ./decorators, ./decorators-react, ./desktop, ./encore, ./expo, ./library, ./mobile, ./node, ./react, ./runtime, ./service, ./service-worker, ./tooling, ./vite, ./vite-node | README · CHANGELOG |
@stackra/vitest-config | Use it in a workspace’s vitest configuration to pick the role preset and the shared coverage gate; test settings change here, not per member. | ., ./coverage, ./preset, ./preset-decorators, ./preset-react | README · CHANGELOG |