For a couple of years I bought a new domain for every app the moment I named it. It felt like the responsible thing to do: real product, real domain. fatetarot.app, a handful of others, and a quiet graveyard of registrations for apps that never made it past TestFlight.

Then I did the math on renewals. Every dollar sitting in a domain for an app nobody downloads is a dollar that did not go into ads for the one app that is actually getting traction. For a solo developer that tradeoff is the whole game.

The real cost was not the money

The renewals stung, but the bigger tax was attention. Each domain meant another DNS zone, another set of email records, another privacy and terms page hosted somewhere, another thing to keep alive and remember. Six apps turned into six tiny ops burdens before a single one had proven itself.

A domain per app is a bet that every app will win. Most of mine will not, and that is fine.Me, after the third renewal email in a week

So I collapsed it. One domain, moetalaat.com, and a section per app underneath it. The convention is boring on purpose, which is exactly what I want from infrastructure.

The convention

  • moetalaat.com/<slug> is the product landing for each app.
  • /<slug>/privacy and /<slug>/terms hold that app's legal pages, written from its actual data flow.
  • /<slug>/support is the app-specific help page.
  • Every app shares one support inbox: support@moetalaat.com.
A bar chart on a screen trending upward
Consolidating freed up the renewal budget for the one channel that compounds: ads on the app that is working.

When an app changes in a way that affects its privacy or terms (a new analytics SDK, a new subscription, a new data flow), the change happens here, in the matching page, not buried in the app repo. The apps just link out to these URLs from their settings screens.

Apps can still graduate

This is not anti-branding. It is sequencing. If an app earns real traction, it gets its own domain and moves out, and that move is a celebration, not a default. Appolar did exactly that: it now lives at appolar.com with its own marketing and legal pages. The rest stay home until they prove they should leave.

What every app gets under the shared domain

  • Its own product landing page
  • Honest privacy and terms written from the real data flow
  • An app-specific support page
  • A shared support inbox that I actually read

This blog is where I write the rest of that journey down: what I ship, what breaks, and what I would do differently next time.