On your phone

The app for a deployment you already use

A native Android client — Kotlin and Compose, not a website in a frame. It shows the live game data a deployment publishes, the news and wiki it hosts, and the parts of your account that make sense on a phone.

It is open source like everything else here, and it carries no Google messaging dependency: notifications arrive over a server the operator runs.

It is a client. It ships pointed at nothing.

The first screen asks for the web address of a site running Runic Gateway and checks it before anything else in the app will open. There is no default server, no directory of servers, and no account with us — the app talks to the deployment you name and to nothing else. If you do not run one and are not a member of a community that does, the app has nothing to show you yet.

What it does

Grouped by what you would open it for. Most of this is conditional on the deployment you connect to — a community that runs no game module has a news and account app, and that is a legitimate way to run this.

The shard, live

The same feed the website shows, on a phone. Every one of these appears only when the deployment runs a game module and the operator has published that surface — the visibility settings are per-feature and default to off.

  • Status, and the boards

    Whether the game server is up, plus champion spawns, guilds, city governors and houses as the shard reports them.

    NeedsA game module, and the matching visibility feature

  • The player marketplace

    Player-run vendors and what is on their shelves, down to a single vendor. Item names arrive as the game's own string ids and are resolved against its string table, so they read the way they read in the client.

    NeedsA game module publishing the market

  • Rules, leaderboards and the spawn atlas

    The deployment's published ruleset, its points and loyalty boards, and the creature atlas — what spawns where, and what it drops.

    NeedsA game module, per feature

The site's content

News, wiki and pages, read natively rather than in a browser frame.

  • News, by category

    Announcements and posts in the categories the site defines, and a link from anywhere on the web opens the matching tab rather than the top of the list.

  • The wiki and the site pages

    Wiki articles and whatever pages the operator has written in the admin panel, including the ones they added to the navigation themselves.

Your account

Staff are players too — the self-service screens are role-agnostic, and an administrator sees their own characters on the same screen everybody else does.

  • Signing in, including two-factor

    A native sign-in with an authenticator code or a single-use recovery code, or single sign-on handed off to the deployment's own provider in a browser tab. Trusting a device skips the code for thirty days, and that trust is revocable per device from the app.

  • Your characters, vendors and houses

    Character sheets, the vendors you run and the houses you own, visible to the account they belong to and to nobody else.

    NeedsA game module

Notifications, on infrastructure the operator owns

Opt-in, per stream, and delivered without a third party — which is unusual enough to be worth spelling out.

  • Self-hosted push

    Push arrives over the deployment's own ntfy server, not Firebase. The app has no Google messaging dependency at all, which is why it works on a device with no Play Services and why no notification passes through anyone else on its way to the phone.

    NeedsAn ntfy server the operator runs

  • The message carries no content

    What is pushed is which stream fired and an opaque reference — never the subject, the sender or the text. The app opens the right screen and fetches the actual content over the authenticated API, so a notification sitting on a lock screen discloses nothing.

Staff work, if you are staff

Gated by role in the menu and re-checked against the database on every request, so a demoted account loses the screens immediately rather than at next sign-in.

  • Moderation, support and content

    The dashboard, the moderation queue, support requests and content editing — enough to answer a report from a phone. The surfaces that would let somebody reconfigure the deployment stay on the web.

    NeedsA staff role on the deployment

It looks like the deployment it is pointed at

  • The theme comes down the wire

    The palette, the type, the corner radii, the logo, the hero image and even the navigation order are read from the site's own appearance settings. Two communities running this app do not see the same app, and neither of them had to build one.

What it looks like

Captured against a real deployment with real content, not mocked up. The app takes its colours, type and navigation from the site it is connected to, so these show one community's app rather than a neutral one.

  • The app's home screen, showing the deployment's emblem and name, a live online indicator and its description.

    The app is one screen of setup: type the address of a site, and it becomes that community's app.

  • The app's shard screen, showing the shard online with one player and its gold supply, links to champion spawns, guilds, governors and falling houses, and a live activity feed.

    The same bridge feeds the phone: the same player online, and an activity list that is live — those houses entered their final decay stage while it was open.

  • The app's marketplace, listing weapons for sale with their price, the shop selling them and where it stands.

    Every player vendor on the shard, searchable from a phone.

  • The app's wiki index, listing pages with their category and summary above a search box.

    The wiki, the news and the rules are the site's own content, rendered natively rather than in a web view.

  • The app's account screen for a signed-in player, with username and password controls, two-factor authentication, trusted devices and recovery codes.

    Self-service, and the same session model as the website: two-factor, trusted devices and recovery codes all live here.

  • The app's navigation drawer for a signed-in player, listing the deployment's own pages above the player's own account, characters, vendors and houses.

    The drawer is the deployment's own navigation, not a fixed menu — a site that renames or reorders its pages renames and reorders them here.

Two ways to get it

Neither is the “real” one. Sideloading works today and always will; the closed test is how it reaches a phone through Play, with updates that install themselves.

Direct download

The signed APK

The published build is being replaced. v0.5.0 is on the releases page but does not install and run correctly, so this page does not link it — a download that wastes your time is worse than no download.

The next release restores this. Nothing about the app has been withdrawn and the source has not moved; it is one build that went out wrong.

The releases page

Android 10 or newer · installs as com.runicgateway.app

Google Play

The closed beta

Delivery through Play, and updates that arrive on their own instead of being downloaded again. It is a closed test, so a place on it has to be granted — the list is being collected now.

It has not opened yet, and the page says why in full rather than promising a date: Play needs 12 people opted in for 14 days before the app can go any further, and a tester needs somewhere to point it.

Join the list

No email is ever sent · the address is used for the tester list and nothing else

Not built

What the app does not do

Every one of these is a decision rather than a backlog item, so each says why. Where the reasoning was written down in the open, it is linked.

  • A public demo you can click through

    Planned and out of scope today: a virtual machine running the whole stack including a game server, with settings locked down and an hourly reset. Until it exists this site does not link to one, and there is no screenshot here of something that is not running somewhere.

    What would change itThe machine being stood up. The site is already built to gain it by way of one line in a configuration file, rather than a rebuild.

  • An iOS app

    Android only. There is no iOS build, no cross-platform layer waiting to grow one, and no work in progress — the app is native Kotlin and Compose, so a second platform would be a second app rather than another build target.

    What would change itNothing planned. A deployment is a website first, and that works on any phone.

  • A listing on Google Play

    The app is not published. A developer account exists; the closed test is the next step, and production access cannot even be requested until a run of testers has been opted in continuously — which is what the beta is for, and why the beta is not a formality.

    What would change itThe closed test running its course, and then a production review.

  • Reading anything offline

    Every screen is a live read against the deployment. Nothing is cached for offline use, so the app with no signal is an app with no content.

    What would change itSomebody asking for it. Nobody has.