AI App Builder Third-Party Packages in 2026: Five Ways to Add Somebody Else's Code
All eight AI app builders let your app use somebody else's code, and they mean five different things by it: a package registry, a real machine, a plugin marketplace, a design-system registry, or a snippet box. The mechanism decides who patches it.
On this page
Quick Answer
Ask any of these eight builders whether your app can use a third-party library and all eight say yes. In September 2026 that agreement is worth almost nothing, because the eight answers are not degrees of the same capability. They are five structurally different mechanisms, and the mechanism decides who is responsible for the code after it is in your app.
Two builders give you the public npm registry. Lovable documents that "Every Lovable project can use npm packages" and that you install them by naming one in chat.
Base44 now documents the same thing, with an approval step: "You can request to add npm packages, review the request, and approve installation, all from the AI chat inside your app editor."
Two give you a real package manager because they give you a real machine. Replit runs a shell and a filesystem, and
Bolt.new runs Node.js in the browser, which is why its documented ceiling is a language boundary rather than a package boundary.
One gives you a curated marketplace instead of a registry. Bubble documents "a collection of Bubble-developed plugins, and thousands of community-developed plugins", which is a different distribution model with a different failure mode.
One gives you a design-system registry. v0 defaults to shadcn/ui and warns that it "is specifically trained on the default implementations", so deviation costs generation quality rather than compatibility.
One gives you a snippet box. Softr has no package concept at all; third-party code arrives as pasted HTML, CSS and JavaScript in a Custom code block.
And one gives you npm inside a constraint most people will not anticipate. Webflow Code Components accept npm libraries but render inside a Shadow DOM, so any library that writes styles into the page head needs extra configuration to work at all.
The sentence that matters most is the one both npm builders volunteer. Base44, in its own documentation: "Base44 can't guarantee the quality, reliability, or security of any external package you install." Lovable, in its own documentation: "Lovable installs any public npm package you ask for, but it cannot guarantee the quality, security, or reliability of third-party code." The builder puts the code in. The builder tells you the code is your problem.
Third-party code across eight AI app builders, September 2026
Scroll to see more
| Builder | What you can add | How it gets in | Who maintains it afterwards | Documented limit |
|---|---|---|---|---|
| Any public npm package; private packages on Enterprise | Name it in project chat, no terminal step | You, by prompting; Bun records exact versions in a lock file | Packages built for other runtimes install without errors and do not work | |
| Public npm packages; separate curated component library | Ask in AI chat, then click Approve | Not documented on the npm page | Vendor disclaims quality, reliability and security of any package | |
| Whatever the environment supports; it is a real machine | Shell and filesystem, the conventional way | You, with conventional tooling | The Library panel is design templates, not code | |
| Any JavaScript framework that runs on the frontend | In-browser Node.js runtime | You, in the generated project | JavaScript only; PHP and Python are not compatible | |
| Bubble-made plugins plus thousands of community plugins | Install from the Plugins tab, configure keys there | The plugin author, not you and not Bubble | No npm concept; you get the marketplace or nothing | |
| Pasted HTML, CSS and JavaScript snippets | Custom code block, paid plans only | You, by editing the snippet | In single-page mode, header scripts run only once, on first load | |
| Other component libraries and frameworks; custom registries | Generation, or point it at a registry | You, in the exported project | Trained on shadcn/ui defaults; customisations may degrade output | |
| npm libraries inside Code Components | Conventional install plus a webpack configuration | You, in your component source | Shadow DOM; CSS-in-JS needs a Shadow Root provider |
Every cell is drawn from the vendor's own current documentation, listed in full at the end. Where a vendor does not address something, the cell says so rather than guessing.
Finding one: the mechanism decides who is on the hook, and nobody advertises that
The five mechanisms are not five points on a scale from restrictive to permissive. They allocate responsibility differently, and that allocation survives long after the build.
With a package registry, the code is yours the moment it installs. You chose it, you own the consequences, and both vendors that offer it say so explicitly. With a plugin marketplace, a third party wrote and maintains the plugin, and when it breaks against a platform update you are waiting on that author. With a snippet box, there is no supply chain at all, because there is no version and no update mechanism; what you pasted is what you have forever. With a design-system registry, you are not adding behaviour so much as steering generation. With a real machine, you have whatever the ecosystem has, including the parts that are nobody's job to keep working.
The practical test is a single question, and it is not the one people ask. Not can I add a library, but in eighteen months, when this library has a security advisory, what exactly do I do about it, and on whose schedule.
Finding two: on the two npm builders, maintenance is a prompt rather than a command
Lovable documents the whole lifecycle as conversation. Its own FAQ, on updating or removing a package: "Ask in the project chat. Prompts like 'remove the moment package' or 'update recharts to the latest version' work the same way as installing."
That is genuinely convenient and it is also a different operational model from the one most teams assume they are getting. There is no terminal, no manifest to edit by hand, and the documentation says so directly: "There is no terminal step or manual package.json editing." Version state is real underneath, because Lovable records it in a Bun lock file, but the interface to that state is natural language.
Base44's page documents installation and approval thoroughly and does not address updating or removal at all. That is an absence in the documentation we read, not a claim that it cannot be done, and it is the sort of gap worth resolving with the vendor before you build something load-bearing on a package.
Finding three: the failure mode that is not an error
The sharpest sentence in this whole comparison is Lovable's, and it describes a failure that looks like success:
Lovable, on packages built for other environments, verbatim: "Packages built for other environments, such as Electron (desktop apps) or Capacitor native plugins (mobile apps), install without errors but do not work in your published app."
An install that succeeds, a build that succeeds, and a feature that is silently absent in production. This is the category of problem that costs a day, because every signal you would normally check says the work is done. If you are shipping to a browser with a serverless backend, which is what these generated apps are, then a package's target runtime is a compatibility question you have to answer yourself, before you ask for it.
The same class of constraint appears on Webflow from a different direction. Code Components render inside a Shadow DOM, so, in Webflow's words, "some tools that inject styles into the global document.head need additional configuration to scope styles correctly." The library installs, the component renders, and the styling silently does not apply until you wrap it in a Shadow Root provider. Webflow ships utilities for the common CSS-in-JS libraries precisely because this bites.
And on Softr the equivalent trap is navigation. Its single-page-application guidance is explicit: "Scripts in the App header/App footer custom code execute only once, on the first page load. They won't re-execute when navigating between pages." A third-party widget pasted into the app header works on a hard refresh and quietly stops working for anyone who arrives by clicking a link.
Three builders, three different silent failures, none of which produces an error message.
Finding four: Base44 supports npm now, and a lot of writing about it has not caught up
This one is worth stating plainly because we have to correct ourselves on it. Until recently the standard shorthand for Base44, repeated across comparison writing including our own back catalogue, was no npm import. That was a real and material limitation, and it was cited as a reason to pick something else when a project needed a specific library.
It is no longer accurate. Base44 publishes a page titled Adding and using npm packages which describes browsing npmjs.com, naming a package in chat, and approving the install, and which lists animation libraries, chart utilities, date helpers, UI components and drag-and-drop logic as examples. It also ships an npm playground for previewing packages before you commit to them.
Two things follow. The first is a correction to our own archive, which we are recording rather than quietly patching: older Builderdex comparisons that treat no npm import as a live Base44 constraint are describing a state that has changed, and the current documentation supersedes them. The second is a general caution about this category. A capability boundary on an AI app builder is a fast-moving fact. It belongs in a dated note, not in a verdict, which is why we try to rest recommendations on architecture rather than on any single feature's presence.
Finding five: two words in this category mean something other than what you expect
If you evaluate by searching vendor documentation, two words will mislead you.
Library. On Replit, the Library panel is not packages. It is design starting points, and Replit says of its Inspiration tab that it "adds no code to your project". Replit does have excellent third-party code support, but it comes from having a shell and a filesystem, and you will not find it under that heading.
Marketplace. On Bubble it is the plugin ecosystem, on v0 it is Vercel Marketplace integrations that connect services to your chats, and on neither does it mean what it means on an ecommerce project. This is not a small annoyance; it is the reason a documentation search for marketplace returns mostly the wrong thing on two of these eight builders.
Bubble is also worth reading carefully on what a plugin actually is. Its documentation describes plugins as "extensions or modules that add specific features (such as accepting payments with Stripe) or new element types", installed and configured, with API keys, from a single Plugins tab. Note the separate thing with a similar name: Bubble's component library is its own pre-built UI, not third-party code, and the two are not interchangeable.
What to check before you commit
- Ask the maintenance question, not the capability question. Every builder here can add third-party code. Find out what updating it looks like eighteen months from now, and who is on the hook when it breaks.
- Check the target runtime of any package you are counting on. On the npm builders, a package for the wrong runtime installs cleanly and does nothing. Confirm it is built for a browser with a serverless backend before it becomes load-bearing.
- On Bubble, read the plugin's own maintenance history before the feature list. A community plugin is a dependency on an individual author. That is a legitimate trade and it should be a conscious one.
- On Softr, decide early whether you are in single-page mode. It changes how pasted scripts behave, and the difference only shows up when a visitor navigates rather than reloads.
- On Webflow, budget for the Shadow DOM. If your component library is CSS-in-JS, the integration work is real and is documented up front.
- On v0, treat leaving shadcn/ui as a generation-quality decision. The vendor says the model is trained on the defaults. You can use other libraries; expect to correct more output.
- Check whether private packages are a plan gate. On Lovable the managed registry is an Enterprise feature and is in beta, which matters if your design system already ships as a private package.
If the code the builder writes is the thing you care about keeping, the adjacent question is who actually owns the output and on what terms, because a package is only as portable as the project it sits in.
Verdict, September 2026
For a team that expects to pull in real libraries and keep them current, Replit and Bolt.new are the honest picks, because a shell and a real runtime mean you are using the JavaScript ecosystem rather than a curated slice of it. Bolt's constraint is clearly documented and easy to check against: JavaScript only, which is a language decision rather than a package one.
For a team that wants npm without operating anything, Lovable is the most thoroughly documented option in this group, including the parts that are inconvenient. Naming the wrong-runtime failure in its own documentation is the kind of disclosure that saves somebody a day, and the managed registry gives an enterprise a real answer for private code, with the plan gate stated up front.
Base44 has closed the gap that used to disqualify it here, and the approval step is a sensible piece of design. Verify the update and removal path with the vendor before you depend on a package, since the current documentation does not cover it.
Bubble is the strongest option in this group if what you need already exists as a plugin, and the weakest if it does not, because there is no fallback to a package registry. Judge it on the specific plugins your project needs, not on the size of the catalogue.
Webflow and v0 both accept third-party libraries with a named, documented constraint attached, which is a fair trade as long as you price the constraint in. Softr is the one to be careful with if third-party code is central to your plan, because a snippet box has no versions and no update path, and its single-page behaviour changes how snippets run.
One thing is true across all eight, and it is the note to end on. If a package touches native code, the builder stops being the relevant actor entirely, and shipping the change becomes an app store problem rather than a build problem.
Sources
- Lovable, "Using npm packages", docs.lovable.dev (2026): https://docs.lovable.dev/tips-tricks/npm-packages
- Lovable, "Managed registry (Beta)", docs.lovable.dev (2026): https://docs.lovable.dev/features/managed-registry
- Base44, "Adding and using npm packages", docs.base44.com (2026): https://docs.base44.com/Building-your-app/NPM-packages
- Base44, "Adding components to your app", docs.base44.com (2026): https://docs.base44.com/Building-your-app/Components-library
- Bolt.new, "Supported technologies", support.bolt.new (2026): https://support.bolt.new/concepts/supported-technologies
- Replit, "Library panel", docs.replit.com (2026): https://docs.replit.com/design/library-panel
- Bubble, "Plugins tab", manual.bubble.io (2026): https://manual.bubble.io/help-guides/getting-started/navigating-the-bubble-editor/tabs-and-sections/plugins-tab
- Bubble, "The component library", manual.bubble.io (2026): https://manual.bubble.io/help-guides/design/the-component-library
- Softr, "Custom Code Block Overview", docs.softr.io (2026): https://docs.softr.io/custom-code/custom-code-block-overview
- Softr, "SPA Custom Code Guidelines", docs.softr.io (2026): https://docs.softr.io/custom-code/spa-custom-code-guidelines
- Webflow, "Frameworks and libraries", developers.webflow.com (2026): https://developers.webflow.com/code-components/frameworks-and-libraries
- v0, "Design systems", v0.app (2026): https://v0.app/docs/design-systems
All twelve source URLs were verified to return HTTP 200 on September 23, 2026 before citation.
Written by
Builderdex EditorialFrequently asked questions
Can every AI app builder use third-party libraries?
All eight builders we track can use third-party code in some form, but they do it in five structurally different ways. Lovable and Base44 install packages from the public npm registry. Replit and Bolt.new give you a real runtime, so you use the ecosystem conventionally. Bubble gives you a plugin marketplace instead of a registry. v0 gives you a component and design-system registry. Softr has no package concept and takes pasted code snippets. The mechanism matters more than the yes, because it decides who maintains the code afterwards.
Does Base44 still block npm imports?
No. Base44 documents a page called Adding and using npm packages, which describes browsing npmjs.com, naming a package in the AI chat, and clicking Approve to install it. The widely repeated shorthand that Base44 has no npm import, which appears in older comparison writing including our own back catalogue, describes a state that has changed. The vendor also ships an npm playground for previewing packages.
Who is responsible for a third-party package once it is in my app?
You are, and both npm builders say so in their own documentation. Base44 writes that it cannot guarantee the quality, reliability or security of any external package you install. Lovable writes that it installs any public npm package you ask for but cannot guarantee the quality, security or reliability of third-party code. On Bubble the situation is different again, because a community plugin is maintained by its author rather than by you or by Bubble.
How do I update or remove a package on Lovable?
By prompting. Lovable's documentation states that prompts such as remove the moment package or update recharts to the latest version work the same way as installing, and that there is no terminal step or manual package manifest editing. Version state is real underneath, because Lovable records exact versions in a Bun lock file, but the interface to it is natural language rather than a command line.
Why did my package install successfully but not work?
Most often because it targets the wrong runtime. Lovable documents this directly: packages built for other environments, such as Electron for desktop apps or Capacitor native plugins for mobile, install without errors and do not work in your published app. These generated apps run in a browser with a serverless backend, so check a package's target environment before you depend on it. Webflow has a related trap, where a library installs but its styles do not apply until it is scoped to the Shadow DOM.
What does the Library panel in Replit contain?
Design starting points, not code packages. Replit's documentation describes three tabs, Templates, Inspiration and Library, and says of the Inspiration tab that it adds no code to your project. Replit does have strong third-party code support, but it comes from having a shell and a filesystem rather than from anything under that heading. This is one of two words in this category, along with marketplace, that will mislead a documentation search.
Can I use private or internal packages?
On Lovable, yes, on the Enterprise plan, through a managed registry that is currently in beta. It provides one privately hosted npm registry per workspace, set up by a workspace owner or admin, and any project in the workspace can install from it. Lovable names internal design systems, shared utility libraries and proprietary API clients as the intended use cases. The other builders in this comparison do not document an equivalent private registry.
Related comparisons
AI App Builder Built-In Payments (2026): Who Ends Up in Your Money Path?
Every AI app builder can take a payment. The real question is who becomes the legal seller and who takes a cut first. A primary-source comparison of eight builders sorted into four money-path tiers, from own-processor to merchant of record to app-store billing.
AI App Builder Vendor Lock-In (2026): The Five Layers, and Why Your Weakest One Sets the Bill
A 2026 scorecard of vendor lock-in across six AI app builders, scored on five independent layers: code, data, identity, runtime, and what the exit itself costs. Your migration bill is set by your weakest layer, not your average.
Base44 Review (2026): Credits, Code Ownership, and the Verdict
An independent Base44 review for 2026: the credit system, what code ownership really means after the Wix deal, why Trustpilot sits at 2.9 while testers say 4.9, and who should actually use it.