Creating and Managing Landing Pages with React and GrapesJS

In today’s digital age, a well-designed landing page can make all the difference in the success of your online campaigns. React and GrapesJS are powerful tools that, when combined, enable developers and designers to create stunning and interactive landing pages easily. In this tutorial, we will walk you through the step-by-step process of installing React, integrating GrapesJS into your React application, and configuring it to manage assets and content efficiently. Additionally, we will explore how to create custom blocks, import Google fonts, and add CSS rules to customize your landing pages further. Let’s get started!

Install React:

React is a widely used JavaScript library for building user interfaces. To get started with React, follow these simple steps:

Steps to Install React.js:

First, ensure you have Node.js installed on your machine, which includes npm (Node Package Manager). Then, open your terminal and execute the following command to create a new React application:

npx create-react-app landing-page-app
cd landing-page-app

This will set up a new React project in a folder named “landing-page-app.” Now, you can start working on your landing page within this project.

Install GrapesJS:

GrapesJS is a powerful and customizable web page builder that we’ll integrate with our React application.

How to Install GrapesJS in React?

To install GrapesJS, use npm or yarn inside your React project’s root folder:

Using npm:

npm install grapesjs

Using yarn:

yarn add grapesjs

Now that you have React and GrapesJS set up, let’s proceed with configuring GrapesJS in your React component.


Configuring GrapesJS in your React component involves several steps. We’ll go through each one:

How to Configure GrapesJS in a React Component?

To integrate GrapesJS into your React component, follow these steps:

Import GrapesJS:

In your React component file (e.g., LandingPage.js), import GrapesJS as follows:

import React, { useRef, useEffect } from 'react';
import grapesjs from 'grapesjs';

Render the GrapesJS Editor:

Next, create a function to render the GrapesJS editor. You’ll also need a <div> element to hold the editor in your JSX code:

function LandingPage() {
  const editorRef = useRef(null);

  useEffect(() => {
    const editor = grapesjs.init({
      container: editorRef.current,
      // Add more GrapesJS configuration options here
  }, []);

  return (
    <div ref={editorRef}></div>

export default LandingPage;

With this code, GrapesJS should now be integrated into your React component. However, the editor might not yet have the desired functionalities like managing assets and content.

Looking for a Grapesjs Development Team?

Share the details of your request and we will provide you with a full-cycle team under one roof.

Get an Estimate

AssetManager: Upload and Display Pictures:

The AssetManager in GrapesJS allows users to upload and display images on their landing pages easily. Let’s configure it step-by-step:

Configure the AssetManager in GrapesJS to Manage Images:

To enable the AssetManager, you’ll need to follow these three steps:

Configure AssetManager

In the editor.init function, add the following code to configure the AssetManager:

const editor = grapesjs.init({
  container: '#gjs',
  // Add your configuration options here
  plugins: ['gjs-blocks-basic'],
  assetManager: {
    // Configure asset manager options here

Upload and Display Images

To upload and display images, add the following code inside the ‘assetManager’ configuration:

assetManager: {
  upload: 'your-upload-url',
  uploadFile: function(e) {
    // Handle file upload logic here
  assets: [
    // Add more image URLs here

Upload and Display Images:

Now, when you run your React application, GrapesJS will include an AssetManager panel, allowing you to upload and use images in your landing page design.

StorageManager and Database Record: Store and Load Content:

GrapesJS allows users to save their landing page content to a storage manager, making it easy to edit and load pages later. Here’s how to set it up:

Configure the StorageManager to Store and Load Content in GrapesJS:

To enable the StorageManager, you need to follow these steps:

Configure StorageManager

In the ‘editor.init’ function, add the following code to configure the StorageManager:

const editor = grapesjs.init({
  container: '#gjs',
  // Add your configuration options here
  plugins: ['gjs-blocks-basic'],
  storageManager: {
    // Configure storage manager options here

Store and Load Content:

To store and load content, you need to define your own implementation of the StorageManager. Here’s an example using a local storage approach:

storageManager: {
  type: 'local',
  autosave: true,
  autoload: true,
  stepsBeforeSave: 1,
  id: 'landing-page-', // Change this to a unique identifier for your landing page
  storeComponents: true,
  storeStyles: true,
  storeHtml: true,
  storeCss: true,

Creating Custom Blocks, Custom Styles, Importing Google Fonts, and Adding CSS Rules:

Customizing your landing pages is crucial to align them with your brand. GrapesJS enables you to create custom blocks, import Google fonts, and add CSS rules to achieve a unique look:

How Can I Create Custom Blocks in GrapesJS?

Creating custom blocks in GrapesJS involves defining the HTML structure of the block and adding it as a component:

const editor = grapesjs.init({
  // ... (previous configurations)
  blockManager: {
    blocks: [
        id: 'custom-block',
        label: 'Custom Block',
        content: '<div class="custom-block">Your custom content here</div>',
      // Add more custom blocks as needed

With this code, you’ve added a new custom block with the ID custom-block. Now, users can easily drag and drop this block into their landing pages.

How Can I Import Custom Styles and Google Fonts in GrapesJS?

To import custom styles and Google fonts into GrapesJS, you’ll need to use the styleManager and fontManager:

const editor = grapesjs.init({
  // ... (previous configurations)
  styleManager: {
    sectors: [
        name: 'Custom Styles',
        open: false,
        buildProps: ['background-color', 'color', 'font-size', 'font-family'],
  fontManager: {
    google: 'Google_Font_Name', // Replace with your desired Google Font


By following this tutorial, you have learned how to install React and GrapesJS, configure the GrapesJS editor, manage assets and content, and create custom blocks and styles. With this knowledge, you can now build stunning and interactive landing pages for your online campaigns with ease. Happy designing!

Share this article

Leave a comment