Functional DemoAnalytics System

Admin Portal

Central analytics and management console for a suite of home-services sub-apps.

Oasis Empire admin dashboard with 43 organizations, 35 users, $362 MRR, an empty MRR trend chart, revenue-by-app bars, and an apps summary table.
Platform admin dashboard

What it solves

Running several separate sub-apps means user, revenue, and health data lives in as many places as there are apps. Operators had no single view of platform-wide MRR, no way to search a customer across apps, and no early signal when one app went down or started throwing errors.

Built for Platform administrators operating the SUBAPPS suite.

Overview

Admin Portal is a central hub that gives platform administrators visibility into seven home-services sub-apps at once. It ingests usage, error, and billing events from each app, then presents platform-wide KPIs, MRR and ARR trends, per-app metrics, and cross-app search of organizations and users. Scheduled background jobs poll each app's health, sync organization and user data, and compute daily metric snapshots. Access is separated across super, support, billing, and read-only admin roles.

What this demonstrates

An event-ingestion API (single, batch, and error events) paired with a drop-in tracker library that sub-apps call. Scheduled background jobs using BullMQ, Redis, and node-cron for health checks, org and user sync, and daily metric rollups. Cross-app metric aggregation, Stripe-backed revenue reconciliation, and role-scoped admin access with JWT refresh tokens.

What makes it different

One console for a whole platform: every sub-app's users, revenue, and health in a single admin hub.

  • Platform-wide visibilityMetrics across seven sub-apps in one place.
  • Event ingestionSub-apps push usage, feature, and error events via a shared tracker library.
  • Scheduled syncBackground jobs poll health and sync org and user data on a schedule.
  • Role-scoped accessSuper, support, billing, and read-only admin roles.
  • Revenue trackingMRR and ARR reconciled from Stripe billing data.

Core capabilities · 12

  • Dashboard KPIs

    Platform-wide metrics, MRR trends, and user growth.

  • Per-app analytics

    App-specific metrics and historical trends.

  • Organizations search

    Search and manage organizations across all apps.

  • Users search

    Find and inspect users across the platform.

  • Billing

    MRR and ARR summaries, revenue per app, and failed payments.

  • Health monitoring

    System health, error tracking, and job status.

  • Event ingestion API

    Single, batch, and error event endpoints for sub-apps.

  • Background sync jobs

    Health checks, org and user sync, and daily metric snapshots.

  • Admin management

    Manage administrators and roles, super-admin only.

  • Feature flags

    Feature flag definitions with per-organization overrides.

  • Cross-sell programs

    Marketing messages, enrollments, and send logs across apps.

  • API keys

    Keys governing sub-app event ingestion.

How it works

  1. Sub-apps emit login, feature, and error events via the tracker library
  2. Portal ingests events through single, batch, and error endpoints
  3. Scheduled jobs sync organizations and users from each app
  4. Health checks poll every sub-app's health endpoint
  5. Daily jobs compute metric and revenue snapshots
  6. Admins view dashboards, billing, and health
  7. Admins search and manage orgs and users across the platform

Key screens

  • DashboardPlatform KPIs, MRR trend, and user growth.
  • AppsPer-app analytics and metrics.
  • OrganizationsSearch and manage organizations.
  • UsersSearch users across the platform.
  • BillingMRR, ARR, and failed payments.
  • HealthSystem health, errors, and job status.
  • SettingsAdmin management for super admins.

Data model

  • PlatformAdmin
  • SyncedOrganization
  • SyncedUser
  • AnalyticsEvent
  • DailyMetricSnapshot
  • PlatformDailySnapshot
  • StripeWebhookEvent
  • SyncedInvoice
  • AppHealthCheck
  • ErrorLog
  • AdminAuditLog
  • SyncJobRun
  • ApiKey
  • FeatureFlag
  • SubscriptionPlan
  • AppCatalog
  • CrossSellProgram
  • MarketingMessage

Screens · 8

Oasis Empire Apps overview with cards for CRM Empire, AdjusterBook, JobCam, Crew Tracker, PriceCraft, Objex, RepLift and more, each showing org, user, and MRR counts.
Apps overview
AdjusterBook app admin overview: 2 orgs, 0 active users, $29 monthly revenue, a subscription-status donut, and top organizations by MRR table.
App admin overview
Organizations table across all apps showing name, app, active or trialing status, MRR, user count, and created date per row.
Organizations list
Users table across all apps listing email, name, app, organization, role, last login, and join date; most roles are admin and never logged in.
Users list
Billing dashboard with $362 MRR, $4,344 ARR, empty MRR trend chart, a revenue-distribution pie by app, and a revenue-by-app table.
Billing analytics
System Health page with platform status CRITICAL, per-app response-time cards (RooferLite failed, CRM Empire 404), no recent errors, and background jobs.
System health
Marketing Settings for a paused cross-sell program: initial delay and cadence fields, email/SMS channels, max discount slider, and how-it-works notes.
Cross-sell settings
Message Library with per-app tabs and an email sequence for Adjuster Database: welcome offer, reminder, and last chance messages with merge fields.
Marketing message library

How it is built

An Express and Prisma backend on PostgreSQL exposes the admin API and ingestion endpoints, with Redis and BullMQ plus node-cron running the scheduled sync and health jobs. A React and Vite frontend renders dashboards and charts with Recharts. Authentication uses JWT access and refresh tokens, and Stripe, Twilio, and SendGrid handle billing data and notifications.

APIs and services

Stripe
Twilio
SendGrid

Classification

Industries
Home Services

Related work

Supplement Tracker

Functional Demo

Insurance supplement management for roofing contractors, with adjuster communication and AI.

CRM Empire

Functional Demo

Central CRM that unifies a cluster of home-service apps under one role-based platform.

RoundRobin Dial OS

Functional Demo

Multi-tenant SaaS command center that parallel-dials opted-in leads and routes only answered calls to available agents.

Building something with similar Analytics, Dashboards, Reporting functionality?

Start a project and reference this one — the conversation begins with what you have already seen.

Start a project