Business

Building White-Label SaaS Platforms for Resellers

Create white-label SaaS enabling resellers to brand and sell your product. Handle branding, multi-tenancy, and revenue sharing.

All articles
BusinessNexaEx TeamFebruary 8, 2026 8 min read
Building White-Label SaaS Platforms for Resellers

White-Label SaaS Opportunity

White-label platforms let you reach customers through resellers. Your technology, their brand. Revenue scales without proportional customer support overhead.

Architecture Considerations

White-label platforms must support:

Customizable branding:

  • Custom domain per reseller (app.reseller.com)
  • Logo, colors, fonts per reseller
  • Custom email templates and sender names
  • Whitelabeled invoices and reports

Tenant isolation:

  • Each reseller's data completely isolated
  • Separate databases or schema-per-tenant approach
  • Independent feature flags per reseller

Revenue sharing:

  • Transparent usage tracking
  • Automated commission calculations
  • Settlement workflows
  • Custom pricing per reseller

Database Schema Design

For white-label, schema-per-tenant works well:

-- Each reseller gets schema
CREATE SCHEMA reseller_acme;

-- Reseller configuration
CREATE TABLE reseller_acme.config (
  id UUID PRIMARY KEY,
  name VARCHAR NOT NULL,
  domain VARCHAR UNIQUE NOT NULL,
  logo_url VARCHAR,
  primary_color VARCHAR,
  email_sender_name VARCHAR,
  created_at TIMESTAMP
);

-- Reseller's customers
CREATE TABLE reseller_acme.customers (
  id UUID PRIMARY KEY,
  email VARCHAR NOT NULL,
  created_at TIMESTAMP
);

Branding System

Implement dynamic branding:

type ResellerConfig = {
  name: string;
  logoUrl: string;
  colors: {
    primary: string;
    secondary: string;
  };
  domain: string;
};

// Middleware extracts reseller from domain
export function extractResellerFromDomain(domain: string) {
  const [subdomain] = domain.split('.');
  return getResellerConfig(subdomain);
}

// Component uses reseller config
export function Header({ config }: { config: ResellerConfig }) {
  return (
    <header style={{ backgroundColor: config.colors.primary }}>
      <img src={config.logoUrl} alt={config.name} />
    </header>
  );
}

Revenue Sharing and Tracking

Implement usage-based tracking:

type UsageMetric = {
  resellerId: string;
  apiCalls: number;
  storageGb: number;
  month: string;
};

async function recordUsage(metric: UsageMetric) {
  await db.insert('usage_metrics', {
    reseller_id: metric.resellerId,
    api_calls: metric.apiCalls,
    storage_gb: metric.storageGb,
    month: metric.month,
    recorded_at: new Date()
  });
}

async function calculateCommission(resellerId: string, month: string) {
  const usage = await db.query(
    'SELECT * FROM usage_metrics WHERE reseller_id = ? AND month = ?',
    [resellerId, month]
  );

  const platformCost = usage.apiCalls * 0.0001 + usage.storageGb * 0.10;
  const resellerPrice = // depends on reseller's pricing
  const commission = (resellerPrice - platformCost) * commissionRate;

  return commission;
}

Onboarding and Deployment

Automate reseller onboarding:

  1. Create database schema for reseller
  2. Create DNS record for custom domain
  3. Deploy SSL certificate via Let's Encrypt
  4. Send dashboard access credentials
  5. Configure initial branding

Terraform or CloudFormation automates this:

resource "aws_db_schema" "reseller" {
  schema_name = "reseller_${var.reseller_id}"
  database    = aws_db_instance.main.id
}

resource "aws_acm_certificate" "reseller_domain" {
  domain_name       = "app.${var.reseller_domain}"
  validation_method = "DNS"
}

Support and Operations

White-label increases support complexity:

  • Resellers contact you for technical issues
  • You support resellers supporting their customers
  • Issues become "they said you said" chains

Implement:

  • Clear support SLAs for different reseller tiers
  • Knowledge base for common issues
  • API for resellers to fetch usage and manage customers
  • Audit logs so resellers understand their usage

Pricing Strategy

Revenue model options:

Platform fee + usage: $500/month + $0.001 per API call. Predictable revenue, but doesn't scale with reseller success.

Revenue share: Reseller charges customers $100/month. You take 30%, reseller keeps 70%. Scales together.

Hybrid: $200/month base + 20% revenue share. Balances stability and growth.

Commission rates typically 20-40% depending on reseller tier and support level.

Frequently asked questions

How do we prevent resellers from competing with us?

Contractual terms restrict resellers from building competing products. Monitor reseller margins and customer satisfaction. Consider exclusive territories or verticals. Ultimately, add so much value that building competing services isn't economical.

What if a reseller customer wants direct access to us?

Establish clear policies: resellers handle support. Provide resellers with escalation paths for hard problems. In contracts, prevent customer direct contact except through reseller. Make reseller relationship profitable enough they handle issues before escalating.

How do we handle refunds and chargebacks from resellers?

Resellers are responsible for customer billing. You bill resellers for usage. Resellers handle customer refunds from their pool. Separate financial responsibility prevents complex reconciliation. Clearly document this in reseller agreements.

Let's build your next idea

One conversation to scope the work, meet the team, and get a proposal — usually within two business days.