← Back to blog
Deep dive·May 4, 2026·8 min read

From URL to APK: an architecture overview

What happens between pasting a GitHub URL and downloading a signed APK. A walkthrough of every stage.

AT
Apirex Team
Building Apirex · apirex.in
From URL to APK: an architecture overview

Apirex looks magical from the outside: paste a URL, get an app. Inside, it's a five-stage pipeline. Each stage is replaceable, observable, and (for paying customers) inspectable.

Stage 1 — Ingest#

We accept three input types: a GitHub URL (public or private via OAuth), a ZIP upload, or a deployed website URL. The local agent clones or unpacks the source on your machine and computes a content hash. Nothing about your raw source code leaves your filesystem.

Stage 2 — Analyze#

A static analyzer walks the project. We detect framework (Next.js, Vue, Astro, etc.), routes, API surfaces, auth patterns, payment integrations, and design tokens. The output is a structured 'app spec' — a JSON document that describes your web app the way a senior engineer would whiteboard it.

Stage 3 — Plan#

The app spec goes to our planning model (we route between AI models based on the task). Planning produces a Kotlin module graph: which Composables to build, which ViewModels, which Retrofit interfaces, which navigation graph. This is where the AI does its real thinking.

Stage 4 — Generate#

The plan is materialized into Kotlin source files. We use a templated generator with model-driven slots — the structure is deterministic, only the content is AI-generated. This keeps the output idiomatic and makes it easy to regenerate without trashing your edits.

Stage 5 — Build#

The local agent runs Gradle. Output is a debug .apk for testing and a release .aab for the Play Store, both signed with your keystore (which we never see). On Business plans, you can offload this stage to our cloud builders if you don't want to install the SDK locally.

Why a pipeline#

Each stage has a contract. If a model is bad at planning, we swap it. If the generator improves, every old project benefits without re-running the AI. You get a stable contract with the platform; we get the freedom to make it better underneath you.