Deploy, roll back and monitor 13 hosting, BaaS and observability providers from your Android phone. Pocket Code's Backend Manager runs it all from the IDE.
Production breaks and you're on the bus. A deploy needs a rollback, an environment variable is wrong, and the only thing in your pocket is a phone β not a laptop with the Vercel dashboard, the Cloudflare console and the Sentry tab all open. The usual answer is "wait until you're home." Pocket Code's Backend Manager removes that wait: it's a unified panel to manage your backend from your phone, wired to the real provider APIs, living right inside the IDE next to your editor and terminal.
It is not a link farm to web dashboards. It talks to the providers directly, holds your tokens in encrypted device storage, and adapts its UI to exactly what each provider's API actually supports.
The Backend Manager splits everything that orbits your project but lives outside the code into three independent hubs. You pick one from the welcome screen and land straight in its provider grid.
| Hub | Providers | The question it answers |
|---|---|---|
| Deploy | Vercel, Render, Netlify, Railway, Fly.io, Cloudflare, DigitalOcean | "Where does my app run?" |
| BaaS | Firebase, Appwrite, Convex, Supabase | "Where is my data and where are my users?" |
| Observability | Sentry, PostHog | "Is it working in production?" |
Navigation is gesture-based β there are no visible tabs and no back button in the header. The back gesture walks you one level up, then back to the welcome screen, then closes the panel.
Every hosting provider exposes a different slice of API surface, and the Backend Manager doesn't pretend otherwise. Instead of showing greyed-out buttons, it hides actions a provider can't do β so you never tap something that returns "not supported." Here's the shipped matrix, verified against the real dispatch code:
| Capability | Vercel | Render | Netlify | Railway | Fly.io | Cloudflare | DigitalOcean |
|---|---|---|---|---|---|---|---|
| List projects / services | Yes | Yes | Yes | Yes | Yes | Pages | Apps |
| Trigger deploy | β | Yes | Yes | β | β | β | Yes |
| Rollback | Yes | Yes | Yes | Yes | β | Yes | Yes |
| Env vars (read + write/delete) | Yes | Yes | Yes | Yes | β | β | β |
| Custom domains | Yes | β | β | β | β | Zones | β |
| Build config write | Yes | Yes | β | β | β | β | β |
| Cancel deployment | Yes | β | β | β | β | β | β |
| Suspend / Resume | β | Yes | β | β | β | β | β |
| Servers / VMs | β | β | β | β | Apps | β | Droplets |
So you can deploy a backend on Android by triggering a build on Render, Netlify or DigitalOcean; promote or roll back on Vercel, Render, Netlify, Railway, Cloudflare or DigitalOcean; edit and delete environment variables on Vercel, Render, Netlify or Railway; and suspend or resume a Render service β all from the phone.
Two honest caveats. Spinning up a brand-new project through the One-Click Deploy wizard currently resolves only for Vercel β the other providers appear in the wizard but aren't wired to a real endpoint yet. And preview deploys and branch/Git deploys have their screens built but don't trigger yet; that wiring is a follow-up, so the manager keeps those actions out of the way for now.
Under the hood these are the providers' own REST and GraphQL endpoints. A
rollback on Render, for example, hits POST /v1/services/{id}/rollback; a
Vercel promotion goes to POST /v10/projects/{id}/promote/{deploymentId}; env
var writes on Railway run a GraphQL variableUpsert. Deleting an env var always
asks for confirmation first.
Three providers have far more surface than a basic deploy flow, and the Backend Manager surfaces it through capability sub-hubs that load lazily and cache per session.
POST /zones/{id}/purge_cache). The account ID is
resolved automatically and cached for the session.All of these run under a single reusable list screen, which is why the module can offer 21 different capability views without bespoke UI for each one.
The BaaS hub is where you keep an eye on your backend as a service stack.
GET /v1/users, authenticated with X-Appwrite-Key).tables query. You can also run any Convex query against the live
deployment and get the result summarized back to you.anon key on demand, hits the PostgREST schema
endpoint, and parses the public table names out of the OpenAPI definition.
That anon key is never persisted β it lives in memory only for the length of
the call.One honest note: Firebase is a read-only placeholder today. Listing Firebase projects needs an OAuth scope the module hasn't wired yet, so selecting it shows an informational message pointing you to the Firebase Console rather than pretending to list projects.
The Deploy hub also ships a local Kubernetes YAML generator. You fill in an
app name, image, replica count, ports, namespace, and CPU/memory requests and
limits, and it emits a single YAML document containing a Deployment and a
matching Service, ready to paste into kubectl apply -f -. It's purely a
generator β it doesn't connect to a cluster, apply anything, or validate against
a live API. It just saves you from hand-writing boilerplate on a touchscreen.
Every provider token is stored with SecureTokenStorage β EncryptedSharedΒ
Preferences backed by the Android Keystore, using AES256-GCM for keys and
AES256-SIV for values. Nothing is sent to our servers.
Before any provider call, the Backend Manager checks whether a token exists. If
it doesn't, it makes zero API calls and instead shows a "Connect provider"
empty state with a button to open integrations. That deep link is protected by a
biometric gate β BIOMETRIC_STRONG | DEVICE_CREDENTIAL β so someone with
your unlocked phone can't jump from the Backend Manager into your saved API keys
without authenticating first.
The doc is specific about gating, so we'll be specific too. A few capabilities sit behind a plan feature:
| Action | Plan feature |
|---|---|
| Open the Custom Domains screen | CUSTOM_DOMAINS |
| Rollback a deployment | PREVIEW_DEPLOYS |
| PostHog Feature Flags | COLLABORATION |
On the free plan, maxActiveDeploys is 1 β so triggering a second
concurrent deploy (counting deployments that are ready, building or deploying)
is what raises the PREVIEW_DEPLOYS gate. Listing projects, reading env vars, browsing
Cloudflare and DigitalOcean sub-hubs, generating Kubernetes YAML, and viewing
Sentry issues and PostHog insights are all part of the core experience.
Because the Backend Manager lives inside Pocket Code, the AI assistant can talk to it over the app's event bus. Ask it about a deploy and it can trigger one, report deploy status, summarize recent deployments as log lines, or list your projects across the Deploy and Observability hubs β all grounded in the state you're already looking at.
Managing a backend used to mean a desk, a laptop, and a fistful of browser tabs. It doesn't anymore. Pocket Code puts hosting, BaaS and observability β thirteen providers, real API calls, encrypted tokens β in the same app where you write and ship the code.
Pocket Code is heading to Google Play. Join the pre-registration to be among the first to run your backend from your phone.