Solution guide · Custom Software

Building a White-Label Platform for Resellers: Feasibility, Cost and the Parts That Break

The short answer

Yes, this is buildable, and it is one of the most consistently under-quoted capabilities we see. Across Digital Heroes delivery on 2,000+ projects, adding real white-label reseller support to an existing product runs $15,000 to $60,000. Shipping it as part of a first release runs $50,000 to $130,000 in 10 to 16 weeks. A full reseller platform with partner-owned domains, billing and apps runs $150,000 to $350,000 over 6 to 12 months. The number moves on three things: whether resellers bring their own domains, whether they are the merchant of record, and whether they need branded mobile apps.

What white label actually means once resellers touch it

Most vendors quote this as a theming task: read the tenant, swap the logo, inject a hex code, done. That version works for three resellers on subdomains and starts leaking the moment the fourth one brings their own domain.

A platform we were called in to fix ran fine on partner-a.yourapp.com and partner-b.yourapp.com. Two resellers then pointed their own domains at it. The CDN cache key was built from path and query string, never the Host header, because on subdomains nothing had ever collided. Within an hour a customer of Partner A loaded the pricing page and got Partner B's logo, support number and rate card, cached at the same edge location. The fix was one line in the cache key. The cost was a partner relationship, because a reseller's client had just seen a competitor's pricing on what they believed was their vendor's site. Every hard part below has that shape: a shortcut that is correct at three tenants and a data leak at thirty.

Custom domains and TLS certificates

Once resellers want their brand in the address bar, you are running an ACME client on behalf of strangers who control DNS you cannot see. They add a CNAME to your edge, you issue a certificate per hostname, you renew it forever. The traps, in the order they bite:

  • Apex domains cannot hold a CNAME. RFC 1034 forbids it. Resellers want reseller.com, not app.reseller.com. You either require a subdomain in your onboarding policy, or you hand them an A record pointing at an anycast IP, or you depend on their DNS provider supporting ALIAS, ANAME or CNAME flattening. Route 53 and Cloudflare do. Plenty of registrars a reseller's cousin set up in 2014 do not.
  • CAA records silently block issuance. A reseller whose enterprise IT pinned CAA to DigiCert will fail Let's Encrypt issuance with no signal to them, only to you.
  • Rate limits are real. Let's Encrypt publishes a limit of 50 certificates per registered domain per week and 5 failed validations per hostname per hour. A retry loop with no backoff will lock you out of a partner's domain for an hour, and a bulk onboarding script can lock a shared domain for a week.
  • Renewal is where it actually breaks. The reseller migrates DNS in month seven, drops the CNAME, and nothing happens. Sixty days later the certificate does not renew and their site goes dark at 3am. Competent builds monitor validation health continuously rather than expiry, and alert at T minus 14 days on a failing challenge instead of at T minus 1 on an expiring cert.
  • Fan-out limits. CloudFront allows 100 alternate domain names per distribution by default, so hostname 101 needs a distribution sharding strategy you did not plan.

What a competent build does: on-demand issuance behind an authorization endpoint that checks the hostname belongs to a paying tenant before asking for a cert. Caddy's on-demand TLS with an ask endpoint, cert-manager on Kubernetes, or a managed layer such as Cloudflare for SaaS custom hostnames or Approximated. Buying the managed layer is usually correct. Building your own ACME orchestration is two to four weeks you can spend elsewhere.

Where the brand actually has to appear

Ask and the list gets long: the app, transactional email, PDF invoices, the favicon, the PWA manifest, Open Graph images, SMS sender, the error page served when your app is down, and the login screen an SSO redirect lands on.

Two decisions matter. First, runtime theming through CSS custom properties versus a build per tenant. Runtime wins: one deploy, one cache, instant changes. Build-per-tenant means 40 builds on every release and a reseller waiting three days for a color change. Second, constrain the palette. A reseller will pick a yellow, put white text on it, and land at 2:1 contrast against a WCAG AA requirement of 4.5:1 for body text. Derive the accessible foreground from their brand color programmatically and show them the computed result at upload time. Validate logo aspect ratio and transparency at the same point, because someone will upload a 3000 by 400 PNG with a white box behind it and file a bug that your header is broken.

Mobile is the expensive one. Apple App Store Review Guideline 4.2.6 rejects white-label clone apps submitted from a single provider account. If resellers want branded iOS apps, each app ships from the reseller's own Apple Developer Program account at $99 per year, with their own Google Play account at $25 one time, their own store listing, screenshots and review cycle, and a release train you now run 40 times. That is a permanent operations cost rather than a build cost. A PWA, or one container app with a reseller code entered at first launch, is usually the honest answer, and the decision belongs before the quote.

Email under someone else's domain

SPF has a hard limit of 10 DNS lookups per RFC 7208. A reseller already running Google Workspace, HubSpot and a payroll tool is at eight. Adding your include tips them to permerror and their whole domain starts failing checks, including mail you did not send. So do not touch their SPF. Ask for DKIM CNAME delegation instead (SES easy DKIM publishes three CNAMEs; Postmark and SendGrid do the same), plus a custom MAIL FROM subdomain such as mail.reseller.com so the Return-Path aligns under relaxed DMARC without their apex SPF record changing at all. If their DMARC is p=reject and you skip this, every notification you send disappears and nobody tells you.

Then reputation. On a shared IP pool, one reseller who imports a bought list burns everyone. AWS SES publishes the thresholds: a bounce rate above 5% puts the account under review, and complaints above 0.1% do the same. Isolate per tenant with SES configuration sets, SendGrid subusers or Postmark message streams, with per tenant suppression lists and bounce and complaint webhooks routed back to the tenant that caused them. Dedicated IPs on SES list at about $25 per month each and need weeks of warmup, so they only make sense for your top few partners.

Billing when the reseller sets the price

The first question is who is the merchant of record. If the reseller bills their client, you are running a marketplace, and Stripe Connect account type is an architectural decision rather than a config flag. With direct charges the connected account carries chargeback liability. With destination charges the platform carries it, and you will discover this the first time a partner's client disputes $4,000.

Then the margin engine, which is the part that never gets estimated. You have a wholesale price. The reseller applies a markup. The markup changes mid-cycle, so you owe proration on both the retail invoice and your own revenue share. The end client refunds on day 20 after you already paid the partner their margin on day 2, so the partner now has a negative balance and you need a clawback policy in code. Add currency, add VAT reverse charge, add whose legal entity appears on the invoice PDF.

Mechanically: every write to Stripe carries an idempotency key. Every webhook handler stores the event id and drops duplicates, because Stripe retries for up to three days and events arrive out of order. Never trust the payload as current state, fetch the object. A subscription webhook processed out of order is how a churned reseller's tenant stays live for a month.

Tenant isolation, and the bugs that only exist at 40 tenants

A tenant_id column is table stakes. Postgres row level security is the enforcement, and two gotchas make it fake. First, the table owner bypasses RLS unless you declare FORCE ROW LEVEL SECURITY, so your migrations user reads everything and your test suite passes. Second, if you set the tenant with a session level SET behind PgBouncer in transaction pooling mode, the setting leaks to the next connection borrower. Use SET LOCAL inside the transaction.

The same discipline applies everywhere state is cached or queued: Redis keys prefixed by tenant, CDN cache keys including Host, search indexes filtered or split per tenant, and background jobs carrying tenant context in the payload so a job retried six hours later re-establishes the right scope instead of inheriting whatever the worker last touched. Add per tenant rate limits and queue fairness before the reseller who imports 400,000 rows takes your p95 down for everyone. Add impersonation with a visible banner and an audit log, because support will need to log in as a partner's user, and eventually a regulator or a partner's lawyer will ask who did.

What this costs and how long it takes

These are Digital Heroes delivery bands across 2,000+ projects, not list prices.

  • Adding white-label reseller support to an existing product: $15,000 to $60,000. Tenant model, runtime theming, branded email, reseller admin. Assumes your schema can take a tenant_id without a rewrite.
  • As part of a first release: $50,000 to $130,000 in 10 to 16 weeks. Designed in from day one, which is meaningfully cheaper than retrofitting.
  • Full reseller platform: $150,000 to $350,000 over 6 to 12 months. Partner-owned domains and TLS at scale, per-tenant SSO and SCIM, Connect billing with a margin engine, partner portal, reporting, support tooling.

What pushes this capability toward the top of its band: resellers bringing their own apex domains (add 2 to 4 weeks and permanent ops load), resellers as merchant of record with their own pricing (add 3 to 6 weeks, most of it margin and refund edge cases), branded mobile apps (add 2 weeks per platform plus a release process forever), per-reseller SSO with SAML and SCIM deprovisioning (add 3 to 5 weeks), and retrofitting isolation onto a schema that never had a tenant column, which alone can double the number. What keeps it low: subdomains only, you stay merchant of record, resellers get theme and content control but not feature control.

When you should NOT build this

If you have fewer than roughly 25 resellers, you stay the merchant of record, and nobody needs a branded app, take the managed path.

Concretely: if the product is courses, content or community, Circle and Thinkific Plus already do white label including custom domains, and you will not beat them for under six figures. If it is a storefront, Shopify plus an app is the answer. If resellers mainly want your dashboard with their logo on it, that is embedded analytics, and Metabase, Explo or Omni ship white-labeled interactive embedding today. If you are on Next.js and the only real requirement is custom domains plus theming, Vercel's platforms approach with Cloudflare for SaaS gets you most of the way in about a week.

Build it when off-the-shelf genuinely collapses, and it collapses on one thing more than any other: resellers who must set their own prices and own the customer billing relationship. No white-label add-on handles wholesale pricing, markup, proration and clawback for you. That is where custom starts paying.

How to brief and vet a developer for this

Brief with counts and constraints, not adjectives: how many resellers in year one, own domain or subdomain, apex or subdomain, who invoices the end customer, do resellers need SSO, do they need mobile, what can they change (colors, copy, features, pricing), and what happens to their data when they churn.

Then ask these:

  • "A reseller's DNS provider does not support ALIAS records. How do we serve their apex domain over TLS?" A good answer names an A record to an anycast IP or a subdomain-only onboarding policy, and mentions CAA.
  • "Which DNS records do we ask a reseller to add for email, and why do we not touch their SPF?" You want DKIM CNAME delegation plus a custom MAIL FROM subdomain, and the phrase "10 lookup limit."
  • "Show me the CDN cache key for a page served on a custom domain."
  • "Who bypasses row level security in Postgres?" The answer is the table owner, unless FORCE ROW LEVEL SECURITY.
  • "What happens the second time the same Stripe webhook arrives, and what happens if it arrives out of order?"
  • "On Stripe Connect, who eats the chargeback on a destination charge?"
  • "How does a reseller ship an iOS app under their own brand?" If guideline 4.2.6 and their own developer account do not come up, they have never done it.
  • "A job is retried six hours later. Where does the tenant context come from?"

Red flags, in order of severity: calling it "just a theme layer," proposing a wildcard certificate for reseller-owned domains, planning to add tenant_id "later," and quoting mobile apps as one submission. Ask for a live demo of a tenant switch, a custom domain going from CNAME to green padlock, and the audit log of a support impersonation. Those three demos separate people who have shipped this from people who have read about it.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Median SaaS spend reached $9,455 per employee, and organizations leave an average of 36% of their SaaS licenses unused. Source: Zylo (2026) →
  2. 76% of developers are using or planning to use AI tools in their development process in 2024 (up from 70% in 2023), with current active use rising to 62% from 44%; 81% agree increasing productivity is the biggest benefit of AI tools. Source: Stack Overflow (2024) →
  3. Digital Champions expect to achieve about 16% in cost savings and around 15% in revenue gains from digital operations over five years; the study surveyed 1,155 manufacturing executives across 26 countries. Source: PwC / Strategy& (2018) →
  4. Brandon Hall Group research on onboarding reports that done well, structured onboarding drives measurable gains in new-hire productivity, employee engagement, and retention; the page notes 41% of organizations experience greater than 5% turnover among new hires. Source: Brandon Hall Group (2024) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How much does it cost to add white-label reseller branding to an existing product?
Typically $15,000 to $60,000 in Digital Heroes delivery experience, covering the tenant model, runtime theming, branded transactional email and a reseller admin area. The number assumes your database schema can take a tenant_id without a rewrite. If it cannot, retrofitting isolation onto a single-tenant schema can double that figure on its own.
How long does it take to build a white-label platform for resellers?
A focused add-on to an existing product is usually 4 to 8 weeks. Built into a first release it is 10 to 16 weeks at $50,000 to $130,000. A full reseller platform with partner-owned domains, per-tenant SSO and reseller billing runs 6 to 12 months.
What does a full reseller platform cost at a real budget, say $200,000?
At $200,000 you are inside the $150,000 to $350,000 full platform band, which buys custom domains with automated TLS issuance and renewal, per-tenant theming and email, a reseller portal with reporting, Stripe Connect billing with a markup and margin engine, and support tooling with audited impersonation. What $200,000 does not usually stretch to is branded native mobile apps per reseller plus per-tenant SAML and SCIM in the same scope. Pick one of those two for phase two.
We only have $40,000. What should we cut first?
Cut reseller-owned domains and reseller-owned billing. Ship subdomains like partner.yourapp.com, stay the merchant of record, and give resellers theming, branded email and their own admin. That fits $15,000 to $60,000 and removes the two biggest permanent operations costs: certificate lifecycle management and a margin engine with proration and clawbacks.
Can you add white-label branding to our existing app?
Usually yes, and the honest gate is whether your data layer already has a tenant concept. If every table can take a tenant_id and you can enforce it with Postgres row level security using FORCE ROW LEVEL SECURITY, this is an add-on. If tenancy was never modeled, the branding is the easy half and the isolation retrofit is the real project.
What breaks at scale with a white-label reseller platform?
Certificate renewals, first and worst. A reseller changes DNS in month seven, drops the CNAME, and the site goes dark 60 days later at 3am because you monitored expiry instead of validation health. After that: shared cache keys serving one brand's page to another's customers, email reputation damage from one reseller on a shared IP pool, and a noisy tenant importing 400,000 rows and taking everyone's response times with them.
Should we use a third-party service instead of building this?
For custom domains and TLS, yes, almost always. Cloudflare for SaaS, Approximated or Caddy on-demand TLS behind an authorization endpoint will beat your own ACME orchestration and save two to four weeks. For the whole platform, use off-the-shelf if you have under about 25 resellers and stay the merchant of record: Circle, Thinkific Plus, Shopify or embedded analytics tools like Metabase already handle branded portals.
Can each reseller have their own branded mobile app?
Technically yes, contractually it is the expensive part. Apple App Store Review Guideline 4.2.6 rejects white-label clones submitted from one provider account, so each app must ship from the reseller's own Apple Developer Program account at $99 per year and their own Google Play account at $25 one time. That means a separate listing, review cycle and release train per reseller, forever. A progressive web app or a single container app with a reseller code at first launch is usually the better call.
How do we send email from our resellers' domains without breaking their deliverability?
Use DKIM CNAME delegation plus a custom MAIL FROM subdomain so the Return-Path aligns under relaxed DMARC. Never ask them to add an include to their SPF record: SPF has a hard 10 DNS lookup limit under RFC 7208, and pushing a busy domain over it makes all their mail fail, not just yours. Then isolate reputation per tenant with SES configuration sets, SendGrid subusers or Postmark message streams, since AWS puts accounts under review above a 5% bounce rate or 0.1% complaint rate.
How much should a small business budget for its first custom app or website?
For a focused first build, most small businesses land between $8,000 and $60,000: roughly $8,000 to $45,000 for a custom website and $25,000 to $60,000 for an internal tool or simple web app, based on Digital Heroes delivery across 2,000+ projects. Customer-facing products with payments, logins, or a mobile app start around $40,000. Quotes far below these bands usually mean a template with your logo on it, not software shaped around your workflow.
What is a discovery phase, and is it worth paying for separately?
Pay for it, and treat the output as yours. A discovery phase runs two to three weeks, typically 5 to 10% of the eventual build budget, and produces a written scope, wireframes, and a fixed quote you can take to any vendor, including a competitor of the agency that wrote it. Skipping it is how projects end up quoted from a two-paragraph email and delivered at twice the price.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
How small can the first version of my software be and still be worth building?
One workflow, end to end, for one type of user: the single process that currently burns the most hours or loses the most money. In Digital Heroes delivery experience, first versions scoped to 6 to 10 weeks of build time ship, get used, and generate the feedback that makes version two obviously right, while 9-month first versions routinely launch with features nobody touches. Everything you cut from v1 gets cheaper to build later, because real usage reorders the roadmap for you.
How do I make sure custom software is secure and compliant with rules like HIPAA?
Start with the baseline every business system should have: encryption in transit and at rest, role-based access control, and audit logs. If HIPAA applies, the hosting provider must sign a Business Associate Agreement, which AWS, Azure, and Google Cloud all offer, and access controls have to be designed in from day one, not bolted on. SOC 2 certifies a company's operating practices, not a codebase, so ask vendors what they have shipped in your regulated domain rather than which logos are on their website.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
How many SaaS seats do we need before building custom becomes cheaper?
The crossover usually shows up between 20 and 50 seats on premium tiers. Salesforce Enterprise lists at $165 per user per month, so 40 users cost about $79,000 a year in subscriptions, which is real money against a custom system you would own outright. Run the comparison over three years: if subscription spend beats the build cost plus 15-20% annual maintenance, custom wins on price before you even count workflow fit.
How many people should be working on my software project?
Three to five for a typical focused build: a project lead, one or two engineers, a designer, and part-time QA, which is the standard shape across 2,000+ Digital Heroes projects. Larger platforms justify 6 to 10, but a ten-person team on a small first version usually signals bill padding rather than horsepower. What predicts success is whether a senior engineer is writing your code daily, not the headcount on the proposal.
Is it cheaper to customize Salesforce than to build a custom CRM from scratch?
If you use less than a third of what Salesforce does, a custom CRM is often cheaper by year three. Salesforce Enterprise lists at $165 per user per month, so 25 seats cost about $49,500 a year before admin and consultant fees, while a focused custom CRM runs $60,000 to $100,000 once plus 15 to 20% a year in maintenance. If you genuinely need Salesforce's ecosystem, reporting, and app marketplace, customizing it beats rebuilding it; the mistake is paying enterprise prices to use it as a glorified contact list.
Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?