Technologies
Every dependency in the free Hype Stack starter earns its place. Here is what is inside, how the repository is laid out, and why each piece is there.
Runtime zones
| Runtime | What runs there | Examples |
|---|---|---|
| Browser | React UI, TanStack Router, HyperFetch client, theme tokens | apps/frontend, apps/admin |
| Node.js API | Hono server, Prisma, Kysely, Valkey, S3 client, WebSockets | apps/backend |
| Electron | Same frontend codebase in a native window | pnpm --filter @hype-stack/frontend start:app |
| Mobile | Expo app with expo-router and NativeWind | apps/mobile |
| Extension | Browser extension UI, same theme tokens | apps/extension |
| Local infra | Postgres, Valkey, object storage | docker-compose.yml |
Build and tooling (Vite, Nx, Prisma CLI, oxlint) run on Node at the workspace root. They are not part of the production request path.
Repository layout
The project is a pnpm monorepo with Nx orchestrating tasks:
apps/
backend/ # Hono API server
frontend/ # React SPA (web + Electron)
mobile/ # Expo app (expo-router, NativeWind)
extension/ # Browser extension (Vite, Tailwind)
packages/ # Shared code (types, utils, configs)
docker-compose.yml
nx.json
pnpm-workspace.yaml
stack.json # apps, paths, and which packs are installedInstalling a SaaS starter pack adds another app, apps/admin, plus auth, organizations, permissions, and admin
routes under apps/backend. Feature packs (billing, teams, notifications) add more files into those apps. Every app
deploys independently and talks to the API over HTTP, so restarting the API does not rebuild the UI.
Free template vs pack-added
Present after create | Arrives with a starter / feature pack |
|---|---|
apps/backend, apps/frontend, apps/mobile, apps/extension | apps/admin |
| Prisma + Kysely + Valkey + S3 client | Auth, orgs, invitations, RBAC |
| Error middleware, websockets, HyperFetch SDK | Stripe billing, teams, notifications |
| Docker Compose, CI, agent rules | Pack-specific env vars and Prisma models |
Backend
| Technology | Role |
|---|---|
| Hono | HTTP framework. Fast, typed, runs on Node, Bun, Deno, and edge runtimes. |
| Prisma | Schema definition, migrations, and seeding. Also what packs merge into. |
| Kysely | Typed query builder for the joins, CTEs, and window functions Prisma cannot express cleanly. |
| PostgreSQL | Primary database. |
| Valkey (Redis) | Caching and session storage. |
| Zod | Request validation, and the source of the types the frontend SDK reads. |
Two query tools is deliberate. Prisma owns the schema and migrations, Kysely owns the hard queries, and each is used for what it is good at.
Frontend
| Technology | Role |
|---|---|
| React 19 | UI library. |
| TanStack Router | Type-safe routing with typed params and plain-function loaders. |
| Tailwind CSS | Utility-first styling driven by semantic theme tokens. |
| shadcn/ui | Accessible component primitives, copied into the repo rather than installed. |
| HyperFetch | Data fetching, caching, and websockets through a generated typed SDK. |
| Electron | Desktop builds from the same codebase. |
Mobile
| Technology | Role |
|---|---|
| Expo | The mobile app runtime, with expo-router for file-based navigation. |
| NativeWind | Tailwind for React Native, reading the same theme tokens as the web apps. |
| EAS | Expo's build and submission service, driven by deploy mobile. |
Local device testing uses Expo Go from sign.expo.dev. See Mobile.
Extension
| Technology | Role |
|---|---|
| Vite | Builds the extension per browser family (chrome and firefox targets). |
| Manifest V3 | The extension platform format the Chrome, Edge, and Firefox stores accept. |
| Tailwind CSS | Same utility classes and semantic theme tokens as the frontend. |
| Store APIs | deploy extension publishes to the Chrome, Edge, and Firefox stores. |
Both apps talk to the same Hono API through HyperFetch, and both are themed by the CLI's theme picker alongside the frontend and admin.
Tooling
| Technology | Role |
|---|---|
| Vite | Bundler and dev server for both web and Electron. |
| Nx | Monorepo task orchestration, so build, test, and lint run in the right order. |
| pnpm | Package manager with workspace support. |
| oxlint | Linter, Rust-based and fast enough to run on every save. |
| Vitest | Unit and integration tests on both sides. |
| Docker Compose | Local Postgres and Valkey in one command. |
| Sentry | Error and performance monitoring, wired but optional. |
How types travel
There is no code generation step to remember and no schema language to maintain. A Hono route validated with Zod exposes
its input and output types, HyperFetch builds a typed SDK from the Hono app type (registerRoutes return type), and the
frontend imports only that SDK. Add an endpoint on the backend and it is typed on the client immediately. Change a
response shape and the frontend stops compiling.
Read end-to-end type safety for the full chain, and HTTP for how components call the SDK.
What the free starter already handles
These are wired before you install a single pack:
- Error handling. Typed error classes and one central error middleware that formats responses, logs, and reports to Sentry. Route code throws and moves on.
- Real-time. Websocket listeners and emitters through the same typed SDK, with reconnection handled.
- Caching. Valkey reads and writes that degrade gracefully instead of failing a request.
- A dashboard shell. Sidebar navigation, settings screens, and the layout patterns features plug into.
- Local infrastructure. Postgres and Valkey in Docker Compose, plus Prisma migrations against them.
- CI. Lint, typecheck, and test pipelines that understand the monorepo graph.
Paid provider integrations, including WorkOS auth and Stripe billing, are not part of the free starter. They arrive with the packs that need them.
What the template does not ship
These show up in some other SaaS kits. They are not in the Hype Stack template or packs today:
| Capability | Status |
|---|---|
| Product analytics (PostHog and similar) | Not included. Add your own client if you need funnels. |
| Feature flags | Not included. |
| Background jobs / cron runners | Not included as a pack. Use your host's scheduler or a queue you choose. |
| API rate limiting | Not included in generated apps. See Security. |
| i18n framework | Not a centered pack. String files may appear in starters for UI copy. |
Documenting the absence matters so you do not expect dashboard toggles that are not there.
Every purchase and sponsorship funds my 8+ years of work on open source given freely to the community. It keeps the lights on, funds new packs, and keeps the ecosystem alive. Even a small tier means a lot. Thank you!
