Open Platform, A New Chapter for Online Business

- Friday, April 11, 2014

It was about a year ago when I first got a glimpse of what Alexandru Costin was talking about when he said he wanted to make Business Catalyst an open, extensible platform.

At the time, I remember thinking, “but BC is all about being a closed system so partners don’t have to worry about that stuff!” And I went forward with that thinking for months.

At the start of Open Platform (called Open Admin at the time), the BC engineering team opened up a couple of functions in a very small private alpha via the Partner Advisory Board (or PAB):

  1. Ability to create custom admin menu items and modify existing structure
  2. Ability to load pages into the admin iFrame

For the most part, even in the private beta environment, very little came out of this...at first. Partners added some custom menu items and even some pages to make their clients’ lives easier.

It seemed novel, but not really powerful or game changing.

I’m not sure who thought of the next iteration first, but I heard it from Jackson Palmer. Him and I would have these late night Skype chats to talk about where BC was headed and how we could push the platform forward.

He dropped an idea on me that blew my mind. I will admit, it actually took him hammering it in my head a few times, but once I got it, I got it.

The idea was simple: since you are logged in with an administrator token via the backend, you could actually use that token from the HTML of a page hosted on BC, called via one of these custom admin buttons, to access the existing APIs (like the Filesystem API) through JavaScript.

I had been waiting around for some new functionality to be able to build “apps” in BC, but what I didn’t realize was the functionality was sitting right there. It had actually been available for months, but no one, besides a couple of BC engineers, had started to develop beta apps for it.

So we got started.

Without Open Platform, Limitations

Business Catalyst is a SaaS-based, “hosted” system which has a nice list of pros and cons against other platforms that are open source and “premise” (where you control the hosting environment). As BC partners, we don’t have to worry about PCI compliance, hosting scalability, DoS attacks, bug fixes, version updates, and the list goes on.

The flip side of this has been that we can only customize the frontend experience of Business Catalyst websites. We’ve had to work within the existing modules available to solve our client’s most pressing problems. I have built hundreds of BC sites...you can solve a lot of problems with the existing BC infrastructure and as an agency, having all of my clients on one platform, version, and hosting environment allows me to scale and provide great service.

But sometimes we would solve problems in ways that had the right end result for the frontend user of the website, however the business owner or administrator would be left with clunky processes and workflows to actually manage the resulting setup. The net effect of these workarounds would usually be either slow adoption or no adoption.

Sure, you can build a custom real estate management system with BC’s Web Apps tool, but what does it feel like to actually add, remove, and edit properties? Have you ever trained a client on updating a Web App with almost 100 fields? I have...and the look on my client’s face was, “seriously?”

You could create these amazing frontend experiences, creating beautiful galleries of properties (or many other things), but then the backend is like filling out a Microsoft Access database. Don’t get me wrong, Web Apps are super powerful for quickly solving tough problems. But they have the potential to be much, much more powerful.

Another limitation has been building around BC’s existing API layer. At BC Gurus, we published some tutorials early on about building applications on top of BC’s APIs. We were able to push BC really far with these, however, they all require developers to create their own hosting infrastructure and use a server-side development language like PHP or .Net. The “all-in-one” aspect of BC always took a hit when we decided to extend the platform like this - adding hosting services again to our list of technologies to support for our clients.

The final limitation has been that we’ve been unable to easily transfer value between partners.

Let’s say, I build a custom blog feature using Web Apps because I am building a website for a publisher and I need all sorts of custom content types for each post that we publish. Maybe the client pays us to develop this feature with a twenty or thirty hour budget - it’s really polished.

Then, another BC partner sees the work I did and says, “hey Brent! I’d love to do what you did on that site!” Ok, let me record a video tutorial, teach you some edge case features in BC, get you up to speed on some JavaScript, and walah! Ten hours later, you are all set. But wait, maybe you can’t get it to work just right because you missed something in step #22...now you have to pay me to login to your site and figure out what went wrong with your implementation. This is highly inefficient.

I am a big proponent of educating others, but I also realize that sometimes it’s easier, more efficient, and enjoyable to just give someone the tool. Especially if we can instantly transfer that tool to hundreds, or thousands of partners in seconds.

Welcome, Open Platform

The above limitations are no more with Open Platform. We can now fully customize the front and backend experiences for our clients, we can access BC’s API layer directly from the hosting environment from a non server-side language that most partners are familiar with, and we can package and distribute custom applications instantly to the entire Business Catalyst community.

Open Platform is a new application layer available in Business Catalyst. In the beginning, it was simply being able to call HTML files from within BC, but has now evolved into a full “Application” environment - complete with developer keys, an open source SDK, new APIs, and a budding marketplace.

As mentioned earlier, the cornerstone of creating an “app” and not just some custom content, is the ability to access an API token once a user is authenticated into the admin of BC and being able to use that token to access features, through code, that the user has permission to access.

We can now extend BC, with BC. No need for external servers to start to create custom admin-level tasks. This allows us to work asynchronously with the Business Catalyst team to develop niche tools and solutions for our clients and the greater partner community while they are working on core functionality. It also means that elegant front end solutions built in BC can be paired with elegant backend solutions.

Take my example about the real estate listing system earlier. We had a client that had almost a hundred custom fields in a Web App - simply because they had a lot of custom data points about each property as well as a huge list of images (50 fields for images). Not every property had a lot of images though, some only had ten, but Web Apps just has one admin view, and that meant that the client had to scroll through all fifty every time they were editing a property. They also couldn’t see a visual of each image in the Web App, which meant that we had to train the client on a custom naming convention so they could view and organize their images on their desktop.

Now, with Open Admin, we can make a completely custom UI for the admin for that client. Not only that, but could probably re-use much of the display code from the frontend to make it a familiar experience.

Here are some new things partners can start thinking about:

  1. How can I improve the workflows that my clients are using most in BC by building a custom UI that is tailored just for them
  2. Can I combine existing features in BC (like two Web Apps, or Web Apps and E-Commerce) to solve problems that wouldn’t have made sense to do before
  3. What data could I display differently that would be valuable to my client (think custom dashboards…)

Not every limitation in BC can be solved with Open Platform. I have been listening to several discussions around the partner community about getting work done on “BC Core.” Essentially, the question has been, “why this? why now? is BC trying to outsource development?”

Absolutely not.

I have a great visual analogy to represent the value over time of this development for Business Catalyst. The basic idea is that of planting a tree. The best time for BC to have opened this functionality would have been five or six years ago - because that would have given us YEARS to be extending BC and our “app tree” would be way more developed by now. Well, the second best time to plant a tree is today, and that’s what the BC team has done.

After six months of a limited group of partners having access to Open Platform, we only have about a dozen apps at the commercialization level. It takes time to learn a new thing, come up with ideas, and build something meaningful. And most people aren’t fast followers. Most people look at a new thing like this and say, “I’ll get to it” and let others lead the way. Or they wait for their first client to need something that could be solved with Open Platform before they jump in.

So far we only have a few early adopters of the technology that have really grabbed it by the horns (even though hundreds have registered developer keys). The criticism so far for apps not solving “all” problems has more to do with the fact that apps just haven’t been in development that long than it does with the idea that apps aren’t going to be able to solve many, many current limitations in BC.

Lets think about how Open Platform will make an exponential difference on the value proposition of Business Catalyst.

Right now we have limited APIs to access:

  1. Categories
  2. CRM
  3. E-Commerce
  4. File system
  5. Page templates
  6. Roles
  7. Sites
  8. System
  9. Web apps

Not every function for each of those is supported yet, but even with the existing support, that has opened our ability to:

  1. Create custom content management tools (Homepage Slider and Team Directory)
  2. Display custom e-commerce dashboards (Quick Stock Viewer)
  3. Backup BC site data (BackupBC)
  4. Manage site designs and templates (Bootstrap Builder)

And I’m aware of several more projects currently under development. Basically, with what we have access to today, developers are scaling efforts to add considerable functionality to what’s possible with BC.

But this is only the beginning. As the BC engineering team releases new APIs, features, and core improvements, they are going to be doing so with Open Platform in mind. That means that as we progress through time with Business Catalyst, the amount of value potential increases exponentially.

For instance, Liquid rendering is being released in private beta shortly. This new feature without Open Platform would have been a really big deal, but now it’s (big deal)². Instead of just opening up some cool opportunities on the front end of BC, Liquid now has the multiplier effect of increasing our potential with custom apps.

When BC launches new APIs (like maybe the Booking API, site traffic data, or site search terms) they will immediately open up new possibilities with Open Platform. When BC launches a new core feature, the feature’s potential won’t even be fully understood because it will include this exponential possibility of interfacing with hundreds of developers’ custom applications.

If it sounds like I might be a little app crazy, it’s because I am.

When Alexandru and I got to talking about the future of BC, it became clear to us that Open Platform was critically important. There was just no way for the engineers to keep up with the scalable improvements that other ecosystems were enjoying because of similar developer communities. Partners lose when their customers want niche features that are available in other platforms.

We knew that we needed a marketplace to legitimize the concept. To allow not just a select few partners to reap the benefits of higher customization, but also to allow the non-technical partner to benefit.

Welcome, BC App Store

Last fall, my team began working with Adobe’s to fulfill the role of the marketplace for the newly created app opportunity. We leveraged our network and deep understanding of BC to rapidly create a central platform to distribute apps for partners.

This allowed the very first apps that were being developed for Open Platform to quickly get widespread testing within the community. Instead of slowly rolling out the idea, we could get hundreds of installs and see how individual concepts would be received within the community while finishing touches were being done to the infrastructure being built by Adobe.

The marketplace is important for a few reasons:

  1. It allows apps to be transferred between partners instantly.
    One partner invests time and energy into a solution and they can transfer that value to another partner quickly and for a low cost investment to the other partner. We spent about 50 hours on the first version of Homepage Slider…you can benefit from that investment for only $29 per site. This week we also launched the first free apps, so in some cases, you’ll get to benefit at no cost.
  2. It allows developers to get a return on their investment.
    Some developers will develop for the store in hopes of riches from the marketplace. Others will use it as an afterthought to make extra money after they’ve launched a custom solution for their clients. In either case, the marketplace provides a way to add revenue to your business by extending BC.
  3. Central hub for updates, distribution, and quality assurance.
    Contrary to open source communities, we are approaching the app ecosystem for BC very carefully. App developers have a contractual responsibility to provide bug support for their apps and a specific service level agreement when support issues arise. Now that BC App Store is integrated into BC, partners know exactly where to find the latest apps, and app developers will get maximum marketing exposure without having to do any outbound legwork (of course this is no replacement for good marketing if you do want to market your apps).

Right now in the marketplace, you can do a few different things:

  1. Sell or give away Open Platform apps.
    These are the apps that this post has been talking about. Installed into BC’s admin menu and leverage the API infrastructure to do things that make BC better directly within the BC admin. As a developer, you can either monetize this or provide the app for free. The marketplace does not dictate price or your free/paid strategy.
  2. Sell or give away Download apps.
    This is a simpler type of app available in the store - simply a collection of files that you create in a zip file to be distributed. This has been popular with a couple of developers that have built jQuery style plugins for BC.
  3. Sell on a per site or per partner license.
    So far these two methods of monetization are what we support today. We are working to add recurring billing functionality, along with an unlimited license, volume pricing, discount codes, and redemption codes into the platform. Our focus at BC App Store is to support the various app business models that will emerge and let our developers focus on what they do best: develop apps.

Over the last couple of months our focus has been on integrating the marketplace into Adobe’s platform and bringing the scalability of the platform up to snuff with their system. I have been really impressed with how the BC team—Cristinel, Lucian, Radu, and many others that we didn’t interface with—has approached this project and their new outlook on BC.

I know that this might sound strange, but it feels more like we’re working with that earlier stage BC team—driven to deliver features and make partners happy. I’m not sure what all changed, but after visiting the team in Romania last December, it just seems like they are committed to delivering more. Maybe’s it’s because the AWS migration is done, maybe it’s because they are approaching things differently. Either way, it’s a breath of fresh air.

Now that this work has been completed, our focus is on making the marketplace a great experience for partners securing apps for their clients and for developers creating apps on the platform. And based on what I’ve heard, BC is now gearing up to get back to core features.

Welcome, Developers

If you’ve got some development chops, it’s time you jump into this new evolution of BC with us. Now that Open Platform is out of beta, take a look at the developer docs.

I see this part of the platform evolving through a few different steps:

  1. Extending BC with what we have access to today.
    Several partners have already made some killer apps, but there is a lot of ground still to cover. I have yet to see some custom blog components, photo gallery, or much in the way of social or search. As the amount of partners working on apps grows, I imagine we will see several innovative apps based on existing APIs.
  2. Integrating BC into other applications.
    As we’ve gotten our grip on Open Platform, Adobe and the marketplace have requested that we hold off on integrating BC into 3rd party applications until there is proper due diligence done on security and privacy standards. However, once this limit is lifted, I imagine many partners will jump at the option of making BC stronger by allowing it to play well with other systems.
  3. Building with new features in the coming months.
    Adobe plans to unlock most of BC’s key features via the APIs in the coming months. I’m not sure of the timeline here, but based on what I’ve seen delivered over the last couple of months, I know that the team is focused on delivering tangible releases. I have no doubts that this new focus will reveal a lot of new potential in the platform. As each new API and feature is released, it will open yet another combination of possibilities within the platform.

Once you are ready to package an app into a commercial product, reach out to me at brent@bcgurus.com so I can line up your developer contract and get you briefed on the details of launching your first app in the marketplace.

I’m very excited to be participating with the Adobe team on such a big new development on the BC platform. The BC team has delivered a fantastic series of releases and I’m looking forward to their continued commitment to the platform.

Comments