Skip to content

Quickly and easily integrate Builder.io as a visual CMS for your Nuxt application.

License

Notifications You must be signed in to change notification settings

Joepocalyptic/nuxt-builderio

Repository files navigation

Nuxt Builder.io Module

npm version npm downloads License Nuxt

This is an unofficial Nuxt module for Builder.io. It allows you to quickly and easily integrate Builder.io as a visual CMS for your Nuxt application.

This module is currently in development. It is not yet intended for production use and there will be bugs. Feel free to help out by reporting bugs and submitting pull requests!

Furthermore, this module uses Builder's second-generation Vue SDK, which is currently in beta.

Features

  • Built for Nuxt 3
  • Automatically register custom components
  • Opinionated defaults to get started with no configuration

Quick Setup

  1. Add the nuxt-builderio dependency to your project
# Using pnpm
pnpm add -D nuxt-builderio

# Using yarn
yarn add --dev nuxt-builderio

# Using npm
npm install --save-dev nuxt-builderio
  1. Add nuxt-builderio to the modules section of nuxt.config.ts
export default defineNuxtConfig({
  modules: [
    'nuxt-builderio'
  ]
})

That's it! Read the documentation for more information, including configuration and optimization options.

You can get started extremely quickly by using the provided BuilderContent component in a page:

<template>
  <BuilderContent
    throw-error
    @load="onContentLoaded"
  />
</template>

<script setup lang="ts">
// You can directly access the content returned by Builder with the `@load` event
const onContentLoaded = (content) => {
  console.log(content)
}
</script>

This will automatically render Builder content with full support for SSR. If no path is provided, it will default to the current page's path. If no model is provided, it will use the defaultModel provided in the module options (this defaults to page).

The throwError prop will cause the component to throw a 404 error if the content is not found.

Development

# Install dependencies
pnpm install

# Generate type stubs
pnpm run dev:prepare

# Develop with the playground
pnpm run dev

# Build the playground
pnpm run dev:build

# Run ESLint
pnpm run lint

# Release new version
pnpm run release