New guide: AI is in production. Is your governance?

Announcing Visual Copilot - Figma to production in half the time

Builder.io
Builder.io
Contact sales

New guide: AI is in production. Is your governance?

Announcing Visual Copilot - Figma to production in half the time

Explore the key distinctions and functionalities between the first and second generations of Builder SDKs using the comprehensive comparison and feature tables below, tailored to help you select the most suitable SDK for your development needs.

The Builder SDKs are divided into two generations, Gen 1, and Gen 2. Use the table below to find the recommended SDK generation for your framework.

*Includes React-based frameworks such as Gatsby, Next.js Pages Router, and Next.js App Router.

**Includes Nuxt.

Gen 1 SDK supports Angular versions up to 18. Gen 2 SDK requires Angular 17 or higher and is the recommended choice for new projects and Angular 19+.

The table below outlines the features available for Builder's SDKs.

Legend

✅ Full support

🔵 In development

⚠️ Partial support
(hover for a tooltip with details)

❌ Not supported

Legend

✅ Full support

🔵 In development

⚠️ Partial support
(hover for a tooltip with details)

❌ Not supported

Rendering your Builder content differs between Gen 1 and Gen 2.

In Gen 1 SDKs the component is BuilderComponent.

import { BuilderComponent } from '@builder.io/react';

<BuilderComponent model="page" content={contentJSON} />

For recommended usage and a description of the props and methods of BuilderComponent, visit Using BuilderComponent.

Fetching data differs between Gen 1 and Gen 2.

In Gen 1, import builder and use the get() or getAll() helper:

import { builder } from '@builder.io/react';

const page = await builder.get('page', {
  fields: 'data.url, name',
});

const pages = await builder.getAll('page', {
  fields: 'data.url,name',
});

For more information, visit the Content API documentation.

Registering custom components differs between Gen 1 and Gen 2.

In Gen 1, import the Builder object and use registerComponent():

import { Builder } from '@builder.io/react';
import { MyHero } from './MyHero';

Builder.registerComponent(MyHero, {
  name: 'Hero',
  inputs: [
   { name: 'title', type: 'string' },
  ],
});

For more information on custom components, visit Registering Custom Components.

Configuring the Visual Editor differs between React Gen 1 and React Gen 2.

In Gen 1, import Builder and use the register() helper:

import { Builder } from '@builder.io/react';

Builder.register('insertMenu', {
  name: 'Our components',
  items: [
    { name: 'Hero', item: 'Hero' },
    { name: 'Double Columns', item: 'DoubleColumns' },
    { name: 'Triple Columns', item: 'TripleColumns' },
    { name: 'Dynamic Columns', item: 'DynamicColumns' },
  ],
})

The table below lists the available package names by framework and generation. Use these names for installs and imports.

*Includes React-based frameworks such as Remix, Hydrogen, Gatsby, Next.js, and App Router.

**Includes Nuxt.

For fetching in advanced use cases, read Using Enrich to Fetch References and Symbols.

Was this article helpful?