Building Gitcoin

Building Gitcoin

By 2015 Twitch was big. It had blown up to become the largest, most popular gaming community on the internet. Twitch also spawned several new adjacent industries like streaming software plugins.

The opportunity looked great for products in this space. At the time there was very little competition and marketing was practically free. Whenever someone used your plugin it was usually visible for the entirety of the streamers broadcast just by the nature of the integration.

For example, if a streamer integrates your donation overlay, it's going to be seen by anyone who watches your channel because it either makes frequent appearances or is permanently embedded on your stream.

People who were innovating in this space were mostly focusing on various kinds of alerts. When someone followed, subscribed, or donated - there would be an overlay that popped up over the stream to thank the viewer for their time or money.

I remember thinking the concept was cool but the quality of the product was poor. It was cool that viewers had the power to change what everyone was watching on a live stream through these integrations, but there were no customization options for viewers and quality of graphics were underwhelming.

I didn’t like the running monetization model. Many apps were taking a cut from donations without providing any real value other than being a payments facilitator and that didn’t feel right. I thought if I could figure out a way to improve the monetization model while simultaneously raising the level of quality then I’d have a better product.

One thing I was curious about - how many people were not donating but still wanted to support the stream? This answer was impossible to find publically, but you could probably mine it through long term statistical analysis with bot accounts.

I thought it's reasonable to assume that:

Based on these assumptions there was a large margin of viewers that could donate if the incentives aligned closer to their wallets and belief systems.

So basically free money!

Well, sort of. GPT (get paid to) was a popular method of advertising at the time used to help developers monetize their apps. A user watches a video ad or completes a survey and the publisher pays out a small advertising fee to the developer.

So my idea was simple. You watch ads or complete surveys on our app in exchange for virtual credits that you can spend on donations, streamers are paid out monthly in BTC after chargebacks clear. We took 30%.

Next, I needed to choose the technology I’d use to render these animations because knowing what your creative limitations are drives product direction.

I found out early on that WebGL was not supported in OBS by default because of a Chromium bug. If you wanted to use WebGL in OBS you had to enable a special hardware flag in the startup link. Most people were not going to do that, so unfortunately WebGL was off the table.

Canvas based rendering supported WebGL like API’s so integrating 3D objects would again be on the table - however during performance testing I discovered it had limitations that would restrict creativity.

Using WebGL or Canvas tech would be cool but it wasn’t ready for this type of use case yet. It was important that the animations didn’t cause performance issues on streamers computers. I also didn’t want to run into walls creatively. I settled on CSS and animation libraries like GSAP. There was still a lot I could do with this.

Next, I needed to design how viewers would use the software. I wanted to give viewers more customization options so they could create their own donation experience but this implied a need for a UI that viewers could make these choices from.

The UI was called the donation action panel. Since Twitch did not yet support third party extensions, I built a few ways viewers could use donation actions:

So you watch ads to get credits then spend them on donation actions. But what were you actually buying? What are donation actions?

Most donation actions were animations that were rendered on top of the live stream. For example you could make a ball of confetti explode, or start a thunderstorm. A popular one was called “parade” which spawned a random character to walk back and forth across your stream. There were a couple other actions like text to speech, and “play a 30 second youtube video”.

The panel itself had some cool features to make the experience feel more gamey. Whenever you clicked an action, a small ball would drop down into a bucket. When the bucket got too full, some of the balls would pop!

Gitcoin App Desktop 1

I also built a few seasonal easter eggs and decorations that took advantage of a Verlet physics engine to make the website feel more gamey. For example on Halloween we changed our branding and added a spider web to the left navigation.

The action panels and easter eggs were the most creative part of the project and I really enjoyed working on these. Overall the app had some really novel interactive viewership features that had not yet been seen in live streaming - and many people followed suit afterwards.

Gitcoin App Mobile 1Gitcoin App Mobile 2

I was happy this little product made a splash because aspects of it were way ahead of its time. I later saw Microsoft's streaming platform Mixer build something exactly like our action panel.

The business was profitable but it wasn’t making much. The margins were already razor thin in GPT and we were taking an even smaller cut. That would be ok at larger economies of scale but one of the biggest issues with the monetization model was that revenue was dependent on ad fill and available offers.

Even if you had a bazillion users - without any ads to serve that day you aren’t making money. Another issue is high churn. Users who had never used GPT before were very confused in how to navigate and complete offers.

We created some help articles and offered support but when the barrier to entry is really steep people aren’t willing to spend the time to learn, even if it’s to help out their favorite streamer.

For a period of time we opened up Gitcoin to the larger GPT community, allowing anyone to withdraw credits as BTC. That quickly got shut down because we saw the user base fragment and much higher levels of fraud that we were not ready to handle.

We could have built more anti-fraud features to keep chargebacks down but what was really concerning was seeing users that were not there for streams ruin the experience of users who were.

For example, we built a live chat feature where streamers could fund giveaways with their donations to give back to their viewers. A lot of giveaways started getting farmed by bot accounts that would idle in their channel. We tried deterring that by turning giveaways into a game of live trivia.

Streamers would create a question and answer before they started a game. When the question was shown, the first person to guess the answer correctly wins the amount funded by the streamer. To my surprise it was often that users who had no interest in the stream would win.

I decided Gitcoin would not scale as it was so I shut it down early. I think the concept was innovative and the branding was cool, but I really needed to pivot the monetization model. I was also losing interest in the project because I wasn’t happy the product couldn’t utilize crucial tech that would make it 10x.

I decided to revisit the idea once WebGL support became available in popular streaming software.