(My imaginary friend Claude and) I need to do a lot of plugin development, so I developed a bare-bones tool to pull ↔ push directly from the command line.
decode: the Bubble JSON into a local file structure into src/ for easy navigation
encode: changes back into the Bubble JSON and pushes it Bubble - dist/plugin.json
watch: watches the directory for changes and automatically encodes and pushes it to Bubble
each plugin can live in their own directory and be independent from other plugins.
allows me to use git locally
It’s now open source (or at least source available):
That’s pretty darn cool. How are you sending the JSON to Bubble? Are you using API keys? I’m intrigued because you’re making changes to the plugin code without ever touching bubble. Nice!
Just made an update to a plugin using Pled. Wow, editing plugins is fun again.
My imaginary friend Claude understood the assignment; he added a new field without touching the visual editor (I can’t wait to FutureMe to regret this decision…):
When adding custom fields through json and their unique IDs (e.g. Aah) - how did you get around breaking Bubble’s system when merging back into the plugin editor?
Thats damn cool. So by looking to the git, I understand you reverse engineered the bubble api to do that? Do you aslo update the files in Github synced repo or something?
Regarding the adding new custom fields or removing using the Github sync, I tried that and it broke the plugin editor UI - when trying to add fields there, it started to have very weird behavior.
Working on a command to initialize the directory pled init. You can even run pled init –react to have it add a couple of lines for a react-based plugin.
Yeah, I’m a bit iffy on this functionality. I just use the plugin editor to actually generate the code. One day I will badger @josh to help me create that functionality, but not just yet.
I’m that I could add something like
pled create element --name="My awesome element" --type=visual ...
or simply an interactive one
$ pled create
? What type of item would you like to create? (Use arrow keys)
❯ action (a)
element (e)
? Enter element name: My awesome element
? Select element type:
❯ visual
data
✓ Element "My awesome element" created successfully!