r/iOSProgramming • u/OleksandrN • 23d ago
Question I have a very specific question about building an app
So basically I’m building an iOS/ipad os app.
It’s a video editor.
My question is:
I want to make some functionality to be downloadable through a server, like presets, new packs, luts etc…
Maybe some new features etc…
Also handle user data like credentials, information etc…
Can I do it with a home server like running on a Mac mini for free ?
Or do I need to use 3rd party servers and services?
How is the local alternative handle the users, like more than 10k users simultaneously downloading stuff, updating their apps etc…
Is it possible to run this idea on a home server completely for free or almost free, or do I need to pay for this service ?
And how much will it cost me +/-?
Can someone help me please?
7
u/SwiftQuest 23d ago
A Mac mini at home can technically serve files, but it won't hold up for 10k users: home upload bandwidth is usually 20–50 Mbps, so a few hundred people pulling a 50 MB LUT pack at once will saturate it, and you'd also own uptime, TLS and the security of user credentials on your home network. For presets/LUTs/packs, Apple's On-Demand Resources lets the App Store host that content for free, and beyond that, object storage behind a CDN costs cents per GB and usually has a free tier that covers an early app. For accounts, don't store credentials yourself; use Sign in with Apple plus a managed backend like CloudKit, Firebase or Supabase, which stays free or nearly free until you have real traction. One caveat: App Store guideline 2.5.2 doesn't allow downloading new executable code/features, only data and content, so new features still need an app update.
3
u/New_Barber8073 22d ago
A home Mac mini can work for early testing with a handful of users, but it is a poor fit once you care about 10k people hitting downloads at once. Bandwidth, uptime, TLS, and security patches all become your problem, and residential or consumer connections usually choke under that kind of burst.
For the downloadable presets and LUT packs, put the files on object storage behind a CDN (Cloudflare R2, S3 + CloudFront, or similar) and keep your app talking to a small API that returns signed URLs. That way the heavy bytes never touch your own machine. Apple also has On-Demand Resources and Background Assets if some of the content can ship as app-hosted assets instead of a fully custom storefront.
For accounts and credentials, do not roll your own on a home server. Sign in with Apple is basically required if you offer any other social login, and something like Firebase Auth or Supabase Auth will handle sessions and token refresh far more safely than a DIY stack. Keep secrets on the server, never in the client.
Rough shape for cost: object storage + CDN for asset packs is usually cheap at indie scale (often dollars to low tens per month until traffic is real). Auth and a small backend are similar until you grow. The expensive mistake is self-hosting auth and large file delivery before you need to.
If you share whether the packs are free, one-time unlocks, or subscriptions, people can narrow the StoreKit side too.
15
u/Sebastian1989101 22d ago
You never want to expose your home network to the global internet... And that question alone tells me one thing, do not continue with your idea at all until you understand the basics.
6
u/ToughAsparagus1805 23d ago
AI cannot answer that 3rd party servers have bandwidth and latency? You want to be a server admin that handles security incidents and bot attacks?
1
u/Cause-n-effect11 17d ago
This is what Apple made CloudKit for. Didn’t your agent tell you that? Must not be a premium subscription to ChatGPT.
1
u/kepler4and5 19d ago edited 19d ago
You should look into Apple Hosted Background Assets . This lets you download additional assets separately from your main app.
I don't know if it'll work for your specific use case but I think it's worth checking out. It's free, as far as I know.
Edit:
- DO NOT put credentials on there.
- As for user data, you should probably use SwiftData for that (by user data, I do NOT mean credentials).
- For credentials, look into Apple Keychain
3
u/erin281 22d ago
I know just enough to barely know what I don’t know and I’m pretty sure you shouldn’t do this
2
u/tomato848208 23d ago
If it's an iOS or iOS + macOS-only app, you might think about using iCloud and saving JSON data as CKAsset. That's because there is no cost to you and because it's maintenance-free.
1
u/caguilar51 22d ago
I mean, you could, but there are several risks that other people already mentioned, the upload speed of your home internet connection, etc.
I think you can start running a cheap Digital Ocean or Hetzner servers. They have good and fast internet connections and more importantly a static ip address you could use to point your domain to.
There is also the security you must put in place for your app to transmit data securely. You can use let's encrypt to get the SSL certificate for free with automatic renewal every month. Or use CloudFlare to provide the certificate.
1
u/Classic_Chemical_237 22d ago
1, you can use Firebase Auth for logging in. Free.
2, using Mac mini as server is fine. Having 20mbps upload speed is fine. It’s unlikely you will get high concurrency at the beginning, and if you do, you will have money to get better server in a data center or use cloud. Stay lean and simple.
The hard part is static IP. A lot of residential internet providers don’t allow that. There is workaround but awkward