I recently built a demo website for someone who currently uses Wordpress and the Thesis framework for their website. He is running an online campaign for Gamers Against Bigotry. The website's petition was recently hacked and defaced by gamers of the other side of the coin. I couldn't really imagine why people even enjoy saying such things while playing games online. It's just wrong.
He really enjoyed the demo and the fact that I was able to develop the website very swiftly. I copied his current theme and site content and developed a new Petition system in Django in just a few hours. It was fully working besides the component to confirm the signatures. For us Django developers, creating something like this is more like a simple tutorial, a piece of cake.
This is not what I am going to be writing about, but this is how I got my brainstorm for a great idea. The latest reply stated that he did not wish to leave the comfort of Thesis, as he was able to easy modify the website with a minimal amount of code, something like a few lines. Reminds me of a Django app, however after pondering at the Thesis website, and watching the video. It makes more sense on why he explained it that way. In Thesis, one can modify the entire CSS layout by just visiting a simple dashboard and changing a couple options and setting colors. It was actually rather amazing to see. I'm the type of coder who does his HTML/CSS coding manually, I choose a boilerplate framework, such as Bootstrap, from Twitter, or sometimes jQueryUI depending on the project at hand.
Later in the video the presenter goes into editing PHP and CSS code manually, which most users who would choose this type of theme framework may not fully understand. This can lead to problems on the website in general. It would have been more impressive if he presented a WYSIWYG theme editor, something which Django CMS has.
My idea is to create a similar theme framework for Django websites. The major problem I see with this idea is the problem of tailoring to all possible app types out there. Rather than tailoring to all possible apps, I will publish documentation on how to make existing apps compatible with my theme framework. A large goal will be making the framework modular. There will be a lot of template files, but it will make it easier on app developers and site developers to use the theme framework.
The first version I develop will use Bootstrap, from Twitter and jQuery UI, and allow these to be themed with ease from a nice dashboard. The dashboard will be powered by jQuery UI to enable the use of a color picker and other dynamic features. The included templates will allow for an entire Django website to be built with no need to make any HTML or CSS. Similar to how Web2py works, a very nice out of the box theme which should work for most applications.
Django currently lacks many generic templates for the contrib apps it provides. I know there are some Django templates out there in the wild which remedy this, but these templates are not dynamically changeable from a snazzy dashboard.
Once I have a basic theme framework working, I plan on adding the ability for it to work with popular Django apps such as Django CMS and blogging apps. This may open the door for Django, if the theme framework catches on. Users who run blogs and simple websites don't care so much about the backend coding, but more about the themes and how it is presented to their visitors. An awesome method of theming Django along with all the apps Django has to offer, along with all the Python packages on top of that, may give Django more momentum in the casual web community.
Once I am ready to release a public version, I will drop the code onto github or similar website for all to enjoy. What does everyone think of this idea? Do you think Django needs a great and easy to use theme engine? Do you think Django app developers will help in making their apps compatible with the theme engine? Let me know in the comments below.