Code apps from your mobile

We love big workstations as much as the next engineering team, but we also love shipping from anywhere. Over the last few months we have stitched together a set of pipelines that let us modify, test, and deploy any of our applications using nothing more than a mobile browser. Here is how the pieces fit together.


App repositories that publish themselves

Each product lives in its own repository with an AGENTS.md playbook so Codex (our AI teammate) knows the ground rules. Once work is ready, a single /release comment on the GitHub issue titled RELEASE tags the repo automatically thanks to a GitHub Actions workflow.

  • Cloud Build takes over as soon as the tag lands, packaging the app straight from source.
  • The resulting artifact is a tidy .zip uploaded to Artifact Registry (generic repositories), versioned as v1, v2, and so on.
  • Because every app follows the same CI recipe, we never wonder which commands to run—even when triggering it from a phone keyboard.

Serving infrastructure that listens

All runtime plumbing lives in a dedicated infrastructure repository. Terraform defines two mirrored environments—staging and production—each with their own Compute Engine VMs and public IPs following the site-name.{staging|production}.serve.siocode.hu convention (plus the final CNAME entries).

Cloud Build watches for two flavors of tags:

  • infra-{staging|production}/vX tags kick off Terraform deployments for the relevant environment.
  • sites-{staging|production}/vX tags publish Pub/Sub messages that fan out to every server.

Our custom Operator service (a Node.js app) is always on duty inside each VM:

  1. Listens for those Pub/Sub messages.
  2. Downloads the requested app bundle from Artifact Registry.
  3. Generates the right NGINX config, provisions certificates with acme.sh, and swaps traffic.
  4. Processes a follow-up message to refresh the app content.

No SSH sessions, no manual rsyncs—just tags and messages.

Codex does the heavy lifting

Codex (chatgpt.com/codex) is wired into the repos with the tools it needs—pnpm, projor, linters, type checkers, and formatters. The workflow is always the same:

  1. Read the local AGENTS.md instructions.
  2. Make the change.
  3. Run type checks, ESLint, and formatting.
  4. Open a pull request.

From a phone we simply review the PR diff, leave comments if needed, and approve. No IDE required.

Shipping ritual from a phone

Once a PR lands, the entire release can be done in a cozy coffee line:

  1. Comment /release on the app issue to build and publish the artifact.
  2. Comment /release on SITES STAGING so Cloud Build tells every staging VM to pull the latest packages.
  3. Open app-name.staging.serve.siocode.hu to verify.
  4. If it looks good, comment /release on SITES PRODUCTION.
  5. Watch production update within minutes.

The only waiting we do is for CI/CD to finish. Everything else is a handful of taps.

Why this matters

The system forces consistency, creates audit trails through tags, and keeps the release process accessible—even when the only device nearby is a phone. It also means travel days, conferences, and hallway chats no longer block urgent patches or last-minute marketing tweaks.

What would you build if your entire deployment pipeline could fit in your pocket?


Got questions about our mobile-friendly pipeline? Reach out at info@siocode.hu.