Qavren Nexus
One console for the whole portfolio. Lifecycle stage per platform, build-number history, deploys by dispatch.
Three people maintaining more than a dozen products across iOS, Android, and web will eventually lose track of which build is in which store channel. Nexus is the answer to "what's actually live?"
What it is
Qavren Nexus is the internal portfolio and release-management console. It tracks every app's lifecycle stage per platform — iOS, Android, web — owns the release and build-number history, and triggers deployments by dispatching GitHub Actions workflows in each app's own repository. Status flows back through HMAC-signed webhook callbacks.
It is not for sale. It exists because the alternative was a spreadsheet.
What it does well
One place for "where is this?" Lifecycle stage per app per platform, in one view, instead of four store consoles and a memory.
Build numbers that can't collide. Android allocation is floored at Play's live maximum versionCode, so a new build can't be issued below something already published.
Deploys by dispatch, not by SSH. Nexus queues a deployment, dispatches the workflow in the target repo, and waits for a signed callback. The deployment logic stays with the app that owns it.
A CLI that isn't a second implementation. A zero-dependency Node script hits the same API with automation-friendly exit codes — ok, error, failed, timed out — so deployments work from a terminal or a pipeline without the dashboard.
The browser never sees the API. The Next.js dashboard proxies through a backend-for-frontend layer rather than exposing the API surface directly.
What runs on it
Every Qavren product with a release channel. SquareLog was the first tracked app — Android in closed beta, iOS in internal testing — and the roster imports idempotently from a script.
What it looks like in practice
An Android build is ready for the closed-beta channel. One CLI call queues the deployment with a version, Nexus dispatches the release workflow in that app's repo, the workflow reports back over a signed webhook, and the portfolio view updates. The build number came from Nexus, so it can't land under something already in the store.
What it's not
It's not a CI system. The pipelines live in each app's repository; Nexus triggers and records them.
It's not a product. There's no tenancy model, no billing, and no plan to add either.
Status
Running in production on the Qavren web server from a compose file, behind a Cloudflare tunnel with Access in front and no host ports exposed. Recent work: Android build-number flooring against Play's live maximum, restart policies across all services, and dependency remediation. Tech: .NET 10 minimal API + EF Core 10 + PostgreSQL, Next.js 15 dashboard, deployment orchestration over a channel queue into GitHub workflow_dispatch.