I'm about to start coding a documentation oriented wiki, as a pet project. The core features are:
- Extremely easy grouping of documents per version
- Markdown syntax (subset of)
- Multiple authors & projects
I'm still undecided on storage options. The obvious approach would be a database. Since this is a pet project, I will probably go with a NoSQL solution, probably MongoDB. Most work related projects are based around MySQL, and I want to keep this fun, i.e. not do the same stuff I do at work all day.
The less obvious approach would be Mercurial, in similar fashion to git-wiki. Mercurial would offer obviously tighter integration with the code and I won't have to build versioning. I still need some sort of database, to store repository info and possibly other stuff, but Mercurial would be the main storage for texts.
I've compiled a small list of the major points for each approach:
- Can shape it as I want, without caring for Mercurial workflow.
- Code integration could be as easy as putting a link to the repository (but nothing more).
- Quite easy to switch databases at any point, if need be (abundance of native tools).
- Natural choice (more people are used to it, not coupled to a vcs).
- Versioning and diff by default.
- Tight integration with code means lots of cool stuff are possible, like a code review plugin.
- I'll have to write a wrapper, I'm not happy with every ready made library I've evaluated (not necessarily a bad thing).
- Some sort of database still needed.
- Several valid workflows, the one I choose for the tool might not be very compatible with those people will choose for their code.
I want to make this as small and fun as possible, and I am a little bit stuck on the two approaches. Thoughts? Is there something obvious I'm missing? If this is too fuzzy to decide, what should I better define before I choose?