Open-OX is an AI-native website production engine: from one natural-language prompt to a runnable, verifiable, editable Next.js project.
Unlike demo generators that output snippets, Open-OX ships a complete delivery pipeline:
- requirement analysis and planning,
- design-system synthesis,
- per-page page implement agents (tool loop) after a single architect pass,
- build verification with auto-repair,
- preview via static export to Storage +
/site-previewsproxy (default in local dev when Storage env is configured), optional per-sitenext dev, or E2B sandboxes, - iterative modification via conversational agent loops.
- Production-oriented output: generates real project files, not screenshots or pseudo-code.
- Transparent pipeline: every stage is streamed and traceable in the studio UI.
- Modification-first workflow: users keep iterating with natural language after initial generation.
- Preview reliability: static export previews avoid long-lived dev servers; optional E2B when
OPEN_OX_PREVIEW_BACKEND=e2b.
- Prompt-to-project generation
- Structured blueprint extraction from user intent.
- Design system generation and token application.
- Parallel section generation with guardrails and skills.
- Build quality gates
- Automatic dependency detection and installation.
- Build verification and targeted repair loops.
- Agentic modification flow
- Tool-using edit agent (read/search/edit/build).
- Structured diff tracking and modification history.
- Multi-turn context with controllable memory boundaries.
- Cloud preview lifecycle
- E2B sandbox create/reconnect/rebuild flows.
- Static export + serve pipeline for deterministic preview URLs.
Browser (Studio UI)
-> Next.js API Routes (SSE orchestration)
-> AI Flows (generate_project / modify_project)
-> Supabase (project registry + Storage: `project-files` + `site-previews`)
-> Preview runtime: `/site-previews` proxy (storage) | local `next dev` | E2B sandboxes
Important directories:
ai/flows/generate_project: end-to-end generation pipelineai/flows/modify_project: iterative agent-based modification pipelineapp/studio: build studio UI (topology, trace, modify conversation)lib/devServerManager.ts+lib/staticSitePreview.ts+lib/previewMode.ts: preview backend selection (local / storage / e2b)sites/: per-project generated code workspaces
- Framework: Next.js 16 (App Router), React 19, TypeScript
- Styling: Tailwind CSS v4, shadcn/radix ecosystem
- Data: Supabase (Postgres + Storage)
- Preview runtime: Supabase bucket
site-previews+ in-app proxy (default in dev when Storage env is set), orOPEN_OX_PREVIEW_BACKEND=local/e2b - LLM access: OpenAI-compatible API interfaces
pnpm installCreate .env.local (minimum required keys depend on your enabled features):
# LLM
OPENAI_API_KEY=...
OPENAI_BASE_URL=...
# Supabase
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
SUPABASE_SERVICE_ROLE_KEY=...
# E2B preview (optional; set OPEN_OX_PREVIEW_BACKEND=e2b)
E2B_API_KEY=...
# Static preview: public URLs via Supabase Storage (no E2B). Apply migration `020_site_previews_bucket.sql`.
# OPEN_OX_PREVIEW_BACKEND=storagepnpm devOpen http://localhost:3000.
pnpm dev # start app
pnpm build # production build
pnpm start # run production server
pnpm lint # lint codebase- Create a project prompt in Studio.
- Generation pipeline runs with streamed step events.
- Generated project files are validated and stored.
- Preview: with
pnpm dev, ifSUPABASE_SERVICE_ROLE_KEY,NEXT_PUBLIC_SUPABASE_URL, andNEXT_PUBLIC_SITE_URLare set andOPEN_OX_PREVIEW_BACKENDis unset, Studio uses Storage +/site-previewsproxy (same as typical prod). SetOPEN_OX_PREVIEW_BACKEND=localfor per-sitenext devin iframe,storageto force explicitly, ore2bfor sandboxes. - Modify with natural language; inspect diffs and logs.
Issues and pull requests are welcome.
Recommended contribution style:
- keep changes focused and atomic,
- include verification evidence (build/lint/runtime behavior),
- document architectural decisions when changing pipeline behavior.
- Open-OX prioritizes deterministic, verifiable output over one-shot flashy demos.
- If you are evaluating the system, inspect the generation and modification traces in Studio to see how each result is produced.