The dashboard · included with the Dev Bundle
The Dev Bundle ships the full source and this dashboard to drive it. Configure the app,
build it for both stores, submit it, and push updates — from a browser on your own
machine. One command opens it: npm run dashboard
Config · eleven cards, one form
What the app is called, how it looks, where it points, who builds it, both sets of store credentials, push, permissions, and memberships. Each field says which file it writes and carries a ? that explains what it is for and where to find the value. Click a card. Every screenshot opens full size.
App Identity · app.json
Name, slug, URL scheme, version, iOS bundle ID, Android package, user agent. Type the name and the rest is derived — every derived field is locked until you unlock it, so the four names that must agree, do.
app.json, package.json
Branding Assets · assets/images/
iOS icon, Android adaptive foreground and background, notification icon, and a light and dark splash. Click any one to replace it; the card shows the size it wants and the size you gave it.

Your WordPress Site · eas.json + app.config.ts
Your site URL and the portal slug that drives Android deep links.

Build Service · app.json
The dashboard checks the build CLI, its version and whether you are logged in, and offers the fix on the same line. Owner, project ID and the updates URL are read from the service and baked into every native build.

Readable Crash Reports · Sentry
Crashes reach Sentry either way. Add your Sentry organisation, project and auth token and every build uploads its source maps, so a report names the real function and file instead of t.a.b(). Saving sends all three to the app’s build-service project.

Apple App Store · eas.json
Store access is by API key, not by account login, so nothing asks for a password or a two-factor code. That is what makes it possible to publish for a client whose account you do not hold the password to.
.p8 on the card
Google Play · eas.json
A track, a release status, and the service-account JSON dropped on the card. The upload keystore needs no command: your first Android build makes it, and the card shows when it did. Same Test credentials button, against the Play Developer API.

Google Cloud
Sign each app in to Google once. The card then answers three questions — what the app uploads to Google Play with, what sends its push notifications, and what checks its purchases — and whose robot each one is, with the evidence behind Show details.

Push Notifications · Firebase
Connect the app to its Firebase project and both config files are downloaded for you. Under each file — the config files and the FCM and APNs delivery keys — the card shows, checked live, whether Firebase and the build service hold the same one, with one button to fix any that differ.

Native Permissions · app.json
Microphone, camera, location. The stock app uses none of them; enable one only when a feature on your site needs it, because Apple rejects apps that declare permissions nothing visibly uses. Each change needs a new build, not an update.

In-App Purchases · package.json
One switch enables the purchase module. Then a three-step readiness check: Apple’s paid-apps agreement, whether your site is announcing purchases yet, and whether the catalogue has been synced to both stores.

The other five tabs · build, publish, update
Same window, next five tabs. Every one reads live from the build service and the two stores — none of it is a log of what you remember doing.
Builds
Bump the version — major, minor, patch — and build for iOS and Android. Four files stay in step, so neither store rejects an upload over a number nobody remembered to change.

Publishing
Reads your listings from Apple and Google and writes back to them. Descriptions, keywords, screenshots, the age-rating questionnaire, and the review notes Apple now rejects apps for leaving empty.

OTA Updates
A change that touches only JavaScript goes to everyone over the air, with no store review. Anything native still needs a build, and the dashboard tells you which you are looking at before you push.

Updates
The app core ships as a versioned package. This tab shows which version each project runs, what the latest is, and updates it in place — your branding, config and modules untouched.

Snapshot
A full picture of the project — config, versions, what is on each store, what is in flight — as one file you can attach to a support request or keep before a change.

All apps · if you look after more than one
The switcher at the top moves between projects, and each keeps its own build-service login. All apps opens a grid — the version each runs, whether it is ready to build and publish, what is live on each store, and anything in flight — with six actions that run across the fleet. Click one.
All apps
One row per project: the app and core version each runs, whether it is ready to build and publish, what is live on each store, the modules it carries, and anything in flight. The six buttons above the grid run an action across every app you tick.

Build
Pick platforms and a profile, and the dashboard queues a build for each selected app under that app’s own build-service login. One at a time, and a failure on one never stops the rest.

OTA push
A channel, a message, and a checklist of apps with their version and core beside each. Pushes iOS and Android together, from each app’s own working copy.

Submit latest
Takes each app’s newest production build and submits it — App Store Connect and Google Play — as a draft, using the API keys on each app’s Config. Nothing goes live from here.

Release
Bump, build, submit, and stage release notes for every selected app in one go. Each step reports per app, so a rejected upload on one client is one line in the log, not a halted release for everyone.

Two ways to get it built
The full source and this dashboard. You configure, build, submit and update it yourself, under your own store accounts.
Not building it yourself? On the Managed tier this dashboard is ours to run. You fill in your details on the plugin’s Managed tab in WordPress, and we build and submit under your own Apple and Google accounts.