Here at Current we have some exciting projects coming up that lend themselves to the conveniences that Ruby on Rails and the MVC model provide.
To my mind there are three levels main levels of web development:
You have your basic static sites that are composed of HTML, CSS and JS. These are great for most applications on the web. A mom and pop store would be able to put their location information, hours of operation, a bit of history about themselves / the store and how to get into contact with them. I haven’t looked at the stats in a while but I would say that the majority of sites are just like this example.
The next step up adds a bit of dynamic content delivery via PHP and databases. Say the same mom and pop store passed over operational control to their offspring. Being a generation Y-er they are hip to the blogging and social media scene and the impact that they can have on a business. However, they don’t have the requisite knowledge to make HTML and CSS edits to the site every time they want to add new content to the site. Thus they pay someone to set them up on a content management system or CMS. Some of the popular platforms are WordPress, Joomla, and ExpressionEngine. The CMS allows the store to post new content to the site without the coding knowledge to manually make the changes. This would allow them to advertise upcoming events, offer specials, post client testimonials, etc.
The third level are your enterprise style web applications; Facebook, Twitter, Amazon, eBay, etc. If you really stop for a moment and consider the components that are involved in those examples you can begin to get an understanding of the immense amount of work involved to deliver the functionality we as users are accustomed to. Take Facebook for example: you have individual users, pages, groups, games, various other types of apps, you can post pictures, videos, instant chat, search, hashtag, etc. You do not have to be creating a web application that you want or even expect to scale to the level of something like Facebook to appreciate what it would be like to make a universal change across all those functional elements. Let us say Facebook wanted to change their font. In a traditional static or even CMS driven site you would have to go through and change every instance of your font-family CSS declaration to get the change to be universal.
This is a perfect example of where Sass comes in. Sass stands for Syntactically Awesome Style Sheets. It is a pre-processor for your CSS. With Sass the font change I had spoken about earlier would be as easy as making the change in one place and redistributing the stylesheet across your application, which would result in a great amount of time and man power saved.
So I have said all this to get to the point that I will be spending some time in the next few weeks creating a custom CMS in RoR that I hope we will get to implement into future projects here at Current and I will publish my progress as I go so you can follow along with me on this journey.