Strapi plugin logo for Website Builder

Website Builder

A plugin for Strapi Headless CMS that provides the ability to trigger website builds manually, periodically or through model events.

strapi-plugin-website-builder

A plugin for Strapi that provides the ability to trigger website builds manually, periodically or through model events.

Downloads Install size Package version

Requirements

The installation requirements are the same as Strapi itself and can be found in the documentation on the Quick Start page in the Prerequisites info card.

Supported Strapi versions

  • v4.x.x

NOTE: While this plugin may work with the older Strapi versions, they are not supported, it is always recommended to use the latest version of Strapi.

Installation

npm install strapi-plugin-website-builder

or

yarn add strapi-plugin-website-builder

Configuration

The plugin configuration is stored in a config file located at ./config/plugins.js.

The plugin has different structures depending on the type of trigger for the build. Each of the following sample configurations is the minimum needed for their respective trigger type.

Manual Configuration

module.exports = ({ env }) => ({
  // ...
 'website-builder': {
    enabled: true,
    config: {
      url: 'https://link-to-hit-on-trigger.com',
      trigger: {
        type: 'manual',
      },
    }
  },
  // ...
});

Cron/Periodic Configuration

module.exports = ({ env }) => ({
  // ...
 'website-builder': {
    enabled: true,
    config: {
      url: 'https://link-to-hit-on-trigger.com',
      trigger: {
        type: 'cron',
        cron: '* * 1 * * *',
      },
    }
  },
  // ...
});

Event Configuration

module.exports = ({ env }) => ({
  // ...
 'website-builder': {
    enabled: true,
    config: {
      url: 'https://link-to-hit-on-trigger.com',
      trigger: {
        type: 'event',
        events: [
          {
            params: (record) => ({
              id: `${record.id}_${record.title}`
            }),
            model: 'recipe',
            types: ['create', 'delete'],
          },
          {
            params: {
              page: "home"
            },
            model: 'homepage',
            types: ['update'],
          },
        ],
      },
    }
  },
  // ...
});

IMPORTANT NOTE: Make sure any sensitive data is stored in env files.

The Complete Plugin Configuration Object

PropertyDescriptionTypeRequired
urlThe trigger URL for the website build.StringYes
headersAny headers to send along with the request.ObjectNo
bodyAny body data to send along with the request.ObjectNo
triggerThe trigger conditions for the build.ObjectYes
trigger.typeThe type of trigger. The current supported options are manual,cron and eventStringYes
trigger.cronThe cron expression to use for cron trigger. The supported expressions are the same as in the strapi docsStringOnly if the type is cron
trigger.eventsThe events to use for the event trigger.ArrayOnly if the type is event
trigger.events.urlThe model specific url to hit on event trigger.StringNo
trigger.events.paramsThe model specific params to add on event trigger.Object or FunctionNo
trigger.events.modelThe model to listen for events on.StringYes
trigger.events.typesThe model events to trigger on. The current supported events are create, update, delete, publish and unpublish. Publish/Unpublish is only supported for non media models.ArrayYes

Usage

Once the plugin has been installed and configured, it will show in the sidebar as Website Builder. To trigger a manual build select the Website Builder menu item in the sidebar and click the Trigger Build button to start a build process.

Bugs

If any bugs are found please report them as a Github Issue

Install now

npm install strapi-plugin-website-builder

Last updated

151 days ago

Strapi Version

4.0 and above

Author

github profile image for @ComfortablyCoding
@ComfortablyCoding

Useful links

Create your own plugin

Check out the available plugin resources that will help you to develop your plugin or provider and get it listed on the marketplace.