[ /projects ]

I maintain a few software projects:


I work full time on Cryptpad, a web app for realtime collaborative editing of various media types. Cryptpad is special because it does not require mediation by a authority for resolving conflicts. Clients resolve disputes, making it possible for clients to encrypt their content before relaying it through the server.

Your content remains private among those who edit documents.


My personal implementations of a range of high level functions. Any code which I tend to reuse across all my projects goes in here. It's available on github, or via npm.


unmon is a rapidly reconfigurable webserver framework. It contains all of the functions that I tend to use when building a webserver. They're all in one place, and are written so as to minimize dependencies between plugin modules.

I started off using expressjs, since it makes a lot of things pretty easy, but I've been rewriting to only depend on nodejs builtin modules. I'm still using marked for Markdown parsing, and that's unlikely to change, as it's quite well written.

If you're wondering what unmon is useful for, this website runs on it. Find out more about the project here.


HDB is the marriage of unmon and my own version of the cjdns admin api. HDB exposes data from your admin interface (only that which can safely be made public) so as to make debugging cjdns easier.

HDB is very much a work in progress, but it is already being run on a volunteer basis on Hyperboria.


Hyperbot is a simple ircbot with a command that listens and stores speech patterns in a markov chain data model. It can mimic particular users on command.

It never stores actual text logs, only relationships between words that have occurred in sequence.


Ansuz' Ghetto Markup Language is a simple parser I wrote for configuration files. Among other things, I use it for agml2rss.


Mis is a simple library that facillitates dynamically adding hooks to events.