Abuja Digital Studio · Est. 2018
Start a Project
← All plugins
Live · v2.1.0 · Premium

OMobile

The control panel for your WordPress-powered mobile app. A 30-tab cockpit covering REST monitoring, telemetry, crash reporting, device management, push notifications via Expo + FCM + APNS with campaigns and frequency capping, feature flags, remote config, in-app announcements, deep links, an app builder (brand, navigation, homescreen, QR), and content health. JWT + social login, WP-CLI commands, all 19 tables on your server.

WP 6.0+PHP 7.4+19 database tables73 REST endpoints
0Devices in registry
0Push delivery rate
19Database tables
Lifetime updates
~ omobile / dispatch.log
● live

Probe a device.
See what it knows.

A UI simulation of OMobile's device inspector, exactly what you see inside WP admin once installed. Type any install or device id and the panel pulls JWT status, push driver, last crash, and telemetry health from the registry.

Inspect a device.
Read the registry.

Simulated demo. Runs automatically as you scroll. The real plugin reads live data from your wp_omobile_devices, refresh_tokens, crashes, and telemetry tables.

Demo simulation
JWT status·awaiting probe
Push driver·awaiting probe
Last crash·awaiting probe
Telemetry health·awaiting probe

Everything mobile,
nothing extra.

One plugin. Your data lives in your wp_omobile_* tables. The only outbound calls are the push providers and webhooks you configure yourself.

// 30 admin tabs · 19 database tables · 73 REST endpoints across 10 controllers
JWT auth with refresh token rotation
Social login (Google + Apple)
Password reset flow (request + confirm)
Brute force lockout + auth log
API key management with rate limits
Push notifications via Expo
Push notifications via FCM (Android)
Push notifications via APNS (iOS)
Push composer + campaigns + dispatch
Frequency capping + campaign triggers
Push analytics dashboard
Per-user notification preferences
Crash reporting + fingerprinting
Crash status workflow + GitHub linking
Telemetry events + batch ingestion
Sessions (start, end, heartbeat)
Hourly telemetry rollup + retention
Feature flags with rollout %
Remote config (typed values)
In-app announcements with targeting
Device registry + segments
App version gating + force update
App builder: brand, navigation, homescreen
Deep link registry + universal links + QR
Content sync + content health checks
REST request log + error capture
Outbound webhooks (HMAC-signed)
Postman collection export
Cross-plugin bridges (WC, OMailer, OForms, OMembership, OForum)
6-step onboarding wizard
Audit log for admin actions
Snapshots for safe rollback

Click around.
It's all real.

Six interactive previews of the actual OMobile admin. No screenshots; these are working mock-ups of what ships in the plugin.

Devices

Every install, with platform, app version, push driver, segment membership, and last-seen activity in one admin view.

42,180Active devices
61%iOS share
92%On latest version
14Active segments
Recently seen deviceslive sample
InstallPlatformApp versionPush driverLast seen
b8c4...e21fiOS 17.42.4.1apns2m ago
9a2d...f013Android 142.4.1fcm14m ago
4f8a...c901iOS 17.32.4.0expo1h ago
2c91...d445Android 132.3.5stale3d ago
d07e...b182iOS 17.42.5.0-betaapns6h ago

Push

Campaigns queued and dispatched across Expo, FCM, and APNS. Per-driver delivery stats, A/B variants, scheduling.

Deliveries · last 8 weeksgrowing
Recent campaignsby reach
CampaignDriverSentStatus
spring-launchexpo18,402delivered
weekend-featurefcm + apns12,118delivered
price-drop-Aapns3,212delivered
price-drop-Bapns3,196testing

Crashes

Captured crashes grouped by fingerprint. Click Simulate run to step through how a crash flows from capture to alert.

Crash capturedSDK posts payload to wp-json/omobile/v1/crashes. Stack and breadcrumbs stored.
Fingerprint matchedSHA-1 of stack frames groups duplicates. occurrences and affected_devices increment.
Status workflowNew crash opens with status=open. Triage from the admin or via WP-CLI.
Webhook dispatchedFatal crashes ping your alerting endpoint. Optional GitHub issue link auto-attached.
Open crashestriage
NPE in FeedView (fp 4f8a)1,204 occurrences · 318 devicesfatal
Network timeout (fp 2c91)418 occurrences · 92 devicesnon-fatal
Image decode (fp d07e)92 occurrences · 28 devicesnon-fatal

Feature flags

Boolean and typed flags with deterministic rollout %, install-id hashed so the same device sees the same answer until you change the flag.

10Active flags
3Currently rolling out
1.2MEvaluations / day
0Stale (60d+)
Configured flagsby status
KeyTypeRolloutStatus
new_checkoutboolean35%on
onboarding_v2boolean100%on
premium_paywallboolean50%on
legacy_tabboolean0%off
theme_colorstring100%on

Telemetry

Custom events with property bags, rolled up hourly into wp_omobile_telemetry_rollup so dashboards stay fast even at millions of rows.

Top events · last 24hlive
app.home screen.view
128,418 events · 12,402 devices
play.episode user.action
38,212 events · 9,180 devices
add.to.queue user.action
14,118 events · 4,802 devices
cold.start perf.measure
12,402 events · 11,118 devices
share.tap user.action
8,118 events · 3,212 devices

API keys

Server-to-server keys with scopes, rate limits, and IP allow-lists. Hashed at rest. Last-used tracking and revocation built in.

4Active keys
120Default rate / min
2,418Calls today
0Rate-limited 429s
Configured keyshealthy
ci-deployscopes: snapshot, flagsactive
analytics-pullerscopes: telemetry:readactive
support-readonlyscopes: devices:read, crashes:readactive
legacy-cronscopes: rollupexpiring
Read the developer docs

What you get
vs. what they sell you.

Most teams shipping a WP-backed mobile app end up paying three or four cloud vendors plus writing the glue. OMobile is the whole control panel in one install, with a one-time price.

Firebase + custom WPOneSignalExpo EASOMobile
JWT auth with refresh tokensDIYnonoBuilt in
Refresh token rotation + revocationDIYnonoBuilt in
Brute force lockout on loginDIYnonoBuilt in
Push notifications via ExponoBuilt in
Push notifications via FCMBuilt in
Push notifications via APNSpaid tierBuilt in
Crash reporting + fingerprintingFree (Spark plan)nonoBuilt in
Telemetry events + hourly rollupFree (Spark plan)nonoBuilt in
Feature flags with rollout %Free (Spark plan)nonoBuilt in
Remote config (typed)Free (Spark plan)nonoBuilt in
In-app announcementsnononoBuilt in
Device registry + segmentsnolimitedBuilt in
App version gating + force updatenonoBuilt in
REST request log + replaypaid tiernonoBuilt in
Content health checks (CPT)nononoBuilt in
API key management + rate limitDIYnonoBuilt in
Outbound webhooks (HMAC-signed)paid tiernoBuilt in
WP-CLI surface (10 commands)nononoBuilt in
6-step onboarding wizardnononoBuilt in
Snapshots for config rollbackpaid tiernonoBuilt in
Push composer + campaigns + frequency capnolimitednoBuilt in
App builder (brand, navigation, homescreen, QR)nononoBuilt in
Deep links + universal links + resolvernononoBuilt in
Social login (Google, Apple) + password resetnononoBuilt in
Per-user notification preferencesnononoBuilt in
Postman collection exportnononoBuilt in
Cross-plugin bridges (WC, OMailer, OForms, OMembership, OForum)nononoBuilt in
Pricing modelPay-per-use cloudFree + paid push tiers$19 to $199 / mo$99 once

Clean public API.
Read the source.

PSR-4 namespaced classes, helper functions for the common stuff, 73 REST endpoints across 10 controllers, 10 WP-CLI commands, and a hook surface that lets you extend any subsystem without forking.

// Issue a signed access + refresh token pair for a mobile client.
use Orravo\OMobile\Auth\JwtIssuer;

$pair = JwtIssuer::issue($user_id, [
    'install_id' => $install_id,
    'device_id'  => $device_id,
]);

// Returns:
//   $pair['access_token']   short-lived JWT (1h default)
//   $pair['refresh_token']  rotated on every use, hashed at rest
//   $pair['expires_at']     unix ts, for client-side expiry checks

Choose your plan.
Lifetime or monthly.

No tiers based on monthly active devices. No per-push tax. Pay once, install on the sites in your tier, get every future update free.

// lifetime
One-time payment. All future updates included.
₦240K
≈ ₦120K
// monthly
Cancel any time. No lock-in.
≈ ₦7K/mo

Asked & answered.

What does "control panel for a WordPress mobile app" actually mean? +
If you ship an iOS or Android app that talks to a WordPress backend (REST or GraphQL), OMobile gives you the operational layer that backend is missing. Devices, sessions, JWT auth with refresh, social login (Google + Apple), crash reporting, telemetry rollups, push to Expo + FCM + APNS with campaigns and frequency capping, feature flags, remote config, in-app announcements, deep links, an app builder (brand, navigation, homescreen, QR), content health, API keys, audit log, snapshots. 30 admin tabs, 19 tables, 73 REST endpoints across 10 controllers, all on your server.
Does OMobile send data to a third-party service? +
No. Crash payloads, telemetry events, push tokens, and audit logs all live in your wp_omobile_* tables. The only outbound calls are the ones you configure: Expo / FCM / APNS for push, and any HMAC-signed webhooks you point at your own services.
How does the JWT auth work alongside standard wp_users? +
Refresh tokens are stored hashed in wp_omobile_refresh_tokens with rotation, revocation, and per-install binding. Access tokens are short-lived JWTs (1h default) signed with a key from your wp-config. Brute force lockout uses wp_omobile_login_attempts. The wp_users table is untouched, so existing accounts and capabilities keep working.
Can I use only some of the modules? +
Yes. Each module (logger, telemetry, crashes, flags, announcements, auth, push, app-builder, deep-links, campaigns, cross-plugin bridges) can be toggled in settings. The 6-step onboarding wizard walks you through enabling the ones your app actually needs and leaves the rest dormant. Tables stay empty until something writes to them.
How does the push driver routing work? +
Each device row carries a push_provider value (expo / fcm / apns). When you enqueue a push, the dispatcher groups by provider and sends one batched request per driver. You can target devices by segment, user_id, app_version, or platform. A/B variants, scheduling, and per-campaign stats ship in wp_omobile_push_queue.
Refund policy? +
14-day no-questions refund. We're a small studio in Abuja and we'd rather you tell us what didn't work and let us fix it, but we won't argue if you'd rather have your money back.

Ship a serious mobile app.
Run the control panel on your own server.

Get OMobile for ≈ ₦120K one-time