Packbase is a social product organised around people, packs, howls, feeds, and tags.

  • A pack is a group with members, roles, permissions, feeds, and pack-owned context.
  • A howl is a post. Replies, reactions, rehowls, ratings, tags, and media attach to that model.
  • A feed is a server-defined ordered view such as universe:home or a pack topic.
  • A tag can exist on a howl even when it has no curated registry entry. Registering a tag adds maintained title and description metadata; deleting that metadata does not erase tags from howls.
  • A profile is the server-owned current account identity and settings surface. Clerk authenticates a browser session; Packbase remains the source for product profile data and permissions.

The main path

Browser route
  → React route and feature component
  → Packbase hook and TanStack Query cache
  → published Packbase TypeScript SDK
  → Packbase HTTP route and domain logic
  → PostgreSQL, object storage, or an in-process worker

For an HTML navigation in the deployed web app, the Cloudflare Worker also calls the server’s /context endpoint before serving the application. That path supplies route-specific metadata and maintenance information; it is separate from the browser SDK request that renders product data.

Find the owner of a change

Desired changeBegin inCheck next
Layout, copy, interaction, route statePackbase web route or feature componentShared UI primitive, accessibility, Lingui catalog, Storybook.
Reading or mutating Packbase data in the browsersrc/hooks/packbase in the web repositoryPublished SDK capability, query key, invalidation, auth scope.
Validation, authorisation, or domain resultMatching route group in apps/server/src/routesTypeBox schema, domain helper, Prisma query, focused test.
New public HTTP pathServer route registryStatic route contract and SDK compatibility.
Delayed howl, gossip, import, cleanup, or cache effectServer background workerDurability, retry, partial completion, shutdown drain.
Table, relation, or backfillSplit Prisma schema or run-on-boot migrationDisposable database, schema diff, release plan.
Share metadata or maintenance screenServer /context or /server/describeServer and web Worker/appBoth configured API URLs and failure fallbacks.
Staff or moderator interfacePackbase webServer-enforced permission and existing /admin or product route.

Contracts cross repositories

The web repository pins a published @packbase/sdk-ts version. A server response can be valid and still be unusable by the web client until the SDK understands it. A client-side role check can hide a control and still provide no security unless the server independently enforces the action.

For changes across those boundaries, use the cross-repository workflow.

Source visibility is not production permission

Reading source or running a local instance does not grant access to Packbase production data, Clerk, storage, Cloudflare, or moderation powers. Use isolated development services and the access rules.