NORTHWIND CAPITAL · NORTHWIND CAPITAL · FINTECH
A unified investor platform rebuilt in eleven weeks.
Consolidated three legacy portals into one Next.js surface with live portfolio data, role-aware disclosures, and measurable performance budgets.
Client
Northwind Capital
Sector
Fintech
Timeline
11 weeks
Services
Product engineering, data integrations, design system
Year
2025
THE CHALLENGE
Three portals, one nervous compliance committee
When we arrived, Northwind’s investors were asked to sign into three different experiences depending on whether they held early-stage venture positions, co-investment SPVs, or liquid tokenized sleeves. None of the three shared a component library, session model, or analytics contract. Worse, each portal claimed to be “canonical,” which meant support tickets duplicated and marketing could not run a clean attribution story across product surfaces.
The trigger was blunt: a planned roadshow required a unified data room link in six weeks, while engineering leadership knew the current stack could not pass a basic performance audit without embarrassing numbers in front of LPs. Budget was finite — no greenfield rewrite — and the internal team was mid-hiring, so velocity risk sat beside compliance risk.
We treated the constraint set as immovable: keep Stripe and Plaid where they were, preserve existing Supabase row-level policies, and avoid a big-bang database migration. Time was non-negotiable; quality of disclosure copy was equally non-negotiable. Anything that smelled like “temporary UI” was rejected in week one.
// TODO: Verify with client legal before publishing — client-specific timelines, cohort sizes, and performance baselines in this section.
OUR APPROACH
We framed it as a product merge, not a reskin
What we treated this as. A portfolio company merge where two brands keep trading but the holding company demands one P&L view. That metaphor unlocked decisions: one navigation spine, one design language, one release train — even if backend services stayed plural for a phase.
Architecture. We standardized on a Next.js App Router shell with route-level feature flags so legacy modules could be lifted in slices. Server components handled investor-sensitive tables; client islands wrapped only the pieces that needed interaction density. Supabase stayed the source of truth for entitlements; we wrote a thin policy matrix document that engineering and compliance co-signed before we typed a migration.
Phasing. Weeks 1–2: discovery workshops, threat modeling on session handoff, and a written cutover plan with explicit rollback. Weeks 3–7: vertical slices — auth + account switcher first, then statements, then capital activity. Weeks 8–11: performance hardening, accessibility sweep, and dry-run weekends with synthetic load shaped from anonymized prod traffic patterns.
Team and roles. A Veltris tech lead (Maria) paired with Northwind’s interim CTO; a product writer from their side sat in every Friday demo to stop “placeholder legal” from creeping in. We refused a separate agency for visual design — instead we extended their existing tokens and documented deviations.
Judgment calls. We rejected a “low-code” interim portal because it would have become permanent. We also pushed back on shipping dark-mode before parity — optics vs. risk — and won the argument by proving build surface area with a one-page burn-down.
// TODO: Verify with client legal before publishing — role names, vendor choices, and phasing dates are illustrative of the engagement shape.
THE OUTCOME
Numbers moved where investors actually felt them
Before / after (representative). p95 Largest Contentful Paint on the heaviest portfolio view dropped from about 4.8s to about 2.6s on comparable hardware — measured with the same third-party RUM snippet, not lab-only Lighthouse theater. Activation — defined conservatively as “completed onboarding and viewed a holdings statement in session one” — rose 32% quarter-on-quarter at similar traffic levels.
Support load shifted: duplicated “wrong portal” tickets essentially disappeared once the account switcher shipped. Finance stopped exporting three CSVs to build board decks; the unified reporting API meant their analyst rebuilt one model instead of reconciling three.
Relationship. We stayed on a light retainer for ninety days post-cutover to own performance regressions and to shepherd the first independent pen-test remediation cycle. After that, documentation and runbooks transferred cleanly; their new hires extended the system without re-asking foundational questions.
// TODO: Verify with client legal before publishing — all quantitative claims require sign-off from Northwind finance and legal.
PAGE LOAD
vs. p95 baseline of 4.8s on legacy stack
ACTIVATION
vs. prior quarter cohort (same traffic mix)
TO LAUNCH
from signed SOW to production cutover
DUPLICATE TICKETS
vs. prior 30-day support baseline (merged routing)
WHAT WE LEARNED
The work we'd do differently
We underestimated how emotionally loaded “which portal is real?” would be for long-tenured employees. Change management should have started in week zero with a single internal memo co-signed by the CEO — we waited until week four, and it cost us a sprint of clarification meetings.
We were surprised by how aggressively CDN caching masked auth bugs in staging. We now bake a “cache-off” rehearsal into every cutover checklist. Methodologically, we tightened our definition of “parity” — not feature parity, but risk parity: if a disclosure path existed anywhere, it had to exist in the new surface with the same audit trail, even if the UI looked different.
If we repeated this engagement tomorrow, we would push harder for a single analytics contract in writing before integration work — not because vendors misbehaved, but because ambiguous event ownership slowed us for several days. We would also schedule the first performance budget review earlier; waiting until week eight created a small crunch that was avoidable.
// TODO: Verify with client legal before publishing — reflective narrative may still imply operational facts about the client.
TECH STACK / TOOLS
What shipped in production
GALLERY
Inside the delivery

Next case study
An SEO engine that tripled qualified leads in two quarters.
Rebuilt information architecture, shipped two hundred twenty programmatic pages, and replaced vanity traffic targets with pipeline-grade measurement.
Ready when you are
Let’s build something excellent.
Tell us about the work. We reply within one business day with a written point of view, not a pitch.
