Bringing your own data -- what am I missing?

I signed up for Builder.io two years ago to test it out for a project. Things stalled, but I’m excited to be back at it again!

A lot has changed in two years, though (which is great!), and either connecting your own data source is one of those things, or I’m misremembering. I have a database of books – millions of them, so it’s not data I’ll be migrating anywhere. I need to use that data on my builder pages, and the docs seem to suggest that unless I want the entirety of Builder.io customers to be able to integrate with my books database, I need to write a private plugin. Seems doable. Really (almost entirely) under-documented, but I could probably figure it out.

But that’s where my understanding breaks down. According to the pricing page I need an Enterprise subscription for $$$$ to use a private plugin (even though I’m the one writing it?). But the docs for data connector plugins points you to a github repository that tells you that you can just host your plugin at a URL and add that URL right inside the builder.io integrations page, which I appear to have the ability to do in my current free account.

Which is it? Do I only have access to add my own integration because I have an early bird account? Are people really using builder without ever connecting it to their own data, or paying big money for the privilege? Have I misunderstood?

Mystery solved. I created a quick plugin to pull some data from my DB, and Builder told me my account can’t use it at my tier when I plugged the URL in.

What a bummer. I really like Builder (particularly for the Qwik API) but this seems like such a basic and obviously necessary thing to put behind the paywall at all – much less the tier so high the price can’t be advertised. For someone like me trying to build a proof of concept so that I can sell my counterparts on this solution, that kind of begs me to head to the competition where connecting to your data is free. But I’ll reach out to sales and see what’s up.

Hi @Tom360, if you have a public API then you can add your data source in the Visual Editor’s Data tab. For migrating data to Builder you can use the Write API. It sounds like neither of those are options for you so a private plugin on the enterprise plan would probably suit your needs. We do work closely with and guide our enterprise customers on developing these plugins when needed! Alternatively you can use custom components to connect to your database.

Oh gosh @ancheetah, I don’t know how I missed that, but I certainly see it now. Thank you for pointing that out! That’s not quite as friendly to my marketing and design team as the plugin would be, but it could be an option for the proof-of-concept. Is there a way I haven’t found yet to add headers to the API call? Our API is versioned and requires an “x-api-version” header to be set. There are workarounds if not, but it sure would be handy!

hey @Tom360 - you don’t need an enterprise subscription to make a plugin. to make a public plugin, you just send a PR to our OSS repo

only if you want your plugin to be private only to you does it require any level of subscription (this is similar to other tools like Figma who has the same restriction). this is partially for security purposes, because plugins give deep access to the Builder.io editor, the PR process allows us to review for security best practices (vs allowing anyone to use plugins created by anyone without any controls in place, which may do something malicious if not careful)

so as long as your plugin can be used by others, you can absolutely make it (we would love to see more public contributions), just send a PR to include your plugin the plugins folder

Hi @steve, thanks for the outline! I’m not sure a public plugin makes sense for this use case, though – this is an integration with our internal, private, and proprietary book database and ecommerce product catalog, rather than a public service that any other party could ever be allowed to make use of.

Makes perfect sense. One thing you could consider - if your plugin truly provides a functionality Builder is missing (or doesn’t make as easy as it could), e.g. a more generic way to configure data providers, you may be able to make a more generic plugin that suits your needs.

E.g. a plugin that lets you create new data providers, with a simple UI to configure a couple things like what the URL mapping is. That way you could make what you need, merge it in as public, and then configure the public plugin to your specific needs in your Builder space (e.g. provide the configuration of how to connect to your specific backend, right inside the plugin UI)

In that case the community benefits and you would too. If that would interest you feel free to jump into our discord, we have a #builder-plugins channel where we’d be happy to help and answer Qs