E-commerce from the ground up using Mojolicious, MongoDB and Kendoui.

I decided to upgrade our aging e-commerce software. I thought it might take 6 months. 3 years later...

The good news, the website is live (and so am I). The bad, still lots to do (and I am sure I'll be dead before it is done).

I decided to write a little blog post about what prompted me to write an e-commerce system rather than using one of the pre-packaged solutions available. This is part of my therapy to try and regain a personal relationship with reality after 3 years of coding. I've only written a few paragraphs and already I'm feeling edgy about not looking at code. I think I'll finish writing this blog post in my editor...

Why create an ecommerce system from scratch?

Three years ago I would have said "because I need the flexibility". Today I would say "Because I've gone this far so I can't turn back". Seriously, I would not attempt it again and if presented with the same delima I would try diligently to make one of the pre-packaged systems work. However, now that the system is operational and usable (to some degree), having a system built around the way a business operates is quite nice.

So what choices did I have to make and why?

I had too many choices and none were easy. For language and framework I choose Perl and Mojolicious . I chose Perl becuase I know it. But I would have chosen a different language if there was a compelling framework that convinced me to change. In Perl land we now have Mojolicious which is a kick-butt framework for writing web applications in Perl. When I started this journey I looked at all the development frameworks, in all the languages I could find. I looked at Django, Sinatra, Dancer, Rails and many others. I choose Mojolicious because of its architecture, documentation and lack of dependencies. I cannot say enough good things about it and the community that supports it. If you are a perl developer you really should check it out.

For database I choose MongoDB.

This was the most difficult choice to make but I am very glad I went with MongoDB. A document store works very well for an ecommerce application. Nothing is perfect, MongoDB is no exception but overall, it does what I need. One thing I have learned through this process is that data will tell you how it wants to be stored. And the reality (that which I know not) is that some data work better in a RDBMS and some work best in a document store.

I chose Kendoui as my javascript framework.

I knew i wanted a rich interface for both the customer facing pages as well as the admin pages. I originally used JqueryUI, which worked quite well however, it was missing some key widgets that I needed. So, I left JqueryUI as soon as KendoUI came out of beta and I am glad I did. So far it has turned out to be a very useful and robust framework. The best part about it is the DataSource.

So, if you are reading this blog, it means you are experiencing the finished product. Drip Depot is the the site which runs it. Feel free to have a look around. Suggestions and comments welcome. You can reach me at