You control it
Switch from Lovable to Bolt, from Netlify to Vercel, or to your own server: repoint the DNS and the store app follows. On a platform subdomain, a move means a new store version and users on old versions see a dead page.
Before you submit
Your app will load one URL forever (or until you ship a store update). Making that URL a domain you own is the cheapest insurance in the whole process: it costs a few dollars a year and prevents the one failure you cannot fix from your builder.
Switch from Lovable to Bolt, from Netlify to Vercel, or to your own server: repoint the DNS and the store app follows. On a platform subdomain, a move means a new store version and users on old versions see a dead page.
Universal Links (iOS) and App Links (Android) tie the app to a domain where you host the association files. Magic-link emails from Supabase open in the app only when the link domain is yours.
An app that loads "id-preview--abc.lovable.app" raises questions; "app.yourbrand.com" does not. Reviewers do not forbid platform domains, but a professional URL removes a reason to look twice.
Google OAuth consent screens, Sign in with Apple return URLs and transactional emails all show the domain. One domain everywhere means fewer configuration mismatches.
Works the same for every builder; the menu names differ slightly.
Any registrar. A subdomain of an existing domain (app.yourbrand.com) is perfect and free if you already own the brand domain.
Lovable: project settings → Domains. Bolt/Netlify: Domain management. v0: Vercel → Settings → Domains. Replit: Deployments → Settings → Domains. Base44: app settings → custom domain.
Usually a CNAME for the subdomain (or A records for a root domain) exactly as the builder shows. TLS certificates are issued automatically once DNS resolves.
Site URL and redirect URLs in Supabase/Firebase/Clerk, the OAuth client in Google Cloud, the return URL for Sign in with Apple, and any hard-coded links in emails.
Config.swift / Config.java or the Cloud Builder. Redirects from the old subdomain keep working, but the app should load the final domain directly.
Add /.well-known/apple-app-site-association and /.well-known/assetlinks.json to your project's public folder when you enable Universal Links and App Links.
lovableproject.com previews, Replit's replit.dev workspaces, ngrok and localtunnel addresses, Vercel preview deployments: all of them disappear or sleep. An app built against one of them stops working for every user at once. The readiness check flags these domains as blockers for that reason.
Yes. Neither store forbids it. The reasons above are about control, deep links and professionalism, not about rules.
Only by redirecting the old URL to the new one on the server side, which you can do with a custom domain but not with most platform subdomains. That is the point of owning the domain.
A subdomain like app.yourbrand.com is ideal: the marketing site stays on the root domain and the app loads straight into the product.
App Store & Google Play approval guarantee – or your money back within 14 days
Prefer to hand it over? Full Service: we configure, build and submit for $349. Questions? Chat with us 24/7.
Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.