Loading...
Loading...
Bubble.io plugin development rules, API reference, and coding standards. Use when working on any task in this repo: writing, reviewing, refactoring, or creating initialize.js, update.js, preview.js, header.html, element actions, client-side actions, server-side actions (SSA), Plugin API v4 async/await code, JSDoc, setup files, README, CHANGELOG, marketplace descriptions, or field tooltips. Also use for security audits, code review, debugging, and publishing plugins. Covers instance/properties/context objects, BubbleThing/BubbleList interfaces, data loading suspension, DOM/canvas rules, element vs shared headers, exposed states, event handling, ESLint standards, and Bubble hard limits.
npx skill4agent add afaraha8403/bubble-io-plugin-boilerplate bubble-io-pluginsproject-root/
actions/
client/ # Client-side workflow actions
<action-name>/
action-setup.md
client.js
params.json # Optional: parameter definitions
server/ # Server-side actions (runs on Bubble's Node.js server)
<action-name>/
action-setup.md
server.js
elements/ # Visual plugin elements
<element-name>/
element-setup.md
initialize.js # Runs once on element load
update.js # Runs on every property change + data load
preview.js # Renders placeholder in Bubble Editor
header.html # <head> content: CDN links, external scripts
actions/ # Element-specific workflow actions
<action>.js
eslint.config.mjs # ESLint flat config
package.json # ESLint scripts and dependencies
README.md| Local file | Bubble Editor field |
|---|---|
| Function: initialize |
| Function: update |
| Function: preview |
| Element Header |
| Element Action code |
| Server-Side Action code |
| Shared/Element Header (wrap in |
'not ready'try/catcherr.message === 'not ready'document.bodyinstance.canvascontext.keysmyPlugin-rootasyncawait.get().length()fetch()<script><meta><link><body>$(document).ready()initialize.jsupdate.jspreview.jsheader.htmlinstancepropertiescontext| File | Load when... |
|---|---|
| bubble-platform.md | Element lifecycle, DOM/canvas, data loading, headers, preview, events, debugging, hard limits. |
| bubble-api.md | |
| actions-guide.md | Client vs server actions. When to use which. SSA Node modules, return values, option sets. |
| code-standards.md | ESLint config, syntax rules, security, performance, error handling. |
| documentation.md | JSDoc, setup files, marketplace descriptions, field tooltips, changelog, publishing. |
assets/templates/| Template | Use for |
|---|---|
| New element — container setup, |
| New element — data-first pattern, change detection, namespaced listeners |
| New element — editor placeholder with responsive sizing |
| New element — idempotent |
| New client-side action |
| New server-side action (v4 async/await) |
eslint.config.mjs.vscode/settings.jsonsource.fixAll.eslint