Start with the product boundary, then find the repository. A screen can involve the web client, the published SDK, the server contract, a background job, and PostgreSQL; changing the nearest file is not always changing the owner of the behaviour.
Repository and service map
| Part | Source | Owns |
|---|---|---|
| Wild HQ site | wildhq-site | The instincts, this handbook, public metadata, and Housekeeping Mode notice. |
| Packbase web | wildbasehq/packbase-react-ui | The React application, routes, UI state, accessibility, localisation, Storybook, and the Cloudflare Worker around the built site. |
| Packbase server | wildbasehq/packbase, mainly apps/server | HTTP contracts, authentication enforcement, domain logic, PostgreSQL access, storage, jobs, maintenance state, and admin APIs. |
| Packbase SDK and REST API documentation | docs-sdk.packbase.app | The authoritative published reference for the current typed client and HTTP API. |
| Wildbase Work | work.wildhq.org | Tasks, proposals, issue state, and durable work or vote records. |
| Discord | The Wild HQ server | Conversation and coordination, never the durable or secret store. |
A browser request in one paragraph
The deployed Packbase web application is a Vite-built React single-page application served through a Cloudflare Worker. For HTML requests, the Worker asks the Packbase server for /context, then may inject route metadata before returning the page. In the browser, Packbase SDK clients make public or Clerk-authenticated API calls. The server validates and authorises those calls, uses PostgreSQL through Prisma, talks to object storage and other configured services, and runs several background workers in the same server process.
When debugging, locate the failing boundary before editing:
- wrong layout, interaction, or client state: web;
- missing or awkward typed client capability: SDK boundary;
- wrong validation, authorisation, or domain result: server route or domain code;
- delayed or duplicated side effect: background worker;
- invalid relation, historical state, or migration: database layer;
- wrong share metadata or maintenance response:
/context,/server/describeServer, or the Cloudflare Worker.
Current frontend boundary
The old Packbase admin UI is retired, and the old apps/web tree in the server repository is frozen. New product, staff, and moderation interface work belongs in the Packbase web repository. Server-side /admin routes still exist; retiring a frontend does not retire its API automatically.
→Packbase overviewThe main Packbase concepts, request paths, repositories, and ownership boundaries.