Wow really nicely built site and great story behind it.
I'd imagine you didn't just publish it in 2017 and magically start gaining traffic. Any good marketing tips learned along the way? It must've been tough at first since this type of game seems to get more fun the more players you have.
Anywhere I could read more about how you got your first users and such? I'm about to launch another one of my own web projects and marketing is always the toughest part.
barbegal 53 days ago [-]
Congratulations! Works amazingly well.
Does it generate enough revenue to be self sustaining?
lombarovic 53 days ago [-]
Thank you! I really appreciate the kind words regarding performance.
Yes, it is fully self-sustaining. In fact, for the last 5 years, it has been my main full-time source of income, running entirely as a bootstrapped project from Croatia.
The revenue comes primarily from ads, plus a smaller portion from Premium ad-free subscriptions. Since I focus heavily on keeping infrastructure costs low (optimized .NET code + moving storage from S3 to Wasabi), the margins are healthy enough to be a very viable, bootstrapped full-time business.
tjchear 52 days ago [-]
That’s really awesome to have a viable self bootstrapped project! Did you have to spend a lot of time maintaining it or deal with customer support after the initial launch? A low maintenance yet viable business would truly be the dream!
lombarovic 52 days ago [-]
It is pretty close to that dream scenario now, yes.
Because the tech stack is stable (and fully matured), I almost never have to deal with 'emergency' technical support or bug fixes. The servers just hum along.
I do handle customer support myself, but the volume is very low relative to the traffic. 90% of the tickets are just non-technical questions about billing or ad-free subscriptions.
This low-maintenance overhead is exactly what allows me to work on new features or experiment with new projects (like my upcoming AI drawing school) without burning out.
jmpavlec 52 days ago [-]
Really well done! Not sure how I never stumbled on your game as I am doing something quite similar (https://gametje.com/). I'm also hosting on a minimal server stack with "boring" tech. Would love to have a chat if you are open to it. I'll send you an email on your support email.
lombarovic 52 days ago [-]
Thanks! Always good to see other folks sticking to simple architecture — it really pays off in the long run.
Feel free to shoot me an email, though I am currently swamped with the responses here and the Academy launch, so apologies if I am slow to reply!
sacredSatan 52 days ago [-]
Amazing achievement! I just wanted to point out that the linked blog page has an incorrect publish date. It says "Published: 12/15/2024"
lombarovic 52 days ago [-]
Good catch! I guess I am still mentally stuck in 2024.
Fixing it now, thanks for letting me know!
wildest-boar 52 days ago [-]
It's ridiculously fast how many regions are you deployed and how it's soooo fast ?
lombarovic 52 days ago [-]
Thank you! I am slightly obsessed with optimization, so hearing that means a lot.
You might be surprised — the game is actually deployed in just one region (US) on only two dedicated servers (Contabo).
Here is the breakdown of why it feels fast:
1. The Metal: I use one server for the Web App + Gameplay Backend (.NET), and a second server strictly for PostgreSQL and MongoDB. No virtualization overhead.
2. The Network: I use Cloudflare for static content, which handles the initial global load speed.
3. Aggressive Prefetching: I rely heavily on ServiceWorkers. When you land on the home page, the 'Play' page and game assets are already being prefetched in the background. When you click play, it loads instantly from the local cache.
4. Single WebSocket: Once connected, there is zero HTTP overhead. Every interaction — gameplay, chat, UI updates — travels through a single persistent WebSocket connection.
Keeping the architecture simple (monolith-ish) rather than distributed helps me keep the latency predictable and maintenance low.
wildest-boar 52 days ago [-]
Really surprised it's just one application machine I thought it's some microservices thing. I thought one machine would crumble under load. Thanks for answering though.
lombarovic 52 days ago [-]
Modern servers are absolute beasts if you don't bog them down with serialization overhead and network hops between services.
With efficient code in .NET, a single machine can handle such kind of load without breaking a sweat. I actually sleep better knowing there are fewer moving parts to fail!
53 days ago [-]
pengaru 51 days ago [-]
Fun!
53 days ago [-]
Rendered at 16:09:28 GMT+0000 (Coordinated Universal Time) with Vercel.
I'd imagine you didn't just publish it in 2017 and magically start gaining traffic. Any good marketing tips learned along the way? It must've been tough at first since this type of game seems to get more fun the more players you have.
Anywhere I could read more about how you got your first users and such? I'm about to launch another one of my own web projects and marketing is always the toughest part.
Does it generate enough revenue to be self sustaining?
Yes, it is fully self-sustaining. In fact, for the last 5 years, it has been my main full-time source of income, running entirely as a bootstrapped project from Croatia.
The revenue comes primarily from ads, plus a smaller portion from Premium ad-free subscriptions. Since I focus heavily on keeping infrastructure costs low (optimized .NET code + moving storage from S3 to Wasabi), the margins are healthy enough to be a very viable, bootstrapped full-time business.
Because the tech stack is stable (and fully matured), I almost never have to deal with 'emergency' technical support or bug fixes. The servers just hum along.
I do handle customer support myself, but the volume is very low relative to the traffic. 90% of the tickets are just non-technical questions about billing or ad-free subscriptions.
This low-maintenance overhead is exactly what allows me to work on new features or experiment with new projects (like my upcoming AI drawing school) without burning out.
Feel free to shoot me an email, though I am currently swamped with the responses here and the Academy launch, so apologies if I am slow to reply!
Fixing it now, thanks for letting me know!
You might be surprised — the game is actually deployed in just one region (US) on only two dedicated servers (Contabo).
Here is the breakdown of why it feels fast:
1. The Metal: I use one server for the Web App + Gameplay Backend (.NET), and a second server strictly for PostgreSQL and MongoDB. No virtualization overhead.
2. The Network: I use Cloudflare for static content, which handles the initial global load speed.
3. Aggressive Prefetching: I rely heavily on ServiceWorkers. When you land on the home page, the 'Play' page and game assets are already being prefetched in the background. When you click play, it loads instantly from the local cache.
4. Single WebSocket: Once connected, there is zero HTTP overhead. Every interaction — gameplay, chat, UI updates — travels through a single persistent WebSocket connection.
Keeping the architecture simple (monolith-ish) rather than distributed helps me keep the latency predictable and maintenance low.
With efficient code in .NET, a single machine can handle such kind of load without breaking a sweat. I actually sleep better knowing there are fewer moving parts to fail!