What Bones

Vite and Next.js

Vite for the apps behind sign-in, Next.js static exports for everything public.

Why Vite for the apps

The web app and desktop app live behind sign-in, so search engines never see them. They don't need server rendering — they need a fast dev server and a small static build. Vite does both.

In development, Vite proxies /api, /trpc, and /chatbot to the backend, so the app's requests are same-origin and cookies need no CORS setup.

Why Next.js for public sites

The marketing site, blog, and docs need real HTML that crawlers can read. Next.js prerenders every page to a file at build time. The blog and docs use output: "export", so the whole site is static files with no Node server behind it.

Fumadocs for the docs

The docs add Fumadocs on top of Next.js. See Fumadocs.

Used in