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.
Framework | Gen 1 | Gen 2 |
---|---|---|
Qwik | n/a | Recommended |
React* | Recommended | |
Remix | Recommended | |
Hydrogen | Recommended | |
Vue** | Recommended | |
Svelte | n/a | Recommended |
Solid | n/a | Recommended |
React Native | n/a | Recommended |
Angular | Recommended | |
Angular SSR | Recommended |
*Includes React-based frameworks such as Gatsby, Next.js Pages Router, and Next.js App Router.
**Includes Nuxt.
The table below outlines the features available for Builder's SDKs.
Feature | React (Gen1) | React (Gen2) | Vue | React Native | Svelte | Qwik | Angular (Gen1) | Angular (Gen2) | HTML API |
---|---|---|---|---|---|---|---|---|---|
✅ | ✅ | ✅ | n/a | ✅ | ✅ | ⚠️ | ✅ | ✅ | |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ❌ | |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | |
✅ | ✅ | ✅ | n/a | ✅ | ✅ | ✅ | ✅ | ✅ | |
✅ | ✅ | ✅ | 🔵 | ✅ | ✅ | ✅ | ✅ | ✅ | |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ⚠️ | |
✅ | 🔵 | 🔵 | 🔵 | 🔵 | 🔵 | ✅ | 🔵 | ✅ | |
✅ | ✅ | ✅ | n/a | ✅ | ✅ | ✅ | ✅ | ✅ | |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ⚠️ |
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.
Framework | Gen 1 | Gen 2 |
---|---|---|
Qwik | n/a |
|
React* |
|
|
Vue** |
|
The Vue Gen 2 is the recommended SDK. |
Svelte | n/a |
|
Solid | n/a |
|
React Native | n/a |
|
Angular |
|
|
*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.