Custom application and CMS integration

By Nathan Donaldson in Other on April 15, 2010

Image 0536 full 2x

When we release a SaaS web application, such as IntuitionHQ, it’s inevitable that there will be two parts that make it up. The main part is the application itself. The second part is the marketing site that goes with it. The marketing site includes the content, and usually a way to sign up. It normally requires some integration with the application.

We choose Radiant for our CMS when working on internal projects. The reason we like it is for it’s simplicity and power. In this post I’ll go through the different ways we’ve experimented with to integrate our SaaS applications with Radiant based websites.

1. Completely separate

The first scenario is the simplest. We just keep the website and application completely separated. When the user clicks to sign up they are taken to a form running in the application.

Example: www.sonarhq.com

Pros

Cons

2. Completely integrated

Radiant’s extension system is very powerful. You can actually write a whole Rails application as an extension. This makes it really easy to integrate both the public side and the administrative side of the site.

For some applications this method works very well and reduces complexity.

This recent blog post by Jim Gay, the lead developer of Radiant addresses some of the issues with integrated applications.

Example: www.smartmove.co.nz

Pros

Cons

3. Admin API and Radiant extension

With this method your application exposes a locked down administrative API. A simple Radiant extension uses the API to allow sign ups and perform administration.

While this is a more complex solution, it really provides the best of completely separate and completely integrated. You can maintain different Rails and Radiant upgrade paths, but you can still have all of the administration happen in the Radiant backend. You can even build it out to do other interesting things. For example, having a Radiant website that administrates several applications.

Example: www.intuitionhq.com

Pros

Cons

Conclusion

I would avoid having a completely separate website and SaaS application again – it seemed like a good idea, but ended up not working that well.

Integrating with Radiant is a really nice solution. I would consider it for any application that fits the following:

For all other cases I would expose an admin API and write a simple Radiant extension around it. This seems to be the most future proof, while not taking away any flexibilty. I’d be interested to hear how other people integrate a marketing site with their SaaS applications.