Plasmic is an open-source visual builder for React: teams build pages on a canvas with their own React components, and publish them into a Next.js or React code base. Luna Park builds the whole application, frontend, logic, and backend, compiled to Vue and Node.js.

- **Backend included.** Routes, crons, and PostgreSQL, built visually.
- **Visual logic.** Interface and backend logic built as graphs.
- **Flat price.** One license, whatever your traffic or users.

![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

Both build visually and export code. The main differences: scope, logic, and pricing.

| | Luna Park | Plasmic |
|---|---|---|
| **Scope** | [+Full stack] Interface, logic, backend | [~Frontend] Pages and components |
| **Output** | Vue, Node.js, PostgreSQL | React, Next.js ([source](https://docs.plasmic.app/learn/loader-vs-codegen/)) |
| **Logic** | Visual scripting graphs, front and back | Interactions, data queries, code components |
| **Backend** | [+Built-in] Routes, crons, PostgreSQL | [~Your API or CMS] ([source](https://docs.plasmic.app/learn/data-queries/)) |
| **Code export** | [+Vue + Node.js source] (Pro) | [+React codegen] ([source](https://docs.plasmic.app/learn/loader-vs-codegen/)) |
| **Open source** | [-No] | [+MIT and AGPL] ([source](https://github.com/plasmicapp/plasmic)) |
| **Pricing** | Free, or Pro at €25/month or €300 once | Free, then per collaborator seat ([source](https://www.plasmic.app/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.

---

### Plasmic

1. Connect a backend, such as an HTTP API on a Postgres table.
2. Add a form component with the fields.
3. On submit, run a data query that inserts the row.
4. Bind a text to the returned id.
:::

::: 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 Join Waitlist backend route](https://luna-park.app/static/assets/route-DQo3hM8a.png "The route: receive the body, insert a row, return its id.")
:::

## Code export

Both give you code. Plasmic generates React components for your existing app. Luna Park compiles the complete application, backend included.

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

## Other differences

- **Backend.** Plasmic needs an API or a CMS behind it. Luna Park includes [routes](/docs/backend-data/routes), [crons](/docs/backend-data/cron), and [PostgreSQL](/docs/backend-data/database).
- **Logic.** Plasmic interactions run queries and code components. Luna Park graphs cover loops, functions, and typed data, front and back.
- **Fit.** Plasmic plugs into a React code base you already have. Luna Park starts a new application.

## Which one to choose?

::: columns
### Luna Park

- You are building a new application, backend included.
- You want visual logic, not only visual pages.
- You work with Vue.

---

### Plasmic

- You have a React or Next.js code base.
- Marketing or design teams build pages inside it.
- Open source matters to you.
:::

## Before switching

- Luna Park is not open source, and its output is Vue, not React.
- Until [managed hosting](/pricing) launches in late 2026, you [host the backend](/docs/deployment/deployment).

::: info
Based on Plasmic as of October 2026. See [plasmic.app](https://www.plasmic.app) for current features and prices.
:::
