Tom MacWright

I'm putting 40 projects up for adoption

a watercolor of a bird

I’m putting about 40 of my open source projects up for adoption: all of the projects in the tmcw-up-for-adoption and tessel-library organizations on GitHub is up for the taking. Open an issue, or email me at to adopt a project.

This isn’t the same level as fat, Sebastian, Ryan, TJ, or Armin. My projects aren’t as successful as theirs, and fewer people depend on them to do daily work.

I had 1,200 issues in my name before this purge, and 250 repositories under my account. Especially in the last two years, I’ve followed the tiny module philosophy and have owner status on around 459 npm packages - some of which are only added as part of my Mapbox organizational duties, but most I have authored.

I deleted repositories that are simply failed ideas. There were lots of these, and I never regret experimentation. Some projects were built around technologies I no longer use, like karma-tap, node-blink, or hipchat-dark. Others, like tessel-library, were born at the wrong time in history - I didn’t need to build another take on Leaflet, I needed to focus on Mapbox GL JS. But if you use karma, have a blink(1), or want to learn about the insides of web maps, these are great places to start.

Projects like chartpipe, chroniton, sharkdown, color-system were incredibly fun to work on, and really have bright futures if someone dedicates a little time to them. osm-pixel is a great intro to using C++ and libosmium with OpenStreetMap data, and Engelwood would be great if someone completed the task of Leaflet compatibility.

Jacob Thorton, the creator of Twitter Bootstrap, calls this “the cute puppy syndrome”: where a developer creates a module because they want to. This is “buying the puppy”. Then suddenly, the module becomes exceptionally popular. It “becomes a dog”. And maybe you didn’t want a dog. Maybe all you wanted was a puppy. Suddenly the guilt piles up and doing what you love isn’t fun anymore. - Charlie Robbins, on Jacob Thorton.

I’m not at the maintainer burn-out stage, but I see it on the horizon and want to keep it there. I have a few semi-successful independent projects, lead a project or two at Mapbox, and want to have time and energy to pursue new ideas. Disconnecting from projects that aren’t my focus is one way to stem the tide of responsibility and noise.

As for what I’m continuing to work on: I plan on spending more time improving Simple Statistics and documentation.js. I want every project under /tmcw to be solid: if you create an issue, I’ll respond. If you write a PR, I’ll review it. I’m also going to leave the npm-module comfort zone more in 2016, by shipping projects in ClojureScript, Elm, and Rust.

Writing & maintaining code can be fun. This may be a good opportunity to try out the role of maintainership: it can be a great learning experience. Check out the projects: tmcw-up-for-adoption and tessel-library, and adopt a puppy.