April 4, 2022
11 min read
Very recently, I needed to go back to basics, I made a few side projects. And for the latest, I set myself some challenges that I want to tell here.
So why should you read this post?
French version here (of course, it's better written, this blog post is only a translation)
Other posts in this serie:
Obviously given the number of subjects to be treated, it would be too boring in a single post so I suggest you discover all this in a series of post to be published, of which here is the first:
How to develop an idea?
First, if you want to test it out, it's available online at www.coderwatch.io .
The main pitch: learning computer languages and frameworks while playing . You can take quizzes, earn points, and gradually climb the rankings against other players while improving your knowledge.
Good but first, why do a side project?
Above all, I am a developer and I love creating products. But since 2020 I no longer code on Malt. It's a natural evolution of a founder in a company, you have to give space to the teams so that they don't become a bottleneck and allow everyone to take ownership of the vision, while focusing on the long term. And then you have to constantly put your energy where it's most useful, even if it means changing jobs several times.
But hey, it doesn't mean that the desire to code disappears ^^
So, my first objectives:
keep up to date, keep learning, experiment.
But that's not all. I also wanted to give myself a fun challenge.
Fullstack is a catch-all term. Everyone is fullstack, I'm seeing CVs from Fullstack Front, Fullstack Back, Fullstack data etc... (?!)
Ok, and in concrete terms, I wanted to make a site from floor to ceiling, design included and experiment the problems of each jobs.
And I'm not going to lie, it wasn't easy… But I learned a lot, especially on the frontend side.
Besides, I take this opportunity to make a parenthesis. Since the goal here was for me to code a product, I didn't use NoCode tools, but the option was probably viable, if not preferable for a real product launch. However, even if the idea of making a real product is on my mind, I haven't approached this challenge as I would have approached the creation of a commercial product.
At the very beginning, you need an idea to get started on a side project :)
Ok there are people who are able to see very big, very ambitious, who plan to go to the moon, to create autonomous cars and to impact millions of lives and who in addition have the means of their ambition, which doesn't hurt anything. But hey, this is not anymore a side project at all.
So it's much simpler. Most of the time, we come across moments when we lack the little tool or service that goes well. These are small utilities that have been made from time to time nd which could become more mature products.
In recent years at Malt, I have seen a lot of small pains present in companies that could give rise to SAAS tools.
I created a first product before Malt, it was localizeyourapp.com (RIP), following a somewhat messy project to internationalize a site in Chinese. It was an app that basically does what Phrase or Lokalise does today, but in 2010.
As part of Malt I had made a tool to provide 360 feedback for team members (Rocket 360). Since then it has been abandoned and OfficeVibe is used.
And I have plenty other examples.
We sometimes greatly underestimate the “little” devs that we do in our corner and that we consider not useful enough, too simple, too… not perfect enough.
For example, someone on the team coded a slack bot to note everyone's presence the next day in the office. He never considered making a product out of it. Well during the COVID we saw an application launch on this niche.
And so Coderwatch was born .
Coderwatch is the sum of several ideas that come together: a bit of nostalgia, a big attraction for gamification and a link with recruitment.
Nostalgia because I was a user of a site called BlackBeltFactory more than 10 years ago which unfortunately disappeared. It was about earning color belts, like in martial arts, by completing quizzes on development languages. Gamification made the challenge fun.
I could also mention “The Legionnaire”, another online game with general culture quizzes that allowed you to climb the hierarchy of a Roman legion by challenging other players.
Even if BlackBeltFactory was not bad, I think it could have gone much further in terms of gaming. For my part, I play quite a bit and I am very sensitive to gamification mechanisms in applications, and in particular in e-learning. As such, Duolingo is very clearly a model.
And then, throughout my career, I had to pass or have technical tests passed. The least we can say is that it's rarely fun. However, I learned by going through them and I think they can be turn into a useful tool.
In short, I wanted to transpose all of this into an experience that would combine a fun and gamified experience with a very challenging game for devs.
Once the idea is there, the goal is to define an MVP, a minimal version that can hook players.
While doing this, I thought about 3 things:
The value proposition that I see quite immediately is:
When you make a web app, one of the main reflexes is to make a benchmark to study what already exists.
And there, I found lots of cool sites:
Codewars, Exercism, Codingame, Coderbyte, Hackerrank, Welovedevs
All the first have an identical approach, you can code in the browser and therefore work on real algorithms to develop. My favorite is Codingame (developed by Frenchies!).
I like it a lot but the time needed to spend on it is important, you can't play it on mobile on a Metro journey and overall, I find the gamification a bit limited.
On the gamification itself, I much prefer Duolingo which is more oriented towards language learning.
Finally welovedevs comes a little closer to what I'm looking for, since it includes quizzes. The gaming experience remains limited, it's not the main reason for the site but it's still fun to use.
In general, when you find so many application in the same landscape, the first reaction is to tell yourself that you have to move on. They all have quite a few people already working on it, more mature tech (the in-browser IDE), an established revenue model.
But I'll tell you, firstly I think that on the contrary you have to tell yourself that it proves that it can work. This shows that there is an interest in this and that we can even make a profitable business out of it.
Second, I think I can bring something a little different.
And then third, again, I have 0 pressure . It's a side project, at worst it will have cost me money but I would have learned a lot of things. So, I don't care.
By the way, by studying them I discover their buiness models, SAAS dedicated to recruiters to create their own recruitment tests, team building tools, job board etc…
This is the heart of the project since I want it to be fun to play. I want to use the codes and vocabulary of a video game with badges, bonuses that unlock features, levels to pass, a leaderboard, free to play usage etc...
I know that design and ergonomics will be my biggest weakness for this project because clearly that's what should make all the difference and it's far from being my specialty. But it doesn't matter, that's precisely the whole challenge.
I'm not going to spoil you all the game modes I'm considering but I imagine two main modes:
Another aspect that seems important to me is to involve the community of players to create new quizzes and enrich the game.
Except that I know it, the first barrier will be precisely to write the first quizzes. This is my Cold Start problem.
Few quizzes = few players and an interest that quickly runs out of steam.
Few players = few quizzes since a large part of the questions must come from them.
So it bites its tail.
My bet will therefore be to place the contribution request directly on the results page of a game and to reward the contribution with XP points, allowing them also to take off in the rankings.
It will certainly be part of the success metrics but I don't have complete confidence in it.
At first to mitigate this weakness, I therefore decided to make only one game mode available: Arcade mode and only “Random” game (random questions). Players can play one game per day with a maximum of 20 questions if they make no mistakes, I need 100 questions to offer 5 days of play to the best who make no errors, but I can extend the experience to 10 days for those who make a mistake from time to time.
But why think of monetization since I said above that the idea was not to make it a commercial product?
Well, if the objective is to create a community based on a multiplayer game, it will have a cost for me. In this case, I still asked myself the question of how I could generate a minimum income to pay for the service.
So, how much does it cost to run Coderwatch?
In short, the target is not high, you have to succeed in generating around 25 euros per month.
In reality, it's a little more complex than that, if ever there were more users, the consumption on Clever would also increase. But hey, even in the unlikely event of widespread use, I think there's time to see what happens before going over 50 euros per month.
But hey, let's not get carried away. At this stage when I think about it I have 0 users, no site that works yet and the time available to do so is limited to evenings and weekends. In principle it's the right recipe to release something close to 0 and therefore I must probably accept to be for my pocket and to do it for the glory.
Again, that's not my goal . Besides that, I have a job that means that I really have nothing to complain about, so it will remain a hobby.
Yes some have weird hobbies…
That being said, there are a few possible solution. They depend on the traffic generated. Advertising is an option (like Duolingo). Posting job advertisements, via affiliation or directly is another option.
On advertising, AdSense offers a revenue simulation tool based on traffic.
With some basic calculations, it takes about 200 active users per day to reach these famous 50 euros per month, and even then, if no one uses adblock, which would be surprising for a population of devs. It's not the solution that appeals to me the most, I don't like advertising. But hey, you have to keep it in mind because on the other hand it's very simple to implement.
Making a job board is more development, even if it doesn't seem too complex to me. However, it is necessary to have a significant daily traffic to interest companies to post ads. On the other hand, the cost of an ad on a job board varies between 100 and 200 euros for a niche site. With only one ad I reach my objective to pay the price of the service. It is also the option that scales best because with volume it could even become a real income and there are companies for which this is the business model.
Well, it's not very dry, but as I said, it might be mostly for the glory.
That's it for today in this first post of the series. I revealed to you all the thought process behind the first stages of the creation of the game.
As a reminder, you can test it on www.coderwatch.io .
In the next posts I will talk about design, front end integration, backend development and how I deploy it all on Clever Cloud.