Viral app in 3 days and how we exceeded Free Firebase plan
9 min read
I’ll try to summarise how we build a viral app in 3 days and what seemed like an internal fun here in codecentric Bosnia ended up us having to change a Firebase pricing plan 😉.
jaje.cc [jaje == egg] was launched on Sunday, 19th Apr, when the Orthodox Christians were celebrating Easter and we had a lot of fun with it. This is a story about that journey, narrated from the moment idea was shared till being actually used on Easter.
Not sure about the Easter customs in your place but here we have tradition of cracking eggs (can’t believe somebody create a video of this but hey, it’s useful this time), and it’s most interesting part for kids, families and friends.
But now, in corona times, we had a total lockdown for the Easter holidays and people were not allowed to leave their homes. Also, a lot of people couldn’t come home from abroad because of closed borders. So we wanted to make something for them. Hey, we’re developers, maybe we can do something to bring a smile on people’s faces.
It all started as a shy idea from my colleague Nemanja Vasić. It resonated very well with few of us and we were like – LET’S DO IT!!!
Maybe we could build something like online cracking egg…
— Nemanja Vasic (check out his other cool side project where he visualises corona impact on Balkan countries)
I mean, we had 3 trending factors for building a viral app
- Easter time and Easter related app,
- Corona time with lockdown and
- it’s emotional since people are experiencing this for the first time, not to be able to visit friends and families.
We didn't have a vision to build a viral app
We had a vision to give an extra reason for happiness on Sunday, and we didn’t aim for big reach.
We were like if only codecentric employees play this on Easter, it will be fun. Even if nothing is launched on Sunday – it would be a funny journey to prepare a full product. No matter how that product is small in terms of functionality, we still have to think a lot about all of those things that follows launching a product.
Background goal was also to spread a word about our company, a place where
- you can get support if you have some idea (even crazy one),
- you have people who are capable to do it from the beginning till the end,
- and they are capable to do it quickly in 2-3 days, there is also room for funny times
and also to generate some content for community building, because we all have enough
#WFH posts with user having cats sitting next to their laptops 😂
One more thing to mention is that this idea came on 14.4. - Tuesday. So we had very little time to think about “game mechanics”, implementation, viral factors, shipping it to the end user etc.
We focused on simplicity, making it shareable, with the simplest technology stack so that everyone can jump in to finish and I will repeat – we really had to keep it simple – since deadline is really fixed. Next year it will probably be the different situation, this one is pretty much unique.
How do you even start building a viral app?
Ensar Bavrk bought domain jaje.cc on 15.4. Wednesday, setup a Firebase Account by the end of the day we had a proof of concept.
Idea was that user can create the egg (name and color), get unique url which can be shared, and whoever opens the link has a possibility to crate their own egg and to respond to the challenge, i.e. to crack the egg. Results could be shared again on social medias to attract more users and we would have a leaderboard, like a top 10 eggs on index page, ordered by the number of the wins.
On Thursday I’ve created a user touch points, or user journey, to go through the complete flow when user:
- hits the index page,
- sees the invitation link or
- sees the challenge match for other 2 friends etc.
We also set a scope of sharing options to include Facebook, Viber, Whatsapp, Twitter.
We had some other options in the beginning as well (see picture) because they were coming out of the box , but we wanted to keep it simple so we didn’t complicate. Even with these options there were some glitches but the decisions were made on the fly. Ain’t nobody got time to prioritise features. There was really no time to think about possible edge cases and we were constantly deciding is it worth going particular path or not, keeping in mind that we still need to ship the product in time. Of course, it would be nice to open FB native app to share it directly, but if it can’t be done – here’s the link, copy it and share it wherever you like. End of discussion, moving to the another topic.
This should be fun, let’s add some D&D
Tin Mijatovic introduced basic Dungeons and Dragons fight mechanism, we could afford such luxury. Very lightweight, but again – a funny journey. And we did this pretty much after our working hours or some people did it in their 20% time (if you wan’t to know more about codecentric 4+1 model, reach out to me).
Meanwhile, Mihajlo Sobat worked on design and Aleksandar Popadic started to think about facebook ads to promote the page in Bosnia, Serbia and Montenegro. We even set up Facebook page for Tuc-Tuc Challenge and make our link previews include the graphics too.
There was an idea of dynamically altering the text on the share preview but again, no time. We tried it, but for our time box it was just too much.
We had first draft of home page done on Friday
From the beginning we had idea of choosing the color for the egg. Nemanja Vasic did that and we soon merged it, so we ended up with simple way to choose a color for the egg
So, one more day left and we were still facing up a lot of unfinished work on many fields. So we spend Saturday mostly on fixing things, deciding what will go live, and what not. What we are not ashamed if we release as it is etc.
Of course, there was an easter egg in an easter egg app. You’re probably guessing , we left console log statement. Something like “If you think you could write this better in 72h, send your CV to codecentric bosnia”. Kudos to Tin Mijatovic for this idea
Of course, we found out ways how you could cheat. And even there was a struggle to prevent that, we draw a line and said – if that will make someone happy, well hey, it’s still aligned with the mission of the product. So we left it as it is. You could cheat to be first on top 10.
So, on Saturday evening we were like – ok, this is going live tomorrow. We know that there are x things to fix/improve, but it is what it is. Ensar Bavrk reset the database entries and we were ready to go. A big test was ahead us to check if we managed to build a viral app in 3 days.
So, the plan was to start the first wave among cc colleagues in the morning, share to our social networks, start the FB campaign and see it in action. I spent the morning with my family, as usual on Easter and then I’ve checked the social medias.
We saw some action already at 09:32
These reads/writes are referring to reading and writing two entities (eggs, and matches). But again, this was at nine o clock in the morning.
Every game has a cheaters
We had one “cheater” as well, Afrojaje who in the end came up as a first, but watching his activity in action, I’ve realised that Ensar also implemented live update for this stream for top 10. You could see live how the numbers are changing and how the top 10 behaves. That was wow moment for me. At one moment we had 65 people on the index page (this is statistics for this top 10 stream)
Some of my previous projects took months to have activity like this. It’s 13:00, let’s hope it will stay under 20k till the end of the day
— Ensar Bavrk
13:00 We have 28/50k reads and 3.2/20k writes.
Even if we were afraid that some trolls would take over this site, it didn’t happen. Anyway, it was funny to see it in action on the social media, between the friends, even if it’s not perfect product. We managed to deliver happiness on this day. And we were proud of it.
Facebook page also get some traction. People were liking something that is meant to be active only one day.
15:20 Ensar is switching from Free to Paid firebase plan as we’re reaching 50k reads. We had 51k reads at 17:00
23:40 Ensar is giving the recap of today’s activity
- 76k reads
- 6.6k writes
- 3.1k eggs created
- 2.6k eggs with one or more wins
- 1.6gb of static content downloaded
- 2.1k unique matches
Wow. 🚀 For an app where you share an egg with your friend. We didn’t expect that much activity
If you want how viral your app is, you better include Google Analytics
We didn’t find time to put Google analytics to analyze this, and we are feeling really bad about it. We didn’t expect it to be this way, and google analytics could bring us a lot more data. Anyway, it’s learning for the future experiments.
So, we had a lot of fun, and lot of traffic there! This is the traffic on Easter, Monday and Tuesday. So people were still clicking on that site. Facebook page had around 300 likes. We believe that we managed to launch a viral app in those 3 days, at least for the area where we targeted our users.
People used it. People re-shared their matches. We were part of it, we made it possible. I’m proud to be part of that team. Although I didn’t contribute as others. If we made 10 people happy that day, our mission is done ✅ but I believe we did more than that. Happy to be part of this company, cheers.