Data binding & integrations

Build every customer's website from the data your platform already holds.

Hosted website builders force you to copy your database records into their cloud over external APIs. ChaiBuilder runs in your stack, so your server-side data providers query your own database or internal API directly, turning listings, inventory, locations, menus, and staff profiles into live, cached customer pages automatically.

Your platform database
listingslocationsmenu_items
Server-side data providers

Fetch records and resolve bindings before render

Customer website

{{global.*}} and {{pageType.*}} bindings in every block

Write a server function. Bind its output to any block.

Blocks in the browser never fetch database records directly. Your server-side data providers fetch the data before render, resolve {{bindings}} on the server, and serve a fast, cached page.

01

Global data providers

Site-wide records

Provide values available on every page of a customer's site: business name, phone number, address, opening hours, and social links ({{global.businessName}}, {{global.phone}}).

02

Page-type providers

One layout, hundreds of dynamic URLs

Design a template page once (such as a property listing page, vehicle detail page, menu item page, or doctor profile) and automatically generate a dedicated, SEO-cached URL for every record in that customer's database.

03

Block-level providers & conditional visibility

Feed live data into a specific block wherever a customer places it (such as a "Today's Specials" grid or "Open Now" badge), and use repeater blocks or conditional visibility to show or hide sections based on the customer's active features.

Change one record in your database. Revalidate only the pages that show it.

When a customer updates a price, adds a new location, or marks an item out of stock in your main SaaS dashboard, their website updates automatically with zero full-site rebuilds.

Granular cache tags per record

Every data provider returns cache tags for the specific records it read (for example, menu-site_123-item_42).

Instant webhook or server revalidation

When that record changes in your core system, fire a webhook at /api/revalidate (or call revalidateTag directly if ChaiBuilder runs in the same Next.js app) and only the cached pages displaying that record regenerate.

Connects to the auth, APIs, and storage you already run

Your existing authentication & SSO

Resolve the request context from your own auth session to pass ChaiBuilder the active site ID, user ID, and RBAC role permissions. Your customers open the Website tab inside your app without logging in twice.

Custom server actions (ChaiBaseAction) & lifecycle hooks

Expose validated backend operations to the builder (such as checking inventory or submitting a booking request) and subscribe to page lifecycle hooks whenever a customer publishes a page or changes a URL slug.

Custom MCP tools for AI agents

Register custom tools on the built-in /api/mcp server so AI agents in Claude or Cursor can query your platform's live records while drafting pages for a customer.

Explore the MCP server

Any CMS (or none) & your own S3/R2 storage

ChaiBuilder stores visual pages in its own independent PostgreSQL or SQLite tables. Use the optional Payload CMS starter for structured blog collections, wire in your existing headless CMS via provider functions, or run purely against your own application database, with all media stored in your S3 or Cloudflare R2 bucket.

Your engineers write it, or our Build Services team wires it for you

For most platforms, initial integration is a global provider for customer profile data, one or two dynamic page types, and a handful of custom React blocks. We can scope and build that integration with you during your pilot.

lockup-horizontal-light.png

The website builder for agents and humans. Owned by you. The website module for platforms and agencies that run many sites, self-hosted on Next.js.

© ChaiBuilder. All rights reserved.