In 2016, Open Social announced our partnership with Platform.sh. This partnership has allowed us to create a simple, secure and incredibly easy way to deploy new online community platforms for our clients (and keep the communities running without a hitch!).
I talked with Open Social Senior Developer Ronald te Brake and Plaform.sh Technical Writer Chad Carlson about how the Platform.sh API has enabled Open Social to create a unique multi-site solution for clients.
What is Open Social’s multi-site solution?
Without giving away all our secret recipes, the power of Open Social lies in our ability to instantly deploy ‘out-of-the-box’ online community solutions for any organization that needs one. As soon as it’s deployed, the client or their site manager can then customize their new site in a number of ways to suit their organization—from adding branding and selecting a colour scheme for the platform to uploading an array of diverse content and changing the layout of the content blocks on user landing pages.
The ease of deployment has also enabled Open Social to offer a multi-site solution to clients. If a client needs a number of separate (but interoperable) communities, Open Social can create a custom community template that lets us nearly instantly deploy a new community and make it live. Ronald te Brake explains, “We have a template—a shared set of features that have been combined—and you can use that to easily install a new environment with the same configurations.”
This solution is very useful for large NGOs that regularly run different projects or campaigns, both internally and externally, and need a standardized way to bring stakeholders together online.
What makes all of this possible is an in-house application we developed called Multiverse, built as our interface with the Platform.sh API. The name Multiverse refers to the idea that all our client communities exist simultaneously, in parallel, as universes on their own. Yet, the concept of the multiverse is also connected to the idea that all these ‘universes’ (i.e. online communities) are slight variations of each other. As if they all follow the same template.
With the development of Multiverse we’ve automated the whole process of deployment. “Multiverse controls just about everything,” says te Brake, “It receives the site and domain name from the customer success manager and then talks to Platform.sh using the API. It can say, ‘Okay, I need a new environment in the German Region, the European Region, or the US region.’” Platform.sh then start creating that environment. And once that’s done, Platform.sh will send a signal to Multiverse, so we know the site has been created. Multiverse can also say, for example ‘I want the site name to change,’ so it can update the community using the API as well.
Why the Platform.sh API makes such an impact
Both Open Social and Platform.sh grew out of agencies that specialized in Drupal and PHP. By extension, the Platform.sh team understood the ins and outs of Open Social’s technology stack.
Platform.sh is ideal for SaaS companies like Open Social because they can replicate a live production cluster in seconds. As Carlson explains it:
Having a branch be an exact copy of production is a fairly unique aspect of Platform.sh. You can create a byte-level clone of your production environment
This means that testing, validating and deploying new instances happen much faster and with a much higher level of confidence that everything will run exactly as planned. As Carlson explains, Platform.sh manages this by providing their users with a remote repository that they can use or integrate with repositories such as Gitlab:
And through a few configuration files you have a lot of customization over the builds and deploys of an application on top of our platform. We have a platform that doesn’t restrict you to staying in a product staging model. You can have a development environment for every branch or pull request.
All of these things can be done through the Platform.sh API. Platform.sh has a powerful RESTful API that enables you to manage nearly every aspect of your account and the projects you host with us. But while Platform.sh has a client dashboard that offers the same endpoints as the API, from the start it was Open Social’s plan to build Multiverse as an interface. As te Brake says:
You can do everything you need to through the dashboard as well. But its more just manual labour. The end-goal of Multiverse is to make sure we can just about automate everything.
The API offers developers full access. “It’s really good at opening up all the necessary configurations for us to create, manage and maintain websites,” according to te Brake. The power of the API really comes into play with Open Social’s multi-site solution. As Carlson from Platform.sh also explains:
The API allows you to abstract it a step up so that you can make changes to multiple projects at the same time.
This gives Open Social the power to instantly deploy new communities, but also update and maintain multiple related sites at the same time. This is at the heart of the Platform.sh API according to Carlson:
The focus was always trying to get people to interact with the API itself to the extent that Open Social has in terms of created a wider control in the management of a large number of projects
If you think about automation, usually that means that you have a very structured well-tested approach to how you do maintenance and updates across your deployments.
A developer-focused platform
As a technical writer, Carlson is responsible for maintaining the Platform.sh API documentation. He is, in fact, the main contributor. As part of the Developer Relations team, Carlson goes through assignments where he has to see, for example, how a particular framework or new language will run on Platform.sh:
I get to go through some of the frustration that otherwise would be left to a user as they have to figure these things out for themselves. By doing it ourselves, it hopefully leads to a point where it creates new documentation, a ‘how-to-guide’, or even a new template.
The documentation is also written through looking at bug reports, or input from team members throughout the company “who are trying stuff out for fun or finding a weird aspect in a support question that gets channelled back through us and then surfaces in the documentation,” says Carlson.
Open Social clients don’t have to ever worry about hosting. Client site-managers don’t have to log in to the hosting platform themselves. “It’s only developers logging in,” says te Brake, “And that is why we would rather have better APIs and developer experience”. This is exactly what Open Social gets from Platform.sh: a trusted partner who understands the needs of developers. As te Brake states:
The fact that they open up the API means that it gives us a lot of opportunities that are not directly visible for the customers. User doesn’t actually notice anything in the entire process because there is a partner that does this for us and takes away any potential problems.