Github url


by artf

artf /grapesjs

Free and Open source Web Builder Framework. Next generation tool for building templates without codi...

11.3K Stars 2.1K Forks Last release: 22 days ago (v0.16.17) BSD 3-Clause "New" or "Revised" License 3.2K Commits 105 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


Build StatusChatCDNJSnpmBrowserStack Status


GrapesJS is a free and open source Web Builder Framework which helps building HTML templates, faster and easily, to be delivered in sites, newsletters or mobile apps. Mainly, GrapesJS was designed to be used inside a CMS to speed up the creation of dynamic templates. To better understand this concept check the image below

GrapesJS - Style Manager

Generally any 'template system', that you'd find in various applications like CMS, is composed by the structure (HTML), style (CSS) and variables, which are then replaced with other templates and contents on server-side and rendered on client.

This demos show examples of what is possible to achieve: Webpage Demo - Newsletter Demo -

Table of contents


| Blocks | Style Manager | Layer Manager | |--|--|--| | GrapesJS - Block Manager| GrapesJS - Style Manager| GrapesJS - Layer Manager|

| Code Viewer | Asset Manager | |--|--| | GrapesJS - Code Viewer| GrapesJS - Asset Manager|

  • Local and remote storage

  • Default built-in commands (basically for creating and managing different components)


  • CDNs
    • UNPKG (resolves to the latest version)
    • CDNJS (replace
      with the current version)
  • NPM

    npm i grapesjs
  • GIT

    git clone

For the development purpose you should follow instructions below.


<link rel="stylesheet" href="path/to/grapes.min.css"><script src="path/to/grapes.min.js"></script>

<script type="text/javascript">
  var editor = grapesjs.init({
      container : '#gjs',
      components: '<div class="txt-red">Hello world!</div>',
      style: '.txt-red{color: red}',

You could also grab the content directly from the element with



Hello world!
<style>.txt-red{color: red}</style>
<script type="text/javascript">
  var editor = grapesjs.init({
      container : '#gjs',
      fromElement: true,

For more practical example I suggest to look up the code inside this demo:


GrapesJS uses Webpack as a module bundler and Babel as a compiler.

Clone the repository and install all the necessary dependencies

$ git clone $ cd grapesjs $ npm i

Start the dev server

$ npm start

Once the development server is started you should be able to reach the demo page (eg.




Check the getting started guide here: Documentation


API References could be found here: API-Reference


$ npm test




Find out more about plugins here: Creating plugins


If you like the project support it with a donation of your choice or become a backer/sponsor via Open Collective


Thanks to BrowserStack for providing us browser testing services


BSD 3-clause

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.