Cubit: Enterprise Subscription Management Platform

Cubit: Enterprise Subscription Management Platform

Overview

Company: Piano — global platform powering content monetization for major publishers.

Product: Cubit — B2B platform where companies manage employee access to premium news sites.

Role: Sole Product Designer — UX architecture, UI, design system, visual QA.

Team: 6 people · Timeline: 11 months, ~3 months on admin interface.

The Challenge

A completely new product, built from scratch. No legacy system, no users, no data to lean on.

Core complexity:

  • Internal currency (Cubits) with two cost types — per-article and mandatory monthly minimums. Every admin action affects the budget
  • Policy engine with 6 lifecycle states tied to billing cycles
  • Branding changed twice during development — name, colors, everything
  • All design decisions based on domain research and team collaboration

Key Design Decisions

Always Show the Money. The admin’s #1 concern: “How much will this cost?” So every screen answers that question. When creating a policy, a sidebar shows Cubits available, projected cost, and remaining balance — updating live as the admin makes changes.

New syntax example — no import needed

Policy creation — sidebar with live Cubit balance and projected cost

Pending Users — Preventing Cost Surprises

Auto-synced employees (via SCIM) could silently spike costs. My solution: new users land in a Pending state. The admin reviews each one and sees the exact Cubit impact before approving.

New syntax example — no import needed

Pending users drawer — approve, skip, or reject with Cubit cost breakdown

Audience Rule Builder

Admins filter users by department, title, or location. A live counter shows how many users match — paired with the cost preview, you always see the full picture before saving.

New syntax example — no import needed

Rule builder — filtering by department, title, location with matched user count

Policy List

Policies can be in 6 states, some overlapping (e.g. Active + Scheduled Changes). Three tabs — Active, Drafts, Archived — with secondary badges on each policy. You scan 50 policies without opening any.

New syntax example — no import needed

Policy list — Active tab with “Scheduled changes” and “Grace period” badges

Policy Detail — Current vs. Upcoming

When a policy has scheduled changes, a toggle lets admins switch between “Active state” and “Scheduled changes” No guessing what changes when.

New syntax example — no import needed

Policy detail — current vs. next billing cycle toggle

Design System — Built While Everything Changed

30+ components from scratch, plus icons and typography — all in Cubit’s distinctive squared, pixel-inspired style. Branding changed twice. The system held, but without design tokens it cost extra time.

New syntax example — no import needed

Component library — buttons, tables, filters, icon pack

Decisions & Trade-offs

  • Pending state for SCIM users: Cost safety over seamless provisioning.

  • Changes locked to billing cycles: Enterprise predictability over instant flexibility.

  • 48-hour grace period: Balance between fixing mistakes and system stability.

  • Live cost preview on every action: Over-communicate cost impact — the #1 admin concern.

  • Compound status badges: Clean list view while conveying complex lifecycle.

Reflection

First time designing with zero user data. Every decision came from domain logic and team collaboration.

What I’d do differently: talk to potential users first (even 3–5 calls), set up design tokens from day one, and define a tighter MVP scope to reduce mid-flight pivots.