Behind the Curtain: Growing the Webvanta Platform
For those of you interested in the programmer perspective of Webvanta, I’ll be contributing entries on our blog that discuss the technology and engineering side of the Company. Where appropriate, I will also cross-reference with our sister-site, BuildingWebApps.com, when I have a pure programming technique article to share.
The technical path of Webvanta has been an interesting journey over the last year. Our original Ruby on Rails technology was written to support a single web site, with a focus on simple database organization of a collection of links or articles. We used that code to release the original BuildingWebApps.com and its companion LearningRails.com Ruby on Rails developer resource site.
During 2008, we morphed the application through “extreme rearchitecture and refactoring” to what we have today at Webvanta: a multi-tenant, database centric, dynamic CMS system suitable for a broad array of web sites created by Web Designers or others who want to skip heavy duty back-end programming.
Before diving in to any one specific issue, I wanted to outline a brief inventory of technologies in use at Webvanta. When-ever practical, we follow the mantra of “reuse”, and try to use Open Source tools when they are available.
Our core Webvanta system is written in Ruby using the Ruby on Rails 2.x framework. We use Nginx web servers as a front end, and Mongrel as our app server cluster in production. We use Thin in development and are always evaluating new options. We make use of MySQL for our database needs.
Within the core application we use many Ruby Gems and Plugins, too many to name, but a few stand-outs include: pieces of the Radiant CMS (and the companion Radius tag-based template language parser) have inspired our extension mechanism and merged with our rendering pipeline, and the testing tool suite of rspec, webrat, stories and scenarios.
We currently host our production environment with our friends at Engine Yard.
With this development environment setting the stage, in future posts I’ll dive in to implementation detail, challenges, methodology and tool discussions, and examples of techniques and tricks the underlying programming allows you to do within a customer facing Webvanta-based site.
Topics: Webvanta History