Behind the scenes

Engineering behind the scenes

Technical decisions, architecture and what went wrong in the apps we ship.

Why one game is Godot and the others are Flutter

Four of the studio's games are Flutter. One is Godot 4.3, and it was not a whim: a platformer with hand-drawn levels needs a scene editor. What switching tools actually cost.

Keep reading →

The video title kept reverting to the filename

We typed the title, saved, and YouTube gave us back 'jornada 01 cena s s usuario abre o 1'. It took seven videos to find out these were two different bugs, not one.

Keep reading →

The post looked published. It existed for nobody else.

It took 14 hours to find out Reddit's spam filter had swallowed our first post — and it still looked normal on our own screen. What we learned about account and domain reputation.

Keep reading →

Offline-first with Drift and SQLite: an app with no server

RodaGrana computes a rideshare driver's real profit with no back end at all. That is not a limitation — it is the right architecture for the problem. What changes when you take the server out of the equation.

Keep reading →

Moderating memes with AI before publishing, not after

In EuRi a Cloud Function calls Gemini the moment a post is created, and content only goes live if it passes. What that inversion cost in latency, false positives and product complexity.

Keep reading →

Why CyberDropX runs its whole economy on the server

Eighteen minigames, rewards, a global leaderboard and withdrawals — and no value decision made on the client. The main reason has less to do with cheating than you would expect.

Keep reading →

Flame or plain widgets? How we decided across five games

Not every Flutter game needs an engine. Of our five, two use Flame, two run on plain widgets and one left Flutter entirely. The criterion that separates the cases is simpler than the debate suggests.

Keep reading →

Fixed coordinates are debt: six platforms, one bug

A time picker that jumps three hours per click, a toolbar that moves when the text wraps to a second line, a window that resizes on its own. Every publishing failure had the same root cause.

Keep reading →

15,248 lines in one main.dart: what a monolith taught us

One of our apps has a single file with more than fifteen thousand lines. It shipped, it works and it pays bills. An honest account of what that choice gave us, what it cost, and when it stops being viable.

Keep reading →

Eight apps, nineteen channels: what paid off and what wasted time

The honest scoreboard of an organic marketing push: four channels at 100%, five at zero, and one unchecked assumption that left 47 videos live with the wrong text.

Keep reading →