Screenshot of a pere edit sequence

I said recently that I thought my prototypes and small projects could both benefit from having clear outlets with clear separation between them. That means making more effort to put out small projects. I'm starting with a release of pere, the library I wrote for my post about red-green-refactor writing. It can watch an arbitrary series of changes to an HTML document, store them, and replay them later.

This project was built out of a series of prototype steps: calculating the text diff, watching changes in the document structure, and actually implementing record and playback. The extra work on top for this release was largely just documentation. It was kind of neat having the prototypes support the project, even if in this case I think it had a negative effect on prototyping. It could be a cool model for future projects to have prototype work contribute towards project work. The trick would be keeping the prototype part fully detached from reality and doing all the polish and fleshing out in the project part.

I'm pretty happy with pere. I couldn't find anything else that did the thing that I wanted, so it feels like a pretty good contribution to the problem space. If you want to play around with it you can find the code on Github and a demo .