Open source · MIT licensed

Websites
as JSON

Open-source website builder with a Framer-like visual editor, AI generation from a text prompt, and standalone HTML export. The source of truth is a typed JSON config, not generated code.

OpenPage visual editor showing the drag-and-drop interface with block layers, live canvas preview, 10 theme presets, and design controls

The Problem

Two broken paradigms

Code generators break

Lovable, v0, and Bolt generate source code from prompts. LLMs hallucinate imports, produce unmergeable diffs, and every edit risks breaking the build.

Hallucinated imports
Unmergeable diffs
Broken builds after edits

Visual editors lock you in

Framer and Webflow work great for humans but store designs in proprietary formats. AI agents can't read or edit them programmatically.

Proprietary formats
No API access
Vendor lock-in

The Solution

JSON-first architecture

A typed JSON config sits between the editor and the renderer. Humans drag blocks, agents POST JSON. Same source of truth, clean diffs, predictable results.

Visual Editor drag & drop JSON Config source of truth { blocks, theme } Agent API POST /api/generate

Predictable edits

Every mutation produces the same structured output. No surprises.

Clean diffs

JSON changes are easy to review, merge, and version-control in Git.

Agent-friendly

AI agents make surgical edits via a structured API. No code gen needed.

Source of Truth

This is a complete website

One JSON document. Change it, the site updates. No build step, no compilation, no broken imports.

site-config.json
{
  "name": "My Startup",
  "theme": {
    "bg0": "#09090b",
    "accent": "#22c55e",
    "fontDisplay": "Space Grotesk",
    "radius": 8
  },
  "blocks": [
    {
      "type": "hero",
      "variant": "centered",
      "props": {
        "headline": "Ship websites in minutes",
        "primaryCta": "Start Building"
      }
    },
    {
      "type": "features",
      "variant": "grid",
      "props": {
        "items": [
          { "icon": "Zap", "title": "Fast" },
          { "icon": "Shield", "title": "Reliable" }
        ]
      }
    }
  ]
}

Features

Everything you need to build

Visual editor

Drag-and-drop blocks with real-time preview, inline editing, and undo/redo.

AI generation

POST a prompt, get a complete website as structured JSON. Powered by Gemini.

19 block types

Navbar, hero, features, pricing, testimonials, FAQ, and 13 more. 42 layout variants.

10 theme presets

Colors, fonts, radius, spacing. Fully customizable via CSS custom properties.

HTML export

One-click export to standalone HTML. Zero runtime dependencies. Deploy anywhere.

Self-hosted

MIT licensed. Clone, install, run. You own your data, config, and output.

Block System

19 types. 42 variants.

Every block has a typed TypeScript schema, multiple visual variants, and automatic theme integration.

navbar2 variants
hero4 variants
features3 variants
pricing2 variants
cta2 variants
footer3 variants
testimonials3 variants
stats3 variants
faq1 variant
team1 variant
contact1 variant
newsletter1 variant
logocloud1 variant
content3 variants
image3 variants
video2 variants
gallery2 variants
divider3 variants
banner2 variants
19
Block types
42
Layout variants
10
Theme presets
176KB
Gzipped bundle
~5s
Production build

Comparison

How OpenPage compares

Framer Webflow Lovable v0 Bolt OpenPage
Source of truth Proprietary Proprietary Code Code Code JSON config
Agent-editable No No Prompt only Prompt only Prompt only Structured API
Human-editable Visual Visual Code Code Code Visual + JSON
Predictable edits Yes Yes No No No Yes
Version control Limited Limited Messy diffs No Messy diffs Clean diffs
Self-hosted No No No No No Yes
Open source No No No No No MIT
HTML export No Limited Yes No Yes Standalone
Pricing From $5/mo From $14/mo From $20/mo From $20/mo From $20/mo Free

Get Started

Up and running in 60 seconds

terminal
$ git clone https://github.com/buildingopen/openpage.git
$ cd openpage
$ npm install
$ npm run dev
VITE ready in 600ms
Local: http://localhost:5173

Use Cases

Built for builders

Startup landing pages

Generate a complete landing page from a text prompt in under 30 seconds, then fine-tune visually.

AI agent workflows

Give your agent a structured API to build and edit websites without fragile code generation.

Client sites

Build sites visually, export to standalone HTML, deploy anywhere. No vendor lock-in.

SaaS marketing pages

Version-control your marketing site as JSON. Review changes in pull requests with clean diffs.

White-label builders

Fork OpenPage as the foundation for your own website builder product. MIT licensed.

Rapid prototyping

Drag blocks to prototype page layouts, export the result, hand off to your dev team.

FAQ

Common questions

What is OpenPage?
OpenPage is an open-source website builder that uses a JSON-first architecture. Every website is described by a single structured JSON document. A visual drag-and-drop editor lets you build pages by arranging blocks, while an AI endpoint can generate complete site configs from a text prompt. Both interfaces read and write the same JSON, making edits predictable, diffable, and version-controllable.
What is a JSON-first website builder?
A JSON-first website builder stores the entire website as structured JSON data rather than as source code or in a proprietary visual format. Every element (blocks, content, theme, layout) is represented as typed, structured data. AI agents can make surgical edits via API, humans can edit visually, and the output is always clean and predictable.
How is OpenPage different from Framer?
Framer is a proprietary visual editor. OpenPage is open-source and self-hosted. The key difference: OpenPage uses JSON as the source of truth, making sites programmatically editable via API. Framer sites live in Framer's cloud; OpenPage sites are JSON files you own and can store anywhere.
How is OpenPage different from Lovable or v0?
Lovable and v0 generate source code from prompts. Code generation is inherently fragile: LLMs hallucinate imports, produce inconsistent output, and create diffs that are hard to merge. OpenPage generates structured JSON instead of code, making AI output predictable and deterministic. The JSON schema enforces validity.
Can I self-host OpenPage?
Yes. Clone the repo, run npm install && npm run dev, and the editor runs locally. The AI endpoint can be deployed as a Vercel serverless function or adapted to any backend. Exported sites are standalone HTML files you can host anywhere.
How do I build a website with OpenPage?
Clone the repo, run npm run dev, and open the editor at localhost:5173. Click "New Site," add blocks from the picker (navbar, hero, features, pricing, footer), edit text inline, choose a theme, then click "Export" for a standalone HTML file. For AI, set a Gemini API key and describe your site in the prompt field.
How do I use OpenPage with AI agents?
POST a JSON body with a prompt field to /api/generate. The API returns a complete SiteConfig JSON object. Your agent can modify this JSON programmatically and render it directly. The structured schema ensures precise, predictable edits.
What AI model does OpenPage use?
Google's Gemini. The /api/generate endpoint sends a prompt with the block schema and receives a complete site config as structured JSON. You can swap in any LLM that supports structured output by modifying the endpoint.
Is OpenPage free?
Yes. MIT license. Use it for personal projects, commercial projects, or as a foundation for your own product. No usage limits, no paid tiers, no telemetry.

Start building with OpenPage

Open source, self-hosted, MIT licensed. The website builder where JSON is the source of truth.