Framer builds websites: marketing pages, portfolios, and blogs, with a design canvas and an AI agent. Luna Park builds applications: logic, user accounts, and data that users create. They rarely compete for the same project.

- **Visual logic.** Interface and backend logic built as graphs.
- **Complete forms.** Save to your database and reply to visitors instantly.
- **Complete export.** Frontend and backend as Vue and Node.js.

![Sunset Park in the Luna Park editor](https://luna-park.app/static/assets/builder-DAXbtfYB.png "Sunset Park, a demo site built with Luna Park.")


## At a glance

Framer builds websites, Luna Park builds applications. The main differences: logic, data, and code export.

| | Luna Park | Framer |
|---|---|---|
| **Made for** | Web applications | Websites and content |
| **Logic** | Visual scripting graphs, compiled to JavaScript | Interactions, React code components |
| **Data** | PostgreSQL, written by your users | CMS collections, edited by your team |
| **Forms** | [+Your database] | [~Email, Sheets, webhooks] ([source](https://www.framer.com/forms/)) |
| **Code export** | [+Full application] (Pro) | [-No] ([source](https://www.framer.com/help/articles/can-i-export-my-website-to-html-and-self-host-it/)) |
| **Hosting** | [+Anywhere] Managed hosting in late 2026 | [-Framer only] |
| **Pricing** | Free, or Pro at €25/month or €300 once | Per site plan, free for non-commercial use ([source](https://www.framer.com/pricing)) |

## Example: a waitlist form

Visitors enter their name, email, and favorite ride, and get a ticket number.

::: columns
### Luna Park

1. Place the fields and a button, each field bound to a variable.
2. On click, a graph sends the variables to a backend route and shows the ticket.
3. The route inserts a row in the `Waitlist` table and returns its id.

---

### Framer

1. Insert a form and add the fields.
2. Send submissions to email, Google Sheets, or a webhook.
3. Returning a ticket number needs a code component and an external backend.
:::

::: gallery
![The click logic of the waitlist form](https://luna-park.app/static/assets/logic-C66duI84.png "On click: read the fields, call the route, show the ticket.")

![The Waitlist table in the editor](https://luna-park.app/static/assets/database-BIq5wdGO.png "The entries, in the project's PostgreSQL database.")
:::

## Code export

Framer sites only run on Framer. Luna Park exports the complete application, frontend and backend.

![The waitlist component compiled to Vue](https://luna-park.app/static/assets/code-BUYWx0sG.png "The waitlist, compiled to Vue and TypeScript.")

## Other differences

- **Design.** Framer leads on visual design and motion for marketing sites. Luna Park styles components with CSS, [design tokens](/docs/styling/overview#design-tokens), and the Motion plugin.
- **Data.** Luna Park stores what users create, with [routes](/docs/backend-data/routes) and [authentication](/docs/backend-data/auth) controlling access. Framer's CMS holds your team's content.
- **SEO.** Each Luna Park page has its own title, description, and social image, and the backend serves a sitemap ([SEO](/docs/deployment/seo)).

![The SEO panel of a page](https://luna-park.app/static/assets/seo-BCDFkDXI.png "SEO settings of the Sunset Park home page.")

## Which one to choose?

::: columns
### Luna Park

- You build an app: SaaS, dashboard, marketplace, internal tool.
- Users have accounts and create data.

---

### Framer

- You build a marketing site, landing page, or portfolio.
- Designers own the site and edit it visually.
:::

Many products use both: a Framer marketing site, and a Luna Park app behind the "Log in" button.

## Before switching

- Luna Park is not a CMS.
- Page tags are written by the server, but page content renders in the browser. For content sites that rely on search traffic, Framer fits better.

::: info
Based on Framer as of October 2026. See [framer.com](https://www.framer.com) for current features and prices.
:::
