AI-powered image and video generation studio. For usage, go to reigh.art — this repo is for development only.
React + Vite + TypeScript · TailwindCSS + shadcn-ui · Supabase (Postgres, Auth, Storage, Edge Functions)
Prerequisites: Node.js 18+, Docker, Supabase CLI v1+
git clone https://github.com/peteromallet/reigh
cd reigh && npm install
cp .env .env.local # or create .env manually
supabase start # launches Postgres, Auth, Storage, Realtime
# copy the printed SUPABASE_URL, ANON_KEY & SERVICE_ROLE_KEY into .env
supabase db push # applies migrations
npm run dev # Vite on http://localhost:2222GPU task processing requires Reigh-Worker running separately. Worker and API orchestration is managed by Reigh-Worker-Orchestrator.
- Supabase runtime contract:
docs/governance/contracts/supabase-runtime.md - Error handling contract:
docs/governance/contracts/error-handling.md - Compatibility shims and migration gates:
docs/governance/contracts/compatibility-shims.md
| Contract Surface | Canonical Path | Compatibility Status | Removal Target |
|---|---|---|---|
| Supabase runtime accessor | src/integrations/supabase/client.ts |
Stable canonical | N/A |
| Runtime error normalization | src/shared/lib/errorHandling/runtimeError.ts (normalizeAndPresentError) |
Deprecated aliases live in src/shared/lib/errorHandling/handleError.ts |
2026-06-30 |
| UI button entrypoint | src/shared/components/ui/button.tsx |
Stable canonical for app imports | N/A |
| UI button primitive (base-only) | src/shared/components/ui/contracts/button.tsx |
Canonical primitive contract behind ui/button |
N/A |
| UI themed button wrapper | src/shared/components/ui/theme/button.tsx |
App layer wrapper over base primitive | N/A |
| UI class merge primitive | src/shared/components/ui/contracts/cn.ts |
Stable canonical | N/A |
Compatibility shims that remain for legacy imports:
src/shared/components/ui/primitives/cn.ts-> re-export shim toui/contracts/cn.ts
Run these in CI and before merging facade/contract changes:
npm run test:contractsnpm run test:archnpm run quality:check
| Gate | Required Surface Coverage | Expected Assertion |
|---|---|---|
npm run test:contracts |
src/shared/components/ui/button.tsx, src/shared/components/ui/contracts/button.tsx, src/shared/components/ui/contracts/cn.ts, src/shared/lib/errorHandling/runtimeError.ts, src/domains/generation/types/public.ts |
Public contract API shape and behavior stays stable |
npm run test:arch |
src/shared/lib/errorHandling/runtimeError.ts, src/integrations/supabase/client.ts, contract shim policy docs/scripts |
Contract and shim usage rules are enforced |
npm run quality:check |
src/integrations/supabase/client.ts, src/shared/lib/errorHandling/runtimeError.ts, src/shared/components/ui/contracts/* |
Integrated lint/typecheck/governance checks pass for touched contract surfaces |
| Doc | Purpose |
|---|---|
| structure.md | Architecture overview, directory map, links to all sub-docs |
| docs/code_quality_audit.md | Quality standards, anti-patterns, metrics, known exceptions |
| CLAUDE.md | AI agent instructions — working rules, routing table, conventions (symlinked to .cursorrules) |
| docs/structure_detail/ | 24 focused sub-docs covering every system (settings, data fetching, realtime, tasks, etc.) |
