As of now, it is possible to incorporate whatever node modules you’d like into your server side action. To do so, check the “This action uses node modules” box beneath the action code editor, and paste in or compose your custom package.json. Only the dependencies section is needed. After this, you’ll be prompted to build a deployment package for your action.
I don’t know EXACTLY what’s possible because I have not seen any actual implementations, but just think of real time communications, like real real time, not “real” time, controlling IoT/robotics stuff without a middleman company, create, store and/or send PDF files through email or to another app via API without user interaction… and the list goes on.
That’s what I envision. I mean, someone is making a native app generator… that’s great enough for me.
For those who don’t know, Node modules are packages of functions that can be merged into your Node application for use. A simple example is that of Moment, one of the most popular JS libraries to work with dates. There are many reasons why packages see global use, but one of them is if the work done by the few is already functional, portable, usable and most importantly useful. Instead of you investing all the time and energy in building your own set of date functions, you can simply import a package like Moment and off you go.
Despite Bubble offering access to server-side action development (which runs on Node) as well as Request support (one of the most popular HTTP request clients), you weren’t able to import any of the 750K+ modules available therefore being a strict limitation of Bubble plugin development. With the ability to import packages now available to the community, plugin developers (like us) and those looking to develop plugins can do much more in much less, which is what makes this a big deal for all Bubblers.
I’m quite familiar with npm and the various node modules floating around, but wasn’t aware there was a limitation before with the Bubble plugin system. This makes sense to me now, and honestly is a bit surprising to me that it’s just now a new thing. I would have assumed this was part of the plugin system from the outset, but I guess I was wrong! Thanks for the clarity.
… with an interface that accepts no arguments yields a progress bar that takes nearly 6 seconds to traverse the screen in a tester app (running on free version). And properties and context are required, so you can’t speed things up by trashing them if you don’t need 'em.