About Wrapper.js

What is it?

Right now, it’s an Open Source NPM package that comes with cli commands to:

  • creates full stack applications as a monorepo, which sets up and configures Next.js, SLS Framework and Terraform together
  • orchestrate full stack localhost dev environment and deployment / destruction of a cloud based environment
  • straight forward management of multiple cloud environments, through the use of a DRY full stack repository that is configured with AWS Secrets
 
In the future, the aim is to expand this further by adding:
  • various ‘out of the box’ templates that can be easily spun up and configured
  • different technologies other than Next.js, SLS Framework and Terraform, that you can use to create your apps
wrapper.js

Why use it?

Because you can spin up, configure, develop and deploy the templated apps super quick.

Looking at the WebXR template as an example, you can spin up a WebXR app that can render across multiple devices (e.g Macbook / Oculus Quest / HoloLens etc) and let people interact with each other in real time.

WebXR Gif

Something like this has various complexities to juggle (WebXR 3D logic / rendering on Front End, real-time Websocket communication for positional data, Front End and Back End authentication, deployment of the cloud resources for storage / api’s etc) – as summarised in the below diagram.

This NPM package, wraps it all up with a series of cli commands that allows you to crack on with development / deployment! Or if you’d prefer – you can just use the templates as inspiration and pull them into your own DevOps setup 🙂 

How does it work?

Once installed, Wrapper.js can be run with two types of CLI commands:

  • unwrap commands that create your Wrapper.js configuration in an AWS Secret, set up an S3 bucket for Terraform state storage and create the template in your local directory.

  • gobble commands that are used to convert AWS Secrets into env vars and orchestrate Terraform, Serverless Framework and Next.js libraries for localhost development and environment deployments.

Please see the Getting Started page for further details.