All Projects → plasmicapp → plasmic

plasmicapp / plasmic

Licence: MIT License
Visual page builder and web design tool for any website or web app tech stack

Programming Languages

typescript
32286 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to plasmic

Builder
Drag and drop page building using your code components
Stars: ✭ 1,281 (-13.15%)
Mutual labels:  builder, drag-drop, headless, gatsby, wysiwyg, page-builder, headless-cms
Grapesjs
Free and Open source Web Builder Framework. Next generation tool for building templates without coding
Stars: ✭ 14,892 (+909.63%)
Mutual labels:  page-builder, ui-builder, nocode
awesome-medusajs
A curated list of awesome resources related to MedusaJS 😎
Stars: ✭ 113 (-92.34%)
Mutual labels:  headless, gatsby, headless-cms
Brick Design
全场景流式布局,可视化拖拽、随意嵌套组合、实时渲染、实时辅助线展示,实时组件间距展示、实时拖拽排序、状态域管理,可视化属性配置、可视化样式配置、多设备适配展示,支持逻辑渲染、模板字符变量、表达式、自定义方法、自定义状态
Stars: ✭ 4,048 (+174.44%)
Mutual labels:  page-builder, nocode, lowcode
Sourcebit
Sourcebit helps developers build data-driven JAMstack sites by pulling data from any third-party resource
Stars: ✭ 252 (-82.92%)
Mutual labels:  headless, jamstack, headless-cms
Example Company Website Gatsby Sanity Combo
This is an example company website using Gatsby and Sanity in combination.
Stars: ✭ 242 (-83.59%)
Mutual labels:  gatsby, jamstack, headless-cms
Blocks
A JSX-based page builder for creating beautiful websites without writing code
Stars: ✭ 4,300 (+191.53%)
Mutual labels:  wysiwyg, nocode, lowcode
statiq-starter-kontent-lumen
Lumen is a minimal, lightweight, and mobile-first starter for creating blogs using Statiq and Kontent by Kentico.
Stars: ✭ 22 (-98.51%)
Mutual labels:  headless, jamstack, headless-cms
startup-starter-kit
The Structured Content Startup Starter Kit
Stars: ✭ 42 (-97.15%)
Mutual labels:  headless, gatsby, headless-cms
nuxt-ghost
Easy Ghost content API integration with Nuxt.js.
Stars: ✭ 27 (-98.17%)
Mutual labels:  headless, headless-cms
agilitycms-eleventy-starter-2020
A sample Eleventy starter that uses Agility CMS and aims to be a foundation for building fully static sites using 11ty and Agility CMS.
Stars: ✭ 18 (-98.78%)
Mutual labels:  jamstack, headless-cms
openvalidation
Compose validation rules in the language you use every day, openVALIDATION handles code creation for you.
Stars: ✭ 62 (-95.8%)
Mutual labels:  nocode, lowcode
epage-core
epage 核心依赖 低代码可视化配置
Stars: ✭ 22 (-98.51%)
Mutual labels:  nocode, lowcode
laravel-storyblok
Make Laravel and Storyblok work together beautifully.
Stars: ✭ 45 (-96.95%)
Mutual labels:  headless, headless-cms
gatsby-starter-developer-diary
An official Gatsby blog template designed for web developers. Blazing fast, it includes beautful web developer topic tags and social-media links
Stars: ✭ 76 (-94.85%)
Mutual labels:  gatsby, jamstack
yllet
Yllet is a set of packages for the WordPress API for both React and non-React projects
Stars: ✭ 46 (-96.88%)
Mutual labels:  headless, headless-cms
jamstack-nyc
Gatsby + GraphQL Static Queries + Basic authentication
Stars: ✭ 20 (-98.64%)
Mutual labels:  gatsby, jamstack
gatsby-themes
A collection of open source, well designed, highly customizable and 100% free Gatsby themes for blazing fast sites. We are working on the next version of the Flex theme. See https://github.com/reflexjs/reflexjs
Stars: ✭ 296 (-79.93%)
Mutual labels:  gatsby, page-builder
snipcart-gatsby-grav
Grav as Headless CMS Tied to Gatsby with GraphQL Schema
Stars: ✭ 27 (-98.17%)
Mutual labels:  gatsby, jamstack
grapesjs-plugin-forms
Set of form components and blocks for the GrapesJS editor
Stars: ✭ 39 (-97.36%)
Mutual labels:  builder, wysiwyg

Plasmic

Plasmic

The headless page builder + CMS for React, Vue, Angular, PHP, vanilla JS, and more.

Drag and drop your own code components. Let non-developers create stunning content, and free up developers from pixel-pushing.

 

License Types code style: prettier PRs Welcome

Quick links

How it works

Step 1. Install Plasmic into your codebase (exact package depends on your framework).

npm install @plasmicapp/loader-nextjs

Step 2 (optional). Make components from your app or design system available for drag-and-drop in the visual editor:

// Take any component from your app or design system...
export default function HeroSection({ children }) {
  return <div className="hero-section">{children}</div>;
}

// ...and make it available for drag-and-drop, along with any props you want to
// expose.
PLASMIC.registerComponent(HeroSection, {
  props: {
    children: "slot",
  },
});

Step 3. Add placeholders that render pages/components made in the visual editor anywhere in your app:

// pages/index.tsx

import {
  PlasmicRootProvider,
  PlasmicComponent,
} from "@plasmicapp/loader-nextjs";
import { PLASMIC } from "../plasmic-init";

// Here we fetch dynamically on the client, but you can also fetch and render
// components server-side in SSG/SSR frameworks, such as via getStaticProps
// in Next.js.
export default function IndexPage() {
  return (
    <PlasmicRootProvider plasmic={PLASMIC}>
      <PlasmicComponent component="Summer22LandingPage" />
    </PlasmicRootProvider>
  );
}

Step 4. Non-developers (or developers!) can now create new pages, sections, or components that ship directly into the app/website.

Step 5. When you hit Publish, changes get picked up via webhooks that trigger rebuilds, or more specific mechanisms such as incremental static revalidation or dynamic fetching from the Plasmic CDN.

Overview

Plasmic is a platform that contains a few things:

  • Visual builder / web design tool--this is the heart of Plasmic
  • Headless CMS for structured content (or bring your own CMS)
  • Growth optimization tools (A/B testing, personalization, analytics)

Plasmic's main feature is its visual builder for the web. Developers integrate this into their codebase, and anyone (including non-developers) can build pages or parts of pages.

The goal is to empower and unblock non-developers such as marketers and designers, while freeing up developers from pixel-pushing content, thus letting the whole team move faster.

Plasmic as a page builder and “visual CMS” is its simplest and most common use case. Editors can create and update content in Plasmic without code, and publish this into their production site without needing to block on developers.

A key capability is that Plasmic lets you drag and drop your own components. There are multiple ways to use Plasmic--editors can:

  • Design and build from scratch entirely in the visual tool, as a freeform page builder. No developer code needed.
  • Exclusively use existing components as building blocks (this can be enforced). This ensures consistency and makes editing easier for non-designer/non-developers.
  • Anything in between.

Beyond website content, Plasmic can even be used to create frontends for complex web applications (such as Plasmic itself, which was built in Plasmic). This is a more advanced use case.

Learn more on our website and our docs. Or check out comparisons of Plasmic vs other tools.

Or check out our Next.js-based talk and demo at Next.js Conf 2021:

Next.js-based talk and demo at Next.js Conf 2021

Get help and join our community

Connect with the Plasmic team and with other Plasmic users on the Plasmic Community Slack.

Features

A smattering of interesting highlights about Plasmic:

  • Drag/drop and visually manipulate your own React components, and seamlessly nest design elements within your React components (using slots).
  • Import designs from Figma, translating its proprietary vector document format into DOM/CSS.
  • Scalable component system with slots/props, variants (that can be combined), and style mixins/tokens.
  • High-performance and high-quality codegen. Supports static site generation, automatic image optimization, layout shift reduction, and more.
  • Design fully functional and accessible design system components. For designers, you can craft completely bespoke, complex design system components like dropdowns, and we wire it up to react-aria. Most component libraries give you variables to tweak, but here you can completely change the structure and layout of these components.
  • Versatility in use cases. Use it as a page builder to create simple static content like marketing/landing pages and promotional sections, or use it as a development tool for visually building complex, stateful React UIs.

Users of Plasmic

Plasmic is used by companies ranging from Fortune 500s to boutique brands to solo makers. It's used for websites ranging from headless commerce storefronts to marketing websites to logged-in app content.

Check out the Case Studies and Community Showcase.

Customer logos

Showcase

Technical overview

(Read the full technical overview.)

The main way to integrate Plasmic into a codebase is via the Headless API. The Headless API lets developers fetch and render into your existing codebase, without touching your code base besides the initial setup. This allows your Plasmic users to build designs and pages, and publish directly to production, without involving the development team.

You can think of Plasmic as a CMS, but where editors get to edit HTML/CSS rather than JSON data. Developers then just render the content as-is.

Plasmic does not host your site; your site continues to run on your existing infrastructure and tech stack.

For static site generators and server-rendered pages, Plasmic content is loaded at build-time or server-side and thus pre-rendered, optimizing page load performance. For other sites that fetch and render client-side, Plasmic content is loaded from the AWS Cloudfront CDN.

New pages can automatically just show up. The codebase integration can be configured such that as users create pages and routes in Plasmic Studio, they will be auto-loaded into your app without developer involvement.

Bring your own React components

You can register your own arbitrary custom React components for use as building blocks within Plasmic Studio. Learn more about code components.

Codegen

Besides the Headless API, you can also generate React code into your codebase. This is a powerful way to use Plasmic as a UI builder for creating rich interactive web applications—one example of this is Plasmic Studio itself. See the application development tutorials to learn more.

Contributing

This repo contains the code for all Plasmic component store packages (plasmicpkgs), client libraries/SDKs, and examples.

Contributing to component store packages (plasmicpkgs)

These are the code component registrations that are available in Plasmic's central component store.

See the contributor instructions in plasmicpkgs/README.md.

Contributing to client libraries/SDKs (packages)

We use lerna to help us manage dependencies between the @plasmicapp/loader-* packages, (though we may pull in more packages to be managed by lerna, right now those are the ones with tight dependencies on each other).

Getting started

yarn lerna bootstrap  # inter-links all the lerna-managed packages together

We also make use of Verdaccio to locally test packages. This just stands up an npm registry that you can publish your test packages to.

yarn global add verdaccio
verdaccio &  # Runs the verdaccio server at http://localhost:4873

You'll need to update the verdaccio config file, at ~/.config/verdaccio/config.yaml, to instruct verdaccio to not use npmjs for our test packages:

packages:
  '@plasmicapp/*':
    access: $all
    publish: $all
    unpublish: $all
  '@plasmicpkgs/*':
    access: $all
    publish: $all
    unpublish: $all

Then kill and restart the verdaccio server:

verdaccio &

Development workflow

  1. Make some changes!

  2. If you're ready to test, run yarn local-canary. This builds canary versions of your packages to your local registry.

  3. Install the canary version into wherever you're trying to test, via yarn add ... --registry=http://localhost:4873

Release workflow

Run yarn bump to bump the versions of the changed packages. If you already have an existing git commit you want to use, do yarn bump --amend. Submit for code review.

Make user you are authenticating with npm as the plasmicapp user.

npm whoami # check who you are currently
npm login # if you were not plasmicapp

Ensure you have no outstanding unmerged commits or uncommitted changes.

Ensure you have pulled the latest changes from master.

Once your change has been approved and you're ready to release to npm, run yarn release. This will individually publish each package to npm.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].