Exactly one month ago, I began my review of Platform OS. Exactly two days into that review, I was convinced. This was something special. I followed the same long, drawn-out process with my wife. We had only been dating for a month when we decided to get married. Actually, she told me we were going to get married. I guess she knows a good thing when she sees it. Six months later, I obeyed. Eleven years later, I’m still obeying her.
I know that wasn’t the traditional courtship. It raises questions about how well we knew each other, and how we could possibly know whether we would work well together. But really, you don’t need to know that much about a person to know if you are a good fit. I’d argue that the truly important things to know are discovered rather quickly: core beliefs, values, personality, commitment, and whether you actually like each other. If you wait too long, you start to muddy the decision-making with petty issues and irritants.
Two days of reviewing Platform OS, and I just got it. Up to that point, I had been getting my head around the general concepts and the different parts of its personality. I was frequently impressed by its elegance and flexibility. But it was when I finally stepped back and saw the big picture that I said, Wow, this is it!
You, too, will be missing the gold if, in digging into Platform OS, you start looking for a one-to-one module comparison with Business Catalyst. Though I wasn’t consciously trying to do that, I think it was still hanging out in the back of my mind during my investigation, like comparing my date with an old girlfriend. It’s a little misguided, not to mention unfair, to do a feature comparison. Instead, step back a little and see if you enjoy being around her. Get an idea of her core values and her goals in life.
That’s what I did with Platform OS. I stepped back.
To be clear, I love the individual modules. I love the Authorization Policies. It’s an elegant module. Forms are an elegant module. Views are an elegant module. This platform is full of elegant modules. But the real beauty of this system is when things come together. It’s the way the features and modules can be combined to create new features and modules. If you are looking for the single best feature of Platform OS, you’ll need to stop looking at the individual parts. The best feature of Platform OS is its power to combine features; to morph into new modules. Its power is that it’s limitless.
And that impressed me.
It wowed me.
It aligned with my core belief of what a platform should be, and I was hooked.
This new perspective allows me to see beyond the old girlfriend; to move beyond the Business Catalyst concept of “modules”. That word just doesn’t fit. It doesn’t get the right message across. These are...tools. A module, to me, is something you build with the tools. It’s a purpose-built extension. Tools, on the other hand, are utilitarian in nature, and yet flexible in their application. You use them regularly, and in combination with other tools, to create new things.
A Different Nature
I’d love to take you right to the tools, but we have to cross a bridge to get there. Platform OS has a strength that might make you feel weak right at first. It’s a headless CMS.
An easy, albeit inept, way of describing a headless CMS would be to say it’s a data-first system. All data, features and capabilities of the system are accessible via APIs, and simply do not depend on any particular UI for their creation or retrieval. This allows you to interact with your data in just about any way you want, and from anywhere you want.
Sorry to bring up the old flame again, but we can probably grasp the significance of a headless CMS more easily with a contrasting example from Business Catalyst.
Blogging in Business Catalyst
In BC, you create your blog post in the admin, using the UI and fields they define. Then, you retrieve that post using a module tag, which, depending on the module tag you use, could require that you place the tag(s) in a particular layout file. Up until Business Catalyst adopted Liquid markup, those tags would output the data in a predefined format. Finally, to view the blog post, you navigate to the url specified in the admin for that particular blog. Your blog paths will be structured according to Business Catalyst’s constraints.
In Business Catalyst, the data is not independent of where it is created, or where it is displayed. Tags and other constraints are hard-coded into the system, tying your data in one way or another to the environment. With the introduction of Liquid, we were finally able to override some of the output, but we were only manipulating it at Liquid render time.
Blogging in Platform OS
It’s actually the flexibility of the platform that exposes our weakness: our dependence on predefined structures and tags. Suddenly, we have to answer questions like, “How will I structure this blog?”, or “How should I define the blog URLs?”, which frankly never really had to be answered before. It seems to be an ironic reality that people cry for freedom, but are really quite scared of it when they get it. But there are a couple answers to this fear. You can either learn to face your fear, embracing the opportunity to grow in your skills, or you can depend on the partner community. Likely, we will all fall somewhere between.
So, now for the tools. Below is a very quick overview of what you have in your Platform OS toolbelt. If I make some mistakes, forgive me. I’m still getting to know her.
Policies are how you define authorization permissions for users. This isn’t a simple group of checkboxes in an admin that allow this, or deny that. Policies use your custom logic, using Liquid and any data you want, to determine who has access to what, whether on the frontend or the admin. You can create as many policies as you want. You can even combine them to create sophisticated permission structures for users.
You would like to provide users access to better prices, based on the following conditions:
- the user has the role of “Wholesaler”
- the user has purchased more than $10k from one catalog in the past year
Models are like BC’s web apps. Actually, models are like BC’s [insert any module name here]. You can create anything with them. If you need to create a custom data structure, whether that is a product, blog, photo gallery, news feed, event manager, or Facebook replacement, models are at the heart of it.
Just like it sounds. Platform OS lets you define everything about your forms, from the fields to custom server-side validation to notifications.
Queries are how you get data out of the database, and are extremely powerful. Using GraphQL, you can define exactly what information you want, and then use that data right in Liquid. Goodbye module tags, this is module_anything.
Events are essentially triggered callbacks (code that is executed after something happens). They can be triggered in three ways: directly through the APIs, via callbacks (i.e., part of a form submission), or as scheduled background tasks. PlatformOS currently has three types of events available:
Sendgrid is the default email delivery service for pOS, though they will be making it possible to hook up any service for this.
SMS notifications are sent via Twilio, another integrated service provider.
Powerful. Triggering a custom API call (say, to your client’s Quickbooks service after an order) opens the doors to build your own integrations with 3rd party services without exposing sensitive information to the frontend, and without the need to use a proxy server. Your imagination is your only real limitation here.
You can specify translation rules and definitions for different languages offered on your site.
A role is equivalent to an Extended CRM Form in Business Catalyst, however it is much better, as roles easily replace secure zones as well. Roles can be assigned and modified as part of a user form submission or even in a background task.
- A user subscribes to a VIP content area of your website for $50/mo, and is given the role of VIP. Thirty days later, their payment is declined and a background task makes them inactive in that role. Bada bing, bada boom!
You can define, schedule and trigger background tasks to be performed on your site instance. Ever wished you could tell BC to sync up your product inventory with an external service? Yep, this is that and more.
Views are broken up into three types:
Think about Business Catalyst’s Page Templates. Now change the name. You got this one.
Pages can be more than just html. There are several types of pages in Platform OS, including the expected html, but also rss, xml, json, css, js, pdf, and txt.
Now you might be supposing that I’m just listing off the types of assets you can include on your site, but you’d be wrong. These are actual endpoints you can create, all of which allow liquid markup, configuration, policies, partials, etc. Can I just say, dot dot dot. Think of the possibilities.
In Business Catalyst, these would be called content holders and Includes. In fact, Includes and Partials are exactly the same thing: documents that can be inserted inside other documents with the Liquid include tag.
An Introductory Video
As an introduction, this is going to be very basic. In the video, I will seek to demonstrate the following:
- creating a new site from the partner portal (not much to look at yet, but it works just fine)
- creating a project on my computer for working on the new site, and connecting it to the server (this requires me to use the command line. Yikes! Actually, it’s not that bad)
- layouts, pages and partials
- managing assets, like styles and scripts
To me this is a quick answer. I want a platform built with flexibility in mind. I want a platform that excites me with possibilities for my own growth, and yet is so much in line with my current values. Will I discover its quirks? You bet. But this isn’t about perfection. It’s about opening doors for the future. And I see a bright one ahead.