Versine

Local development & configuration

TypeScript, pnpm, Turbo and HTTPS localhost.

Start the stack

pnpm install
pnpm dev:trust
pnpm db:generate
pnpm db:start
pnpm db:migrate
pnpm dev

Prerequisites: Node 24.13+, pnpm 9.12.3, Caddy, Docker, authenticated Infisical and approved development AWS access. Turbo runs the apps and Storybook behind Caddy.

SurfaceLocal origin
Marketinghttps://versine.localhost
Consolehttps://console.versine.localhost
Myhttps://my.versine.localhost
Authhttps://auth.versine.localhost
APIhttps://api.versine.localhost
Docshttps://docs.versine.localhost
Storybookhttps://storybook.versine.localhost

Secrets versus configuration

Origins, bucket/region, Clerk publishable keys and Expo project IDs are public configuration. They do not belong in a secret store. Never expose Clerk secret keys, OIDC private keys, cookie/encryption keys, client secrets or push service credentials as NEXT_PUBLIC_, VITE_ or EXPO_PUBLIC_ values.

The runtime wrapper loads Infisical dev /server only for the backend. Frontends receive only public values. Existing legacy Infisical folders are not the current runtime source. Avoid plaintext .env exports.

Production secrets must be injected at runtime into the approved deployment. Infisical→AWS synchronization is an operator step, not an install/build side effect. The fallback script requires an existing secret ARN and explicit account/region verification. Production topology and DNS are separate decisions.

Application boundaries

Fastify serves internal tRPC under /trpc. Console/My (and Mobile) use inferred AppRouter types with TanStack Query. OAuth/OIDC, MCP, public REST and webhooks are separate protocols, never tRPC.

Run tests only against a separate _test PostgreSQL database. The development database on port 55433 is persistent; do not reset or reuse it as a test fixture. See verification.

UI

Use shared shadcn base-lyra components from packages/ui, Matter headings, Mona Sans body text and the shared −2% letter-spacing token. New shadcn primitives need autodocs stories. Apps do not copy fonts or override typography tracking.