This is the source for a series of articles about building and using a virtual DOM: Adventures in the Virtual DOM
When following the tutorials, there is a branch corresponding to each part of the tutorial (part-1, part-2, ...). The master branch will always be up-to-date with the newest entry in the tutorial series.