Question about integrating Builder.io with custom backend CRUD APIs

Hello,

I’m currently working on integrating Builder.io into an Angular-based application, and I would appreciate your guidance on a specific use case.

In our application, we have a backend (Java/Quarkus) that manages a business entity called “Card”, with the following structure:

  • id (Long)
  • title (String)
  • description (String)
  • image (String)
  • roles (String)
  • sectors (String)

At the moment, these cards are managed via our own backend APIs (add/edit/delete/get) and stored in our database. On the frontend, they are displayed as card components (image, title, description) that are not integrated with Builder.io yet.

We are exploring the possibility of using Builder.io to manage and display these cards more flexibly (e.g., via visual editing, layout control, and content management). However, we would like to keep our backend as the source of truth and continue using our existing CRUD APIs.

Our main questions are:

  1. Is there a recommended approach to trigger our backend APIs (POST/PUT/DELETE/GET) directly from Builder.io (our CMS), so that changes made in Builder are persisted in our database?

  2. Are there best practices or example implementations for integrating Builder.io with an external backend that remains the single source of truth for business entities?

Any documentation, examples, or architectural recommendations would be greatly appreciated.

Thank you in advance for your support!

Hi there,

This is a very common (and smart) way to approach Builder.io with an existing backend.

1. Can Builder.io trigger your backend APIs (CRUD)?

Yes — Builder can call your APIs, but it doesn’t automatically replace your backend or database.

You have a few options:

  • Forms / actions in Builder can POST/PUT data directly to your APIs

  • Custom JavaScript in Builder can call your endpoints on user interactions

  • Webhooks (recommended) can notify your backend whenever content is created/updated in Builder, so you can sync it to your database

That said, Builder is not designed to be your primary data store for structured entities like “Cards.”

2. Best way to integrate (recommended architecture)

Since your Quarkus backend is your source of truth, the best approach is:

Keep all card data in your backend
Use Builder purely for layout, presentation, and visual editing

Typical flow:

  1. Angular app fetches cards from your backend APIs

  2. Pass that data into Builder as state/props

  3. Use Builder to visually control how cards are displayed

This gives you:

  • Full control over your data model and business logic

  • No risk of data sync issues

  • Flexibility for non-devs to design UI in Builder

Thanks,