Appearance
Frontend Applications
Jubiloop has two production frontends and a UI prototype. Each application owns its routing, application state, route compositions, and runtime configuration while sharing selected workspace packages.
Applications
| Application | Purpose | Main stack | Documentation |
|---|---|---|---|
apps/webapp | Authenticated event-planning application | React 19, Vite, TanStack Router, TanStack Query | Web Application |
apps/marketing | Public pages, blog, and early-access signup | Next.js 15 App Router, Sanity, TanStack Query | Marketing Site |
apps/ui-prototype | Mock-data UI exploration before production implementation | React 18, Vite, React Router | UI Prototype |
The webapp uses Better Auth and organization hooks from @jubiloop/auth-client, with Tuyau for other server routes. The marketing site is public and uses Tuyau for health and newsletter requests. Its blog reads published content from Sanity. The prototype does not define production API or product behavior.
Shared Packages
The production frontends import reusable controls, styles, icons, and class utilities from @jubiloop/ui. Each app keeps a small CSS wrapper and app-specific source scan. The complete shared component and styling contract lives in UI Components Package.
Other shared contracts are described in Shared Packages:
@jubiloop/auth-clientfor configurable auth and organization client behavior;@jubiloop/shared-typesfor API envelopes and shared error codes;@jubiloop/loggerfor structured, environment-aware logging;- workspace ESLint, TypeScript, and Vitest configurations.
Development
The full-stack Docker workflow runs the production frontends with the API and local services:
bash
pnpm run dev:stack:up
pnpm run dev:stackUse the application pages above for app-specific build, test, and architecture details.