Skip to content
Back to work

Web Applications · Technology & SaaS

SaaS Dashboard Application

For a SaaS business, a multi-tenant product foundation covering accounts, roles, subscription billing and an in-product dashboard, built before feature work began.

Built on
React, Node.js, MongoDB, Stripe
Industry
Technology & SaaS
Project type
Web Applications
Primary service
Web Applications
Scope
Product architecture, full-stack engineering, billing integration, deployment.

Repository not shown as per company policy

01Challenge

Challenge

The interesting part of a SaaS product is rarely the part that takes the time. Authentication, team permissions, subscription states and billing edge cases consume the schedule and are painful to retrofit.

02Approach

Settle who can see what before building what they see.

  • Permission model as a contract

    Roles and their permissions were defined and tested before feature work, so new screens inherit them automatically.

  • Billing as state, not as webhooks

    Payment events update a single subscription state that the product reads, instead of features reacting to payment events directly.

  • API designed alongside the UI

    The interface uses the same documented API customers integrate against, which keeps it honest.

03Outcome

Foundations first, so features stay fast later.

The interesting part of a SaaS product is rarely the part that takes the time. Accounts, permissions and billing edge cases do, and they are painful to retrofit.

  • Multi-tenant from day one

    Every record belongs to an account, and isolation is enforced in the data layer rather than remembered in each feature.

  • One subscription lifecycle

    Trials, upgrades, downgrades, failed payments and cancellations all move through the same states.

  • A dashboard worth returning to

    In-product analytics answer the questions customers were exporting spreadsheets to answer.

What changed

  • Accounts, team permissions and billing states were settled first, so later features did not have to revisit who can see what.
  • Trials, upgrades, downgrades and failed payments run through one subscription lifecycle.
  • A documented API gives customers a stable surface to integrate against.

How it works

Account, product and billing layers.

plan changesdunningAccountsIsolation in thedata layerTeams and rolesInvitations, permissionsApplication dataMongoDBUsage analyticsIn-product dashboardIntegrationsDocumented API accessSubscription lifecycleStripe: dunning and plan changesProductOne application, every tenant isolatedWeb applicationReactAPINode.js, documented

One run, step by step.

01 / 05

Inside the system

What it does.

  • Multi-tenant data model with role-based access control
  • Subscription lifecycle including trials, upgrades and dunning
  • In-product analytics dashboard
  • Team invitations and permission management
  • Documented API surface for integrations

Built with

What it runs on.

Frontend
React
Backend
Node.jsREST API
Data
MongoDB
Billing
StripeSubscription webhooks

The foundations were settled once, so the product can keep growing on top of them.

More work

Related projects.

AI & AutomationTechnology & SaaS

Customer Churn Prediction Model

For a subscription software business, a churn model that flags drifting accounts early enough for the customer success team to act, with the reasons behind every score.

AI & AutomationHealthcare

Autonomous AI Log Monitoring & Observability Platform

For a healthcare media and clinician engagement platform, a five-agent system that reads a production error, writes the fix and opens a reviewed pull request, with an engineer still deciding what ships.

Data & AnalyticsMedia & Publishing

Data & BI Modernization

For an established independent book publisher, a decade of accumulated ETL, warehouse and dashboard tools replaced with one governed cloud platform, without breaking a single number the business depended on.

Discuss a similar project.

If something here is close to what you need, tell us about your situation and we will walk you through how we would approach it.

Intelligence → Innovation → Automation → Growth