Technologies for a Saas

Posted: 2013-07-07 13:49:00

I had to review for a client what CMS to choose. Keeping in mind the CMS was only part of the product and a small part. Small in that the big value to the product seem to fall more on the APP part of the project that allowed the user to make a question set from an JSON based API. So a bulk of the work would be building that. The CMS was just to help manage a few pages, menu, users, and some settings.

Below are some notes about the technologies. I rate them 1-10, 1 = not strong 10 = strong.

In the end my thinking comes down the the Console. To deploy sites, change server settings, and automate tasks, etc takes scripting and command line features. Using the same language the site is being built in to also do this type of scripting makes it not only easier to do the work but to also integrate the two areas.

Below I will review the Frameworks, The different CMS options, and define some terms used through the document.

Framework Considerations

The Frameworks I am presenting

D = Drupal

R = Ruby on Rails

W = Wordpress

L = Laravel, PHP Framework

A = Angular.js Javascript Framework

Teach ->

D

R

W

L

A

Notes (more details follow below)

Features

CLI Scripting

1

10

1

7

0

Command Line Scripting (more notes below)

Testability

2

10

5

10

10

(more notes below)

CMS

6

8

10

See CMS Notes below

Deployment

5

10

5

10

10

See Deployment Notes below (more notes below)

API Integration

8

10

8

10

10

Able to communicate to API (more notes below)

Customize

7

10

9

10

10

See notes below

Support

7

10

7

10

10

Ease of finding developers, but see notes below

RESTful

5

10

?

10

N/A

RESTful interface (more notes below)

CMS Considerations

Here are some demos for Ruby on Rails and Laravel.

Keep in mind “more features” does not mean better, in our case we need to be able to control the features, or limit them, have an interface that is simple to use, and most importantly we need to be able to manage security updates, feature updates, and other code or database level changes easily. Without that, and I have seen this for year now, when changes are needed, and we are up to 50-100 sites, then there is a huge expense there.

Some of the main features I am considering, not that others are not there or possible.

  1. User can easily add and edit pages
  2. User can easily add and edit menu areas
  3. There is a solid WYSIWYG editor for adding pages.
  4. There are Roles and Permission Levels.
  5. There is a solid authentication system

Some Links to CMS

Ruby on Rails

http://refinerycms.com/ Refinery

I have a youtube video here

http://youtu.be/pWK_mourmGY

There is a nice showcase here

http://refinerycms.com/showcase

A demo is here

http://refinerycms.com/showcase

A lot more info can be see here

http://railscasts.com/episodes/332-re...

As well as on their website

http://refinerycms.com/

Laravel

http://pongocms.com/

I really do not have much info about this one BUT any CMS we choose will do the basics you need, and most importantly be flexible for your needs.

Drupal and Wordpress are already well known in this area so no links needed.


CMS Chart

Ref = Refinery

D = Drupal

W = Wordpress

CMS->

Ref

D

W

L

Notes

Features

User Roles

8

10

8

?

Customize

10

7

9

10

WYSIWYG

10

7

10

10

Easy to theme

10

5

10

Active Community

10

10

10

License

M

G

G

See Licenses below

License

GPL http://en.wikipedia.org/wiki/GNU_General_Public_License

MIT http://en.wikipedia.org/wiki/MIT_License

Ruby on Rails

This is the technology behind BaseCamp, Groupon, Shopify, Yellow Pages, Hulu, Living Social, Twitter etc. This is about 10 years old and the Ruby language it is built around is older than that.

http://en.wikipedia.org/wiki/Ruby_(programming_language)

http://en.wikipedia.org/wiki/Ruby_on_Rails

Laravel

http://pongocms.com/ there is a screen cast in the middle of the page. I have not used this but Laravel is a very strong PHP framework that is only going to get better in the next few years and more popular. If we need to use PHP this would be the way to go.

Customize

This now only includes the ability to customize but the ease of this work both for cost reason and for overall site stability. This Framework should not get in the way but assist us. And our work should not be about “removing features” or workflows but add them as we need them.

RESTful

This is key to talk to the website from the command line or centralized dashboard for example. By have this feature we can send commands, change setting etc to the site or sites as needed. For example we can send a command to disable a site, from the Sales Person dashboard.

Deployment

We need to be able to easily deploy changes to the sites either security updates, database changes, or new features. Some of the tools to do that are Chef, Capstrano. Frameworks that keep settings in the database such as Variables, complex table layouts for data etc are very hard to deploy and update via scripts. That is why most frameworks rely on files to base much of their configuration settings. Drupal 8 may help drupal in this regards but it will not be ready for a year or so.

Developers

people who can code at this level not just site builders but people how can code building these custom features, manage servers, manage deployment.

Command Line Scripting

this is key. This allows us to use the same language to talk to the server, script deployments, monitor the systems, etc.

Testability

this is key to a solid product, one you know you can add features to without breaking previous features. This will be a part of the entire process, and no new deployments will happen until all tests pass. Testing features like User Authentication, Branding Changes, Question Answer sorting etc will mean a long term quality to the site and confidence as we add or change features.

API Integration

The API being JSON will be compatible with any of these solutions. The rating here is more about how friendly these solutions are to customize with this in mind.


Tags:

refinerycms