Making A Splash With Spirals

Sometimes, we developers at Realise like to set each other little coding challenges, to help keep our skills sharp. A few weeks back the challenge was (a very open-ended) "do something cool with canvas" - canvas being the free-form drawing element added in HTML5. This challenge led me, via a series of learning experiences and happy accidents, to put together a "Spiral Art Generator". The tool is relatively simple. The user adjusts any of a series of numeric inputs (or just hits the "Random" button), that are then combined with the power of MATHEMATICS to generate (sometimes) beautiful spiralling patterns on the screen. Think Spirograph. The beauty is that small variations in the settings produce significantly different, and often unexpected, results.

Feeling smug, I shared the tool around the other devs at Realise and then started pushing the link out through various social channels. On Facebook it got a couple of likes, and I think someone favourited on Twitter, but Reddit... Reddit woke up. If you're not familiar with Reddit, it is essentially a massive forum for every topic you can think of, and posts can be get voted up if people like them (resulting in attracting further attention) or down (and getting buried). My past experiences of sharing content on Reddit have been mixed, but this time the community seemed to really take to my contribution, and quite quickly my post was getting upvoted and the numbers of visitors to my spiral art tool started ticking upwards.

As I was going to sleep, America was waking up and the majority of the Reddit community with it. I woke the next morning to find the tool had leapt from around 200 visits to 40,000 and this figure kept ticking up. The kind folks on Reddit had taken a liking to my creation and so were voting it upwards, and sharing with their friends. My post had received enough up-votes to make it to front-page of Reddit, giving it visibility to everyone who visited the site during that period. 24 hours after having submitted the tool to Reddit, it was sitting on 80,000 visits and after a week it had received over 123,000. I was thrilled.

So what went right? I think there were several factors:

1) The tool itself was simple, any user could very quickly and easily get visually impressive results (especially with the "Random" functionality).

2) The amount of possible permutations was enormous - users had a reason to keep coming back as they were getting a completely different experience each time.

3) Users could share their creations. A very last minute addition before I started sharing, was the "Share code" field, which allows users to easily copy and paste their creations to share with each other. This shareability helped bring new users to site, and drove existing users to keep coming back to try and find more interesting combinations to share.

4) The tool was robustly hosted. The "Reddit Hug of Death" is a phrase for when the huge, sudden surge of visitors that Reddit can send to a site, results in the hosting server being overwhelmed and taking the site temporarily offline. A site's popularity becomes it's downfall, and the potential continued growth in visits gets stopped in its tracks. If I had hosted the Spiral Art Generator on my own budget web-hosting then this almost certainly would have happened, but this time I had put the tool on Codepen - a free site for web developers to share their creations with each other. Those guys receive massive amount of daily traffic, so although a big deal for me - my traffic spike didn't even dent their server infrastructure.

Here's the tool if you want to check it out for yourself:

Now if you'll excuse me, I think I've just found a new configuration that looks like the opening sequence of Jon Pertwee-era Doctor Who.