To fill a requirement for flexible content and management and e-commerce, Melbourne-based software engineer Stephen McDonald has released two open source projects built with the Django framework.
McDonald’s day job is as technical team lead at Citrus, but he also manages the Mezzanine CMS and Cartridge e-commerce projects at his own Jupo System portal – Jupo.org.
Having worked with ASP and PHP, McDonald turned his attention to Python and Ruby about five years ago when investigating Web application technologies.
“When we looked at emerging technologies we saw the traditional like .Net and Java as not much of a step into the future,” McDonald said.
“Around that time Python and Ruby were just starting to get some traction and I fell in love with Django and Python, both the language and the technology itself. It produces quality engineering and rapid prototyping.”
McDonald says the Python-Django community is “amazing” and a decision was made to roll with this and “leapfrog .Net and Java and go to the next level and do what developers in the US are doing”.
He likens the adoption of Web application technologies in Australia to that of broadband adoption – unfortunately we are five to six years behind.
“With Python being an emerging technology one thing it did lack was a mature product on top. A good example for PHP might be Wordpress – it’s built on inelegant technology but it’s a good product,” McDonald said.
“That’s kind of where Mezzanine and Cartridge developed from – a need for a strong product offering on top of Django.”
McDonald describes Mezzanine as at foremost a content management “framework” and a core focus is developing the content types in a Django fashion.
“A content framework lets a developer quickly build any type of content, but Mezzanine just so happens to come with a blogging engine,” he says.
“It rates really well on functionality. There’s nothing magic about Mezzanine, but where it shines is working with Django and Python.”
Locally, production sites using Mezzanine include the Ovarian Cancer Research Foundation and Equity Advance Financial Services.
There are now at least 12 people contributing to Mezzanine from around the world.
“We have seen people take Wordpress themes and port them to Mezzanine [and] we have had people with HTML and CSS skills build rich designs on Mezzanine since you don’t need Django-Python skills to do template design,” McDonald said.
With a major release happening about every month, McDonald is working on more features like page rating, custom workflows around moderation and more multi-lingual content support.
“It has a built-in forms builder so an admin can create their own forms with a field generator.”
Similarly, Cartridge was born out of a need for an e-commerce platform on Django, which McDonald says is a framework that lends itself towards e-commerce development.
“When I started working on Mezzanine it became obvious that Cartridge would become a plug-in for Mezzanine,” he said.
Cartridge is used in production at http://www.ripematernity.com/
Having looked at the Satchmo open source e-commerce project developed in Django, McDonald said Cartridge it is more in line with the Django and Python philosophy of flexibility and some of the more obscure features of Satchmo were left out.
“Satchmo is a very different product than Cartridge. It is quite monolithic and comes with every conceivable feature you can imagine in an e-commerce platform,” he said. “To implement custom things you have to follow the Satchmo way or you couldn’t do it at all.”
McDonald’s apps are available under the BSD licence, which he says opens it up to a wider audience than the GPL.
“Open source for me is about empowering people to do whatever they like,” he said. “For example, payment gateway support was added to Cartridge at a hackathon in the US.”
McDonald is now looking to build up an ecosystem of themes and plug-ins around the two projects.
Follow Rodney Gedda on Twitter: @rodneygedda
Follow TechWorld Australia on Twitter: @Techworld_AU
Join the CIO Australia group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.