← blog
Every indie dev needs a control panel for their apps

Every indie dev needs a control panel for their apps

As I shipped more and more KaiOS apps, I needed one place to manage them all. So I built it — and if you run a lot of apps, you should too.

Drafted back in 2023, finally published in 2026.

I reached a pretty large number of apps published on the KaiOS store. Some were simple; others needed a backend and a place to manage things.

So I built my own admin panel, which I nicknamed “God of Apps.” The goal was a portal where I could see my apps’ stats — downloads, ad revenue, and so on — and actually manage them: in the wallpaper app, upload new wallpapers, add tags, see which ones were most downloaded, check the search logs, and more.

I started this webapp a long time ago, with the first app I published on KaiOS — Wallpaper Pro — and kept building on top of it. The stack was Angular with the ngx-admin template. I run a single VPS on DigitalOcean, and all my app servers (written in Node) point to it. For the database I used MongoDB, and for images, Cloudinary. I never blew past their free tiers, so my only real cost was the DigitalOcean VPS — which is also where “God of Apps” itself was hosted.

Let me show you a bit of it.

The dashboard

This is the dashboard. I get an overview of total downloads across my apps, and I can filter by app and by time range. I can also track things like how many wallpaper or ringtone downloads I had. For each app that needed a management tool, I added another menu.

God of Apps dashboard — downloads overview with filters

Per-app management

This one, for example, is where I registered a crypto coin’s icon in my API and which API the app would call to fetch its data. I was using CoinGecko — but the nice part is I could swap it remotely, without deploying a new app.

Crypto app config — icon and data source

Here’s the Ringtones panel, where I’d upload the cover, tags, a sound preview, and the full ringtone. I could also track which ones were most downloaded and dig into the search logs.

Ringtones panel — upload covers, tags, and previews

This is the panel for Wallpapers Pro and Livepapers Pro. In the same place I’d upload static images for Wallpapers and GIFs for Livepapers, with an API flag that made each app serve different content.

Wallpapers and Livepapers panel

Same idea here for ZapOfFun, my WhatsApp sticker maker.

ZapOfFun sticker maker panel

App registry and feature flags

Finally, I also kept all my registered apps here, along with their feature flags. This is where the foundation for my own ad engine lived: I registered each app’s copy in several languages, and which apps a given app would advertise. (My apps cross-promoted each other.)

App registry with feature flags and ad copy per language

That’s it. I built this a long time ago, but this panel helped me keep my apps’ content fresh and easy to update for years.

February 2026 notes

These days, with vibecoding, you can build something like this much faster and pack far more into a single place. I’m building a new one for my other projects — I’ll show it soon — since I’m deprecating my KaiOS apps. The idea is the same: a single hub to control and govern all your apps.