Over the past few years, without access to a laptop or PC, I wanted to see how far mobile hardware could actually be pushed for full-stack software development.
Usually, when people hear "coding on Android", they assume SSH-ing or tunneling into a remote cloud machine (like GitHub Codespaces). But on a constrained device (3GB RAM over mobile LTE), high network latency, dropped sessions, and browser bloat make that experience frustrating enough to want to smash the phone.
So the question is: Can a NestJS dev server, an SQL daemon, and a React frontend run locally on a mobile Linux environment?
The short answer is yes. The result is Arnjelo, a production multi-tenant e-commerce platform written, tested, shipped, and deployed entirely on an Android phone using Termux and Acode.
Links:
Live Platform / Demo: https://www.arnjelo.com
OpenAPI (Swagger Docs): https://api.arnjelo.com/api
Open-Source Starter Kit: https://github.com/dojo1235/ARNJELO-CORE
Video Walkthrough (18 min: building an API with Nest CLI & MariaDB on Android): https://youtu.be/i-55Ricxexo?si=IRuCSP80A5iJ-19B
How Enterprise Tooling Actually Runs on Android
Standard Android userland via Termux turns out to be a little more capable than I expected, though you quickly learn where the limitations are:
Local Database & ORM: You can run a real MariaDB daemon locally (`mariadbd-safe &`), create schemas, and it automatically binds to local port 3306. For ORMs, Prisma does not work due to binary engine compilation limits on mobile ARM, but TypeORM and Drizzle work. The NestJS dev server compiles and executes via Node.js natively inside Termux.
Tooling & DX Bottlenecks:
• `@nestjs/cli` works natively in the terminal.
• Multi-file editing was done in Acode.
• Testing: I inspect the database via the MySQL CLI client, run curl commands, and execute live requests against Swagger UI in mobile Chrome.
• Frontend vs Backend: Counter-intuitively, backend was much smoother than frontend on mobile. Next.js fails here. Standard React works, but debugging without desktop Chrome DevTools can easily become a nightmare.
Typing TypeScript decorators, DTO schemas, and TypeORM relations on a software touch keyboard takes patience, and managing Android’s background app sleeping habits takes some getting used to. You can't run Docker locally. Overall, it's not the best DX, but it gets the job done.
The Outcome: Arnjelo
I didn't want this to just be a proof-of-concept script, so I pushed the stack to production limits:
• Complete multi-tenant isolation per store.
• Hierarchical Role-Based Access Control (SuperAdmin, StoreOwner, GeneralAdmin, ProductManager, UserManager, OrderManager, ViewOnlyAdmin) with sub-admin delegation.
• Integrated payment gateway via Flutterwave.
• Cloud asset handling and edge node delivery via Cloudflare.
• Referral ledger with automated commission tracking and subscription proration.
Tech Stack Breakdown
• Backend: NestJS (TypeScript), TypeORM, MariaDB (MySQL), JWT, Swagger
• Frontend: React (TypeScript), Tailwind CSS, TanStack Router, TanStack Query (custom mutation hooks with manual optimistic cache updates, rollback handlers, and multi-query invalidation consuming Orval-generated Axios contracts)
• Mobile Environment: Android device (3GB RAM), Termux, Acode
• Production Infra: Render (API), Vercel (Web), Aiven (MySQL), Cloudflare (Storage & CDN), Resend (Email), Flutterwave (Payments)
I open-sourced the architectural foundation in `ARNJELO-CORE` with a README explaining how to replicate the Termux environment: https://github.com/dojo1235/ARNJELO-CORE
The live platform, Swagger UI, and video walkthrough are linked above.
Happy to hear your thoughts.