Skip to content

Puck

A visual drag-and-drop page editor you embed in your own React app.

Stars
13.6k
Forks
1k
Licence
MIT
Language
TypeScript
Last update
8 days ago
Type
Library

What it is

Puck is an open-source React component that gives your app a visual editor, so people can build pages by dragging and arranging components you define. You control the components, the data is yours to store, and the README says there is no vendor lock-in. It is released under the MIT license.

  • Let editors build landing pages from your own React components
  • Save the page layout data to your own database through the onPublish callback
  • Render saved pages on the front end with the Render component
  • Start a new project from the provided next or react-router recipes

Great for

  • React developers adding a page builder to an existing app
  • Teams that want content editors to arrange pre-approved components visually
  • Projects using Next.js or React Router, which the README mentions as supported recipes
  • Companies that need a self-hosted, MIT-licensed editor

Not ideal for

  • People who want a ready-made website builder with hosting and no coding, since Puck is a library you integrate into your own code
  • Non-React projects, because Puck is described as a React component
  • Those who need the README-documented support beyond community channels, which is limited to GitHub issues, Discord, or a paid consultancy call
Step-by-step guide: how to use PuckInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Node.js and npm

    Install the package

    npm i @puckeditor/core --save

    Or create a pre-configured app

    npx create-puck-app my-app
  2. 2

    Run it

    • Install the package or run create-puck-app to generate a starter project
    • Define a config object with your own React components and their editable fields
    • Render the Puck editor component with your config and initial data
    • Render saved data on your page with the Render component
  3. 3

    Get the most out of it

    • Start from the next or react-router recipes to see a working setup
    • Browse the awesome-puck community repo for plugins and custom fields
    • Use the live demo at demo.puckeditor.com to see the editing experience before integrating
    • Check the documentation at puckeditor.com/docs for configuration options

Downloads

Strengths

  • MIT license, which the README says suits internal and commercial use
  • Built on React, so it works with your existing components
  • You own the data and can store it wherever you like

Trade-offs

  • Requires React and coding to set up; it is not a finished no-code tool
  • The README is truncated and does not detail every feature or limit
  • Community support is described mainly through Discord and GitHub issues

How it compares

ProjectStarsTypeLevelUpdatedBest for
puck (this)13.6kLibraryintermediate8 days agoReact developers adding a page builder to an existing app
mitosis14.5kDev toolintermediate8 days agoTeams maintaining the same UI components across more than one framework
react-grid-layout22.5kLibraryintermediate4 days agoReact developers building dashboards with movable panels
draggable18.5kLibraryintermediate11 months agoFront-end developers who want full control over how drag and drop feels and behaves
dnd-kit17.8kLibraryintermediate5 days agoDevelopers building sortable lists or grids in a React, Vue, Svelte, or Solid app
interact.js12.9kLibraryintermediate3 months agoWeb developers building drag-and-drop interfaces

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.