Skip to content

Drag and drop Visual CMS for React, Vue, Angular, and more

Notifications You must be signed in to change notification settings

rishiimmehra/builder

 
 

Repository files navigation

Next.js + Builder.io On-Demand ISR

Example of generating pages with Builder using Next.js ISR with on-demand revalidation.

Prerequisites

Before using this example, make sure you have the following:

  • A Builder.io account. Check out the plans, which range from our free tier to custom.
  • npm

A basic understanding of the following is helpful too:

Overview

To use this project, you need to do three things:

  1. Get a copy of this repo.
  2. Create a corresponding space in your account on Builder.io.
  3. Connect the two.

The next sections walk you through each step.

Clone this project

This example provides you with a ready-made application that you can copy locally and configure for use with your Builder.io account.

  1. At the command line, run the following command to create a local copy of the Builder.io repo:

    git clone https://github.com/BuilderIO/builder.git
  2. Change into the example application by using the cd command:

    cd builder/examples/next-js-on-demand-isr
  3. Open this directory in your favorite code editor. You'll come back here when you're ready to connect your application to your Builder space.

Connecting Builder.io to your application

To connect your Builder.io space and your application, set the model preview URL and get your API key as follows:

Setting the model preview URL

To enable Builder to open your site in the visual editor, you will need to provide a URL that we can open which has the Builder rendering component in it.

Go to the /models page in Builder and choose your page model.

Then, set the Preview URL to http://localhost:3000. Be sure to include the http://.

Image showing where to put the Preview URL

Note: once you deploy your updates, you will want to update this to a public URL, such as your live site or your staging site (e.g. https://your-site.com), so anyone on your team can connect to your site for visual editing

Getting your API Key

In the Account settings, copy your Public API Key. We're going to paste the API Key into your Next.js app in the next section.

Image showing where to get your API Key

In your code editor, configure .env with the Public API Key by adding a line to each file as follows, but using your Public API Key that you copied in the previous step. For example:

BUILDER_PUBLIC_KEY=08837cee608a405c806a3bed69acfe2d <-- replace this with your API Key

Setting up revalidation webhook

  • add a random REVALiDATE_SECRET to your .env file
  • Go to your page model setting
  • Click on page model, show advanced options, and then edit webhooks.
  • Point the webhook to the API endpoint, this can be localhost if you'd like, make sure to disable proxying as in the screenshot and pass the secret as a query param: http://localhost:3000/api/revalidate?secret=......

Dialogue for creating a new webhook on a model

  • You're all set now, to test try updating, publishing, deleting content from builder.

Running your application

To serve your application locally, install dependencies, serve, and view your preview.

  1. Install dependencies by entering the follw\owing at the command line.

    npm install
    
  2. Serve your application by running the following at the command line:

    npm run dev
    
  3. In your browser, go to http://localhost:3000 to see your application.

Experimenting

Now that you have a configured Builder.io application, you can try different features, such as creating a page. Create a new page entry, assign any URL, publish and preview. For more detail and ideas on creating pages, see Creating a landing page in Builder .

Deploy

You can deploy anywhere you like, but for this project we recommend Vercel. Deploy with Vercel

Next steps

About

Drag and drop Visual CMS for React, Vue, Angular, and more

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 98.4%
  • Shell 1.6%