Development Overview
This section covers how to work with the Hype Stack codebase day-to-day: the folder structure, dev workflow, and key concepts.
Repo layout after create
- apps/
- backend/Hono API, Prisma, Kysely, Valkey, S3 client
Hono API, Prisma, Kysely, Valkey, S3 client
- prisma/schema and migrations
schema and migrations
- src/features/domain modules (grows with packs)
domain modules (grows with packs)
- src/routes/thin HTTP routers
thin HTTP routers
- src/jobs/cron jobs, empty until a pack adds one
cron jobs, empty until a pack adds one
- src/queues/task queues for slow work, empty until a pack adds one
task queues for slow work, empty until a pack adds one
- docker-compose.ymlPostgres, Valkey, RustFS
Postgres, Valkey, RustFS
- frontend/React 19, TanStack Router, Tailwind, HyperFetch, Electron
React 19, TanStack Router, Tailwind, HyperFetch, Electron
- src/routes/file-based pages
file-based pages
- src/features/UI modules
UI modules
- src/api/typed HyperFetch SDK
typed HyperFetch SDK
- messages/en.jsonParaglide copy, packs merge into it
Paraglide copy, packs merge into it
- admin/operator app, a placeholder home until a starter fills it
operator app, a placeholder home until a starter fills it
- mobile/Expo, expo-router, NativeWind
Expo, expo-router, NativeWind
- extension/browser extension, Vite, MV3
browser extension, Vite, MV3
- packages/enums/shared enums both sides import
shared enums both sides import
- stack.jsonapps, installed packs, deploy records
apps, installed packs, deploy records
- nx.jsontask graph and caching
task graph and caching
- pnpm-workspace.yamlworkspace package list
workspace package list
After a SaaS starter pack
Installing a starter (the free Better Auth one, or a SaaS starter on Better Auth or WorkOS) adds, among other files:
- apps/
- admin/src/routes/login, users, orgs, settings screens
login, users, orgs, settings screens
- backend/src/
- features/auth/login, sessions, password flows
login, sessions, password flows
- features/organizations/orgs, invitations, settings
orgs, invitations, settings
- middleware/auth/withAuthUser, admin guards
withAuthUser, admin guards
- middleware/permissions/hasAccess + CASL
hasAccess + CASL
- frontend/src/routes/
- (private)/auth-gated app shell
auth-gated app shell
- onboarding/create or join an org
create or join an org
- login/sign-in screens
sign-in screens
Feature packs (billing, teams, notifications, projects) add more modules under the same trees. See Authentication and Organizations.
Dev loop
Start everything with one command:
pnpm devThis runs every serve target through Nx with hot reload: the backend on port 3000, the frontend on port 4200, the admin app and extension on their own Vite ports, and Metro for the mobile app.
Where things live
| What | Where |
|---|---|
| API routes | apps/backend/src/routes/ |
| Feature modules | apps/backend/src/features/ |
| Database schema | apps/backend/prisma/schema/ |
| Background jobs | apps/backend/src/jobs/index.ts |
| Task queues | apps/backend/src/queues/index.ts |
| Translations | messages/en.json in each app |
| Frontend pages | apps/frontend/src/routes/ |
| UI features | apps/frontend/src/features/ |
| Shared components | apps/frontend/src/components/ |
| API client (SDK) | apps/frontend/src/api/ |
| Theme tokens | apps/frontend/assets/styles.css |
| Env variables | .env files in each app |
In this section
- Commands
- Monorepo
- E2E typesafety
- Observability
- AI Overview
- Working with AI
- Troubleshooting
- Upgrading
- Testing
The Expo app has its own page: Mobile.