PRO WORKSHOP: Node.js VM - Developing an External Plugin System within Your Web App

DeveloperWeek PRO STAGE A
Join on Hopin

Douglas Gubert
Rocket.Chat, Tech Lead

Douglas is a Tech Lead at Rocket.Chat. When he is not coding and worrying about developer experience and code semantics, he is studying random (human) languages or playing video-games with his kid (or by himself)

Ever thought about building an app store for your own platform? With the evolution of no code automation tools, having an external plugin system might mean endless possibilities and usage with just 1 click directly within the platform you've created yourself.

In this talk, we'll the covering the story of how Rocket.Chat built it's own open source Apps Engine on top of the NodeJS architecture, with the help of the Node.js VM module - a module that can do wonders in creating an isolated space or a virtual machine for external apps to run within your own server, giving you a way to have external plugins interact with your platform.

One of the unique advantages of the open source Rocket.Chat platform is the ability to self-host it in an air-gapped environment. This allows our users to really own their data by keeping it safe inside their own infrastructure. This premise could not be hindered by our framework, though; we wanted all our workspaces to have access to Rocket.Chat Apps without needing to leave the comfort of their intranet. This prompted us to follow the rather "uncommon" path of having those apps running inside a Rocket.Chat server.

In this talk we'll be covering a masterclass on Node.js VM module alongside our experiences, learnings, achievements and failures around it.