I Sell Triangles on the Internet

Quinn Rohlf
6 min readMay 26, 2020

--

This is a story about the long road to building a moderate but sustainable income out of my open-source library, Trianglify.

Back in 2014, I created a small utility for algorithmically generating abstract images like the one you see below. At the time, the style was a relatively small, emerging design trend, and most of the content out there was about how to manually author these patterns with a design program like Illustrator.

My original generator was very simple, just a few hundred lines of JS. I released it on GitHub as a GPL licensed library, uploaded it to Bower (2014, remember?), and tossed a Show HN post up on Hacker News. As someone who’s authored dozens of small projects not that different from Trianglify, I expected that to be the end of things. I was quite wrong.

Fast-forward nearly six years, and Trianglify is my most popular open-source contribution ever, with 9,000+ stars on Github, 1,500 downloads per week on NPM, and upwards of 40,000 site visits per month. It’s also a small but consistent source of income, proving that it’s possible, in 2020, for a single creator to make money off open-source software. I consider this a major personal victory, one that took six years of experimentation to achieve.

Originally, I had no intention of trying to bring in any income with the project. I had given something back to the world of open-source, and I was happy with my contribution. Then came the slow, steady grind of maintainership. I enjoyed working on Trianglify, but I also had a full-time job, and it was hard to justify coming home from a full day at work just to hop on the computer again and write code for free.

Around this time, I organically started to get licensing requests for Trianglify. People wanted to build it into Wordpress themes or ecommerce sites, and needed a commercial license. This turned into a trickle of revenue here and there, just enough to convince me to update the library with Node support and keep up with the issue tracker. You hear this again and again in the OSS world, but it was still a bit of a revelation for me to realize that even though Trianglify was a passion project, getting some kind of compensation for my time was incredibly helpful when trying to stay motivated to do all the “busywork” of maintaining a library that isn’t directly related to building interesting new features.

Unfortunately, the licensing revenue was incredibly unreliable, and added a whole new layer of busywork to the process of keeping up with my project in the form of invoicing and dealing with corporate purchasing departments. After a couple years of licensing-only revenue, I decided that making money off open-source was still a goal, but going further down the path of commercial licensing wasn’t the right way to do it.

Up to this point, Trianglify had been positioned as a developer-focused javascript library that required programming knowledge to use. Slowly, however, I began to realize that my largest audience came from the design world. I’d seen Trianglify in airport advertising¹ around the world, Google and Samsung’s new phones had wallpapers made in the same low-poly triangle style, and generally the whole triangle thing had morphed into a full-blown trend². I launched Trianglify.io, a free web-based UI built around my original library, with user-friendly sliders and toggles for customizing every parameter, monetized with a single display ad from a privacy-respecting ad network (Carbon Ads). Even with a several thousand visitors per day, I still earned less than $3/day from advertising — decent “coffee money”, but not exactly what I had hoped for after pouring hours of effort into the new interface.

Trianglify.io, a much more user-friendly interface

Nevertheless, visitor stats for Trianglify.io exploded, with the non-technical tool getting far more attention than the developer-targeted library ever did. Now that I had a platform and users, I started to experiment. The typical donation button approach immediately proved almost useless — occasionally, some very generous soul would toss $20 in the tip jar, but no matter how much time I saved for users, 99% of them would bounce the minute I asked for even a dollar in donations. I can’t really blame them — Trianglify is, fundamentally, a time-saving utility, and if you’ve already accomplished your task and downloaded your design assets, time spent going through a donation flow and entering your payment info is time wasted.

Finally, I decided to try charging a small fee for full-resolution downloads. My tool probably saves a designer a minimum of 30–40 minutes of tedious work every time the it gets used. While the core math and code behind Trianglify is, and always will be, freely available as an open-source library, I decided to it was time to find out what a powerful and user-friendly interface was worth, in terms of actual cash.

It turns out, people are happy to pay somewhere around $4 per download for high-quality vector assets of my triangles. Starting to charge for trianglify.io downloads has also changed my approach to the Trianglify library. The thing started as sort of a fun toy, and I was never a serious consumer of my own project. Now, I essentially run a small paid SAAS offering that depends on the open-source library, which has led to a robust test suite, some good discoveries around how to improve error handling, fixing rendering edge cases that I wouldn’t have found otherwise, and a variety of other under-the-hood improvements benefiting my own tools, but also the community at large! Most importantly, building trianglify.io has given me the justification I needed to put some time into the 4.0 rewrite of the open-source library, which modernizes my 6-year old codebase while solving a variety of issues and bugs. It’s releasing today 🎉!

Overall, Trianglify has given me a great tool to experiment with how to make open source work financially sustainable through various revenue models. While it definitely took time to find the right fit, my paid-services model has been a success — traffic on trianglify.io hasn’t significantly changed since I switched to the paid model, and while my revenue isn’t quit-your-day-job good, it’s more than satisfactory for a side project.

It turns out that open-source can pay — even if your only customer is yourself!

Thanks to Peter Askew for his story, I Sell Onions on the Internet, which inspired me to write this article.

¹ Funny story, I noticed this because the ads were created with version 1 of Trianglify, which had a bug with how it would mis-align certain types of corners 😬

² I have no idea how much Trianglify is to blame for this design trend. I definitely wasn’t the first person to create this type of image. I do think that Trianglify was the first widely-popular tool to fully automate their creation.

--

--