Case study · Stealth · 2025–2026

Stealth: nonprofit platform at national scale

Migrated tens of thousands of legacy records into a single tenant model, wired BigCommerce, and built an attribution engine that matches orders to organizations automatically.

Stealth
Stealth: nonprofit platform at national scale hero

Role

Studio · build + ship

Status

Stealth

Year

2025 → 2026

Surfaces

Web + iOS

Live

In development

The problem

We are rebuilding a national nonprofit's online presence as a single multi-tenant platform: a member directory, an eCommerce storefront, and the back-office tools to run both. Replaces a legacy WordPress + plugins stack. The hardest problem was order attribution, every order in the legacy data had a school name, a company name, and a contact email, but no FK to anything. We shipped an AI-assisted matcher that auto-resolves the majority of orders against the organization directory and routes the rest to a manual queue for HQ.

What we built

  • Multi-tenant organization directory replacing a flat WordPress install
  • BigCommerce integration with two-way order sync
  • AI-assisted order attribution engine, auto-matches most orders, queues the rest
  • Member affiliation model that handles people belonging to multiple organizations
  • HQ admin tooling, manual review, override, bulk re-attribution

Numbers that matter

Scale

National

tens of thousands of organizations

Migration

Legacy WP → multi-tenant

zero downtime cutover

Attribution

AI-assisted

auto-resolved majority

Status

Building

stealth

Stack

Frontend
Next.js 16React 19
Backend
FastAPIPython 3.12Celery workers
AI / ML
Custom attribution modelLLM-assisted matching
Data
Cloud SQL PostgresPolymorphic organizations
Infra
Cloud RunVercelBigCommerce integration

What we learned

When a noun is wrong, it is wrong everywhere. We took the deliberate pain of renaming the central concept across 130+ endpoints because shipping the wrong vocabulary at national scale was worse.

AI attribution only earns trust when there is a clear manual queue for the cases it punts on. The handoff is more important than the model.

Have something that looks like this?

Tell us what is broken. We’ll tell you what the first week looks like.

Next case study →

RunLink