No cloud bill. No VPS. My entire business backend runs on an Android phone in my pocket, on a free-tier ARM64 Linux environment, and it does things people pay agencies thousands a month for.
Here's the actual stack and what it does all day while I'm doing other things.
The hardware reality
A mid-range Android phone has more compute than the servers that ran most of the early web. The blocker was never power — it's Android killing background processes. Two settings fix that permanently: disable phantom process monitoring, and exempt the terminal app from battery optimization. After that, it's just Linux.
What actually runs 24/7
Process manager (PM2). Every agent is a small Node or Python process supervised with restart-on-crash and memory caps. If something dies, it's back in seconds. If the phone reboots, a boot script resurrects the whole swarm.
The money watcher. A cron job polls the Stripe API every 5 minutes. New paid charge? My phone buzzes with a Telegram message before the buyer's receipt email has finished downloading. Balance changes get ledgered to a file, so I have an append-only money trail.
The inbox closer. Every hour, an IMAP scan classifies unread replies by intent — hot lead, question, not-now, unsubscribe. Hot leads get an immediate proposal with live checkout links. Speed-to-lead is where small businesses bleed; mine replies in minutes at 3am.
The publisher. Drafts articles from project notes and posts them on a schedule. (Including, structurally speaking, the ancestry of this one.)
The synthesizer. A small audio engine renders royalty-free synthwave loops as WAV files — product inventory that costs nothing to reproduce.
The numbers nobody believes
- Monthly infrastructure cost: $0 (free tiers + the phone I already owned)
- Uptime over the last month: limited only by how often I charge the phone
- Lines of code in the whole swarm: less than a medium React app
What I learned the hard way
- Verify auth live, not by assumption. I lost days to an email password that "worked before." Now the deploy script asks the mail server which credential works before writing a single config line.
-
Never let version N+1 kill version N's processes. Each generation of my scripts used to
kill everythingon startup. Now each swarm owns only its own process names. - Log files lie if you read the wrong end. Half my "still broken" scares were old error lines in retained logs. Flush, restart, then read.
If you want this running for your business
I build and hand over these systems for small businesses:
- Automation Audit — $99 AUD: your stack mapped, hours-burned found, fix plan in 48h. Get the audit
- Systems Package — $499 AUD: top 3 fixes built end to end. Start here
- Build Sprint — $1,999 AUD: one week, your manual loop gone. Book the sprint
Or ask below — happy to answer technical questions about any of it.
Top comments (0)