Publishing and updating components
Turn a piece of one of your Bubble apps into a reusable component so you (and, once approved, everyone) can drop it into other apps. You can do this two ways: ask your Buildprint agent to do it, or run the CLI yourself.
At this time, we are not approving submissions to the component marketplace. If you wish to do this in future, you're welcome to create your private components now and submit them when we begin accepting submissions.
The easy way: ask your agent
Whether you're in the Buildprint web app chat or working through your CLI agent, just describe what to publish:
"Package this Stripe checkout flow as a component."
"Publish our billing data structure to our workspace library."
"Update the webhook handler component with the changes I just made."
The agent assembles the component's files, writes its documentation, and runs the packaging step for you. This is the recommended path — you don't have to learn the file format.
What a component package contains
If you'd rather author it directly (or want to know what the agent produces), a component is described by a few files in your branch workspace:
library.json— the library it belongs to: slug, name, description, listing status (internalby default, orpublic), and an optional hero image.component.json— the component itself: slug, name, short description, status, categories, dependencies, the workspace files to include (nodes), the README path, and image paths.README.md— the component's long description. This is what people read on the component page, so it must explain what the component does and how it works. It's required to include these headings: Overview, How to apply, and Requirements.the workspace files and images referenced from
component.json.
Descriptions
Short description (
shortDescriptionincomponent.json, up to 120 characters) is the one-line summary shown on the component's card.Long description (your
README.md, up to 10,000 characters) is the full write-up shown on the component page. Anyone reading it should come away understanding what the component does, how to apply it, and what it requires.
// component.json
{
"manifestVersion": 1,
"library": "stripe-billing",
"slug": "checkout-flow",
"name": "Checkout Flow",
"shortDescription": "A checkout page and backend webhook pattern.",
"status": "public",
"categories": ["ui", "api"],
"dependencies": ["billing-data-structure"],
"nodes": ["pages/checkout", "api/webhooks/stripe"],
"readme": "README.md",
"images": ["images/cover.png"]
}Publishing or updating with the CLI
From your branch workspace, run:
buildprint components packageThis validates your manifests and README, bundles the referenced files, and uploads the package. Useful flags:
--dry-run— validate and build the package without uploading it.--library <path>/--component <path>— point at non-default manifest locations.
Updating a component is the same command: package it again with the same library and component slug, and Buildprint updates the existing component in place (new files, description, images, and status).
All component work goes through the Buildprint CLI (or the agent, which uses it). Don't edit published components by hand — re-package them so the catalog stays in sync.
Categories
Tag each component with one or more categories so people can find it:
database, ui, workflow, expression, api, plugin.
List the valid categories any time with:
buildprint components categoriesDependencies
If a component needs another component from the same library, list it under
dependencies (by slug). When someone installs your component, Buildprint pulls
in its dependencies too. A component can't depend on itself, and dependencies are
resolved within the same library.
Sharing on the marketplace
By default a library is internal - published only to your workspace. To put
it on the public marketplace, package the library with a public listing status.
It then enters Awaiting approval and a Buildprint admin reviews it before it
goes live.