To create a project that other people can use and contribute to, you need to follow a specific directory structure. Moreover, releasing a new version should be as simple and painless as possible. For my projects, I use a template that has the structure already in place, and comes with automation for almost every part of a release.
I spent Saturday on rewriting a Flask app in Django. The app in question was Nikola Users, which is a very simple CRUD app. And yet, the Flask code was a mess, full of bugs and vulnerabilities. Eight hours later, I had a fully functional Django app that did more and fixed all problems.
I tested the speed of four static site generators: Nikola, Pelican, Hexo and Octopress, in a clean environment. Spoiler alert: Nikola won.
Disclaimer: author is a developer and user of Nikola. The test environments used were the same for all four generators.
- Nikola v7.6.1, by Roberto Alsina, Chris Warrick and contributors; Python; MIT license
- Pelican v3.6.0, by Alexis Metaireau and contributors; Python; GNU AGPL license
- Hexo v3.1.1, by Tommy Chen and contributors; Node.js; MIT license
- Octopress v2.0, by Brandon Mathis and contributors; Ruby; MIT license (based on Jekyll)
A week ago, I was inspired to produce a new projects page for myself. The previous one was a trainwreck with a lot of hacks. Also hosted on GitHub Pages for some reason.