Agent orchestration for production AI workflows. An offspring of Hyperdrift.
- MISSION.md — what we exist to do.
- ROADMAP.md — phased plan from launch to standalone graduation.
npm install
npm run dev # http://localhost:3108
npm run test # vitest (schema + API route)
npm run typecheck
npm run build
npm run start # serves the production build on port 3008| Environment | Port | URL |
|---|---|---|
| Production | 3008 | https://ai.hyperdrift.io |
| Development | 3108 | http://localhost:3108 |
Convention: prod_port + 100 = dev_port (see infra/PORTS.md).
See .env.example. The contact form uses the existing Hyperdrift contact relay; local preview delivery is documented in the env example. Approved PostHog capture uses NEXT_PUBLIC_POSTHOG_KEY and NEXT_PUBLIC_POSTHOG_HOST from the production vault at build time. Events are scoped to app=orchestra in company project 206943 (EU); see GROWTH.md for the funnel, attribution and privacy boundaries.
Hyperdrift self-hosts on a Hostinger VPS. There is no Vercel / Netlify / managed Next.js host in the stack.
- Process manager: PM2 (
ecosystem.config.cjsin this repo mirrors the centralnginx-prod/ecosystem.config.jsentry on the server). - Reverse proxy + TLS: nginx on the VPS, terminating
ai.hyperdrift.io. - CI: GitHub Actions (
.github/workflows/deploy.yml) runs the test gate (npm run test:ci) and the production build on every push tomain. It verifies only; deploy the approved revision separately through infra after CI passes. - Server-side deploy: managed by the
hyperdrift-infrarepo (ansible). The app entry lives ininfra/group_vars/apps.ymlunderdeploy_apps[name=orchestra]with port3008. - DNS:
ai.hyperdrift.ioresolves to the Hostinger VPS via an A record.
To register a new env var or change port behaviour, edit infra/group_vars/apps.yml in the hyperdrift-infra repo and run the deploy from there.
Semantic CSS only — no Tailwind, no CSS-in-JS. The system is described in src/app/globals.css:
- Type: Fraunces (display, variable optical sizes + italics), IBM Plex Sans (body), IBM Plex Mono (technical metadata). Loaded via
next/font/googleinlayout.tsx. - Palette: deep ink (
--ink), warm cream type (--cream), single vermillion accent (--vermillion). - Motifs: oversized italic serif "movement numerals" mark each section; a 5-line musical staff appears as decoration; an animated equalizer lives in the footer.
- Components use semantic class names (
.eyebrow,.lead,.numeral,.card,.section-head,.btn,.btn.primary,.meta) — variants are compound selectors on primitive elements, not utility classes.
This is an independent git repository under the hyperdrift-io GitHub organisation, federated via meta/mani.yaml in the parent Hyperdrift monorepo. Remote: git@github.com:hyperdrift-io/orchestra.git (to be created at launch time).