About this project

Plasmic is an open-source visual builder for the web, aimed at building apps, websites, and content quickly while integrating with an existing codebase. The README positions it as a way to "break through the low-code ceiling" by letting users drag and drop their own React components and publish screens directly into existing applications. Main use cases described include content management (marketing teams assembling landing pages from registered React components in a Next.js site, with design guardrails), application building (internal tools, client portals, business software), and general website building without being tied to a specific ecommerce platform, CMS, or host. Key capabilities highlighted: - Registering arbitrary custom React components for use as building blocks in Plasmic Studio. - A headless API plus optional React code generation into a codebase. - Rich stateful interactions, data source and backend integrations, and abstractions such as components, variants, slots, and composable state management. - Customizable headless design system components powered by react-aria. - A content creator mode with simplified editing and design guardrails. - Collaboration features including multiplayer, branching, cross-project imports, and multi-workspace organizations. - Importing designs from Figma by translating its vector document format into DOM/CSS. - Codegen oriented toward page performance, static site generation, image optimization, and layout shift reduction. - Deployment or export to Vercel, Netlify, or other hosting providers. - End-user auth and permissions, including RBAC and user-scoped permissions. - An open-source platform that can be forked and controlled. The README shows a typical CMS integration flow: install a framework-specific loader package (for example @plasmicapp/loader-nextjs), optionally register app or design-system components with PLASMIC.registerComponent, add placeholders such as PlasmicComponent and PlasmicRootProvider in the app, then let non-developers create pages or sections that ship into the app. Publishing changes can be picked up via webhooks, incremental static revalidation, or dynamic fetching from the Plasmic CDN. It also notes versioning guidance: @plasmicapp packages depend on exact versions of each other to stay in sync, and @plasmicpkgs packages use peer dependency ranges. The README recommends checking for duplicate or mismatched versions with npm list and using npm dedupe or reinstalling when needed. Licensing: content outside platform/ is MIT; platform/ is AGPL. Community support is offered through docs, a forum, and a Slack community.