Your product.
Web and desktop.
The part of the product your customers see, built as a website and a desktop app from one codebase. Onboarding, settings, and team screens are already there, so the first thing you build is the thing you charge for.




one codebase, website and desktop app
Months of screens, already in the repo.
Real captures from the SaaS starter: onboarding, profile, organization settings, members, roles, and invitations. Screens like these are usually the first quarter of a build, and customers never pay extra for them.
















































































Website, search-friendly site, or desktop app? Decide later.
The choice that stalls every kickoff is reversible here. One codebase ships three ways, so you decide when you actually know what customers want, and change your mind without a rewrite.
Need SEO mid-development?
Google reads every page
Pages render on the server, so crawlers and link previews see real content instead of an empty shell. Flip it on the week SEO starts to matter.
pnpm start:ssr
same routes, same components, same types. switching back is one command too.
Website and desktop to start. Mobile and the browser when you want them.
Customers open it in a browser or install it on their computer, and it is the same product either way. When someone asks for it on their phone or in their toolbar, that is a page in this repo, not a second team.
3+ months
onboardingmembersinvitessettingsOf customer-facing screens, already built
Onboarding, members, invitations, and settings. The screens every product needs and no customer pays extra for.
3
websitessrdesktopone codebaseWays to ship, from one codebase
A website, a server-rendered site, or a desktop app. Same code, your pick, and you can change it later.
100%
everything in your repo
no platform, no export
Of the source lands in your repo
No platform, no fees, nothing hosted by us. Walk away any time and keep everything.
What it does for the business, and where to check.
Six things the application gives you, in plain language. The line at the bottom of every card is where your developer goes to confirm it. The whole repo is public, so nothing here asks for trust.
Customers can sign up and bring their team on day one
Onboarding, profile, organization settings, members, roles, and invitations are finished screens, not tickets. The first thing you build is the thing you charge for.
Lives inapps/frontend/src/featuresIt runs where your customers already are
The same product ships as a website and as a desktop installer for Mac, Windows, and Linux. Nobody starts a second project to get on the desktop.
Builds withbuild:web · make:appIt looks like your brand after editing one file
Colors, radius, fonts, light and dark mode. Change the tokens once and every screen follows, including the ones a pack adds later.
Themed byassets/styles.cssIt speaks your customers' language
Every piece of text lives in one file per language. Adding Spanish is a translation job, not a development job.
Translated inmessages/<locale>.jsonNobody waits for a page
Routes load lazily and bundles are tuned, so the app feels fast on a phone with bad reception, not only on a developer's laptop.
Bundled byVite 8 · React 19A broken screen cannot ship by accident
Every call the app makes is checked against the backend while the developer types. A field that no longer exists is a red underline, not a blank page for a customer.
Checked againstthe typed API
Months of work you don't pay for
What the starter changes for the person paying: time, money, and the risk of a rebuild.
time
3+ months
The screens a build spends its first months on, already in the repo and already tested.
money
$0
to start building
The application is free and public. You pay for feature packs later, or never.
hiring
Vite
bundler
oxc
linter
tsgo
type checker
pnpm
packages
Nx
monorepo

TanStack
router
Ordinary, popular tools. The next developer you hire has used every one of them.
risk
- Every screen in your repo
- Ordinary React, no framework of ours
- Nothing hosted by us
Walk away any time. There is nothing to migrate off.
Deploy with one command.
One command ships everything: web apps and services on your own hosting, the mobile app through EAS, the extension to the stores. No dashboards, no YAML.
- Creates every service on your host
- Wires the URLs, secrets, and CORS between them
- Runs your migrations once the API is up
- Then offers the mobile app (EAS) and the extension stores
launch sequence
one command
- Applicationlive
- Admin Panellive
- APIlive
- Mobilelive
- Extensionlive
- Serviceslive
What the application does not include.
Better you read it here than find out on day two.
Auth, billing, notifications, collaboration
Feature packs. One command installs each one, screens included.
Browse feature packsShow this part to your developer.
Ordinary, popular tools, current versions, pinned. Vetting this takes an afternoon, not a discovery phase.
- 3
- ways to ship one codebase
- 56
- editable shadcn components
- 1
- file to retheme everything
- 0
- hand-written API clients
- UI
- React 19 with the React Compiler, TanStack Router and Start, Tailwind 4.
- Components
- 56 shadcn/ui components in the repo, wired to the theme tokens.
- Data
- HyperFetch SDK inferred from the backend routes. No hand-written client.
- Targets
- build:web for static hosting, build:ssr on Nitro, make:app on Electron 43.
- Languages
- Paraglide messages, one JSON file per locale, typed at compile time.
- Toolchain
- Vite 8, oxlint, oxfmt, TypeScript 7 native, Vitest 4, Playwright e2e.
What the application already handles.
The plumbing below is finished before you write a line. All of it is checkable in the public repo.
Desktop app shell
One shell that runs in the browser and as a native window, title bar and all. Ship a downloadable app without a second codebase to maintain.
SSR, CSR, or desktop
One codebase builds a static site, a server-rendered app on Nitro, or an Electron desktop app. Change targets without a rewrite.

Type-safe API calls
Typed end to end with HyperFetch and Hono. Change a route and the frontend stops compiling. You catch bugs while typing, not from a user report.

Type-safe WebSockets
Every realtime event is typed end to end through HyperFetch. No guessing payload shapes, no stale event names slipping into prod.

Realtime ready on day one
Auth-aware WebSockets already wired. Live updates and collab features become an afternoon of work, not a quarter.

Monorepo that scales
Nx with affected-only builds and shared packages. Two apps, one repo, and you never juggle versions or copy config again.
See it running
Templates are curated project starters built on this stack: a layout, feature packs, a custom theme, and bonus pages. The previews below are recordings of the real apps.
Two ways to install features
Same features underneath, different starting point. Either command resolves what the packs depend on, copies the source into your repository, and merges the database schema.
Take a template
A landing page, a design system, a themed layout, and the features already wired into it. Rebrand it, put your product in the middle, ship.
$ hype-stack compose
Compose your own design
Your design and your choices, without rebuilding auth, billing, or notifications. Tick the packs you want and the CLI wires them into the open-source starter.
Questions, answered
Take the free one. Decide nothing else today.
Clone it, run it, click through the screens. Packs come later, or never.
free / public / your repo