Analytics on Mage.ai and Superset
Pipelines in Mage.ai, Superset dashboards with role-based access, and my own mobile shell over Superset that opens the same dashboards on a phone.
The problem
Data on payments, subscriptions and ads lived in different services, and reports were put together by hand. We needed one place where teams see up-to-date numbers, each team only its own.
My role
I set up the stack and run it: pipelines, data models, dashboards, roles and access for the teams.
- ETL: regular exports from services and external APIs, normalization, storage.
- Dashboards: from top-level metrics to breakdowns by country, provider and campaign.
- Access: Superset roles so the operations, finance and marketing teams each see their own data.
- Superset View: my own web app the team uses to read dashboards from a phone.
The solution
Mage.ai pulls data on a schedule and stores it in PostgreSQL in a shape that is convenient for reports. Superset reads from there and shows the dashboards. A new source is a new pipeline from a template; a new report is a new dashboard on top of data that is already there.
- Shared fact tables that all reports are built from.
- Freshness and completeness checks: if an export breaks, it is visible right away.
- Roles and per-team filters instead of separate copies of dashboards.
Superset View
The standard Superset interface is awkward on a phone, and people check numbers mostly on their phones. So there is a separate shell on top of Superset: Next.js, TypeScript, Ant Design, charts on ECharts. Login goes through the Superset API with the same accounts and roles, the session is kept in an httpOnly cookie. Everything configured in native Superset — dashboards, charts, filters, text blocks — shows up in the shell right away, without duplication: it reads the dashboard configuration through the API and renders it for a mobile screen. Light and dark themes, an adaptive filter grid, compact tables.
The result
Around 50 pipelines and 30 dashboards. Reports that used to be assembled by hand now update themselves; questions like “how many do we have…” are answered with a link to a dashboard, and that link opens properly on a phone.
Stack
- Mage.ai — pipelines and schedules.
- PostgreSQL — reporting storage.
- Apache Superset — dashboards, roles, access.
- Python — transformations and API exports.
- Next.js, TypeScript, Ant Design, ECharts — Superset View, the mobile shell.
Materials
[Dashboard screenshots with anonymized data, Superset View screens on a phone and a data flow diagram — when ready.]