Puck is an open-source visual page builder designed for React codebases that already have a component library and do not want a second vendor CMS bolted on top. Instead of shipping its own proprietary block system, Puck renders the exact React components the product already uses, so marketing teams can drag, drop, and configure pages in a visual editor while engineers keep full control of the code. The project crossed 12,500 GitHub stars under an MIT license in 2026 and is maintained by Measured Co., whose small team has kept the release cadence honest and the surface area tight.
The core of Puck is a JSON config that maps each editable component to a typed field schema. Fields can be strings, numbers, arrays, rich text, or custom React components, which means even complex layouts — image galleries, feature grids, pricing tables — render faithfully inside the editor and then export as a deterministic data blob the app can persist anywhere. There is no runtime lock-in: the output is plain JSON, the editor is a React component, and the dev team stays in charge of hosting, auth, and persistence. Plugins exist for Next.js, Remix, and headless CMS backends like Payload and Sanity, and the recent 0.18 line added iframe preview, responsive breakpoints, and undo/redo polish.
Puck fits the team that wants a visual editor inside its own application rather than a separate CMS. It shines in dashboards that need an admin-facing page builder, marketing sites where the marketing team should not file PRs to update a hero, and internal tools where non-developers compose forms and layouts. It does not try to be Builder.io or Contentful — there is no hosted service, no CDN, no A/B test engine, no content network. For teams that want those enterprise conveniences, Puck is not the answer. But for teams that value owning the stack end-to-end, having MIT-licensed code, and keeping the visual editor scoped to their own component library, Puck is among the cleanest options available in 2026.
