What is Restspace

Restspace is a new tool with a new approach to building and integrating back ends for web and mobile rapidly and flexibly.

Particularly now that front end frameworks have moved a lot of functionality away from the server, back end work can be quite routine and repetitive, based on integrating different services. Ideally you want to solve these problems once, and then spend most of your time configuring those solutions like building blocks.

There are two broad categories of platform that try to do this at the moment. Content management stystems have for years attempted to do this task, but they have always been monolithic, supplying many building blocks, but in a rigid structure, with no possibility to change architecture or hosting infrastructure, and difficult to integrate with third party services. They have generally been focussed exclusively on providing services for the management of web sites, but this is now changing with the rise of the headless CMS. The headless CMS however now does very little functionally.

The other category is low-code service automation platforms like Zapier and IFTTT. These are good at integrating with third parties and allow you to configure your building blocks as you like, but they focus on facilitating triggered transfers between the services they wrap rather than providing the services and functions required to build a website or mobile app.

Restspace takes a new approach. Its building blocks are 'nanoservices', small functional units that wrap APIs and services or perform filtering or processing tasks. Its glue is a restricted form of the HTTP protocol, the glue for the whole internet. While a single Restspace server can easily run many nanoservices, this means that with only configuration changes, any nanoservice can be moved very easily between servers.

While you can build your own nanoservices (in Javascript for Node.js) many prebuilt nanoservices are supplied. With only configuration of these, it is possible to build a wide range of back end functionality without any code being required. It is a simple matter to build a proxy wrapper for any third party api or service, enabling it to be managed within Restspace as if it was just another nanoservice.

In addition Restspace provides an admin interface which allows for configuring the server and its services. It provides an automatic form generator for JSON data (based on JSON schema) plus editing of JSON and text files, and upload/download of other kinds of files. It is intended to be extensible and configures itself by reading the services.json file for the Restspace server it is connected to. It can provide CMS style functionality, but also management back end style functionality for examining data input by users and downloading files they have uploaded.