Introducing the 4-Month AI FrameworkRead the guide
Case StudiesFintech · Private Markets

Private Market Investment Platform, Rebuilt for Mara Invest

A legacy Strapi platform replaced by four portals on one secure API, live in production 7 weeks after the first commit

Client

Mara Invest

Headquarters

London, United Kingdom

Timeline

7 weeks to production

Technology

PLATFORM REBUILD

Private Market Investment Platform for Mara Invest case study by EdgeFirm

7 weeks

from first commit to production cutover

4

portals on one API, for investors, syndicate leads, admins and sign-in

15

currencies handled with exact decimal money arithmetic, never floats

1,300+

automated tests across the API and all four portals

At a glance

The challenge

A live investment platform on an aging Strapi stack, holding investor identity, banking and tax data, with deals, fees and capital calls that had to carry over without losing a record or a password

The solution

A NestJS and PostgreSQL rebuild with investor, syndicate, admin and sign-in portals, field-level encryption, a durable job outbox, documents rendered from the client's own Word templates and in-app bank reconciliation

The results

  • 7 weeks from first commit to production cutover
  • 4 portals on one API, for investors, syndicate leads, admins and sign-in
  • 15 currencies handled with exact decimal money arithmetic, never floats
  • 1,300+ automated tests across the API and all four portals
The problem

An Investment Platform Where Every Record Is Someone's Money

Mara Invest is a London platform that gives investors access to private market deals. Syndicate leads bring opportunities, investors commit to them, and the Mara team runs everything in between: onboarding, KYC and AML checks, fees, capital calls, application forms and investor statements.

The first version of the platform ran on Strapi with a single Next.js front end. It worked, but it had become hard to trust and hard to change. Sensitive investor data needed stronger protection, background jobs such as emails and file uploads could be lost if a queue restarted, and legal documents were produced from a fixed layout that nobody could change without a deploy.

Money made the rebuild delicate. Deals run in 15 currencies, fees are either added to an investor's commitment or taken from it, and capital calls move through scheduled, pending, paid and overdue states. A rewrite that was almost right would send the wrong amount to the wrong person.

Behind the platform sat another manual process. Every incoming bank payment was matched to the right investor and deal by hand in a large Excel workbook, so the platform and the books could drift apart.

Mara asked EdgeFirm to rebuild the platform, move every investor across with their existing sign-in, and bring reconciliation into the platform itself.

Scope of work

5 capabilities carried the build

We rebuilt the back end as a NestJS API on PostgreSQL and the front end as four Next.js portals sharing one design system and one typed API client. Five workstreams carried the project.

01

Investment core and four portals

Deals, investments, fees, capital calls, syndicates, invitations and investor profiles, with every money flow modelled as an explicit state machine. Investors, syndicate leads and admins each get their own portal, plus a single sign-in host with password, email code and refresh token rotation. Admins can open a read-only view of any user's portal to see exactly what they see.

02

Onboarding, KYC and compliance

A data-driven onboarding engine for individual and company investors, including the FCA suitability and appropriateness questionnaires carried over word for word. Identity checks run through SumSub with verified, idempotent webhooks, company investors go through an admin business review, and every AML risk assessment is kept as a versioned record.

03

Documents and signing

Application forms and investor statements are rendered from the client's own Word templates, so wording, letterhead and legal text change without a release. Templates resolve per deal, by rule or from a global default, investors sign in the portal, and documents are stored as content-hashed files reachable only through signed links.

04

Account reconciliation

Bank activity syncs from Wise every 15 minutes, every payment is matched to an investor and deal with a confidence score, confident matches are approved automatically and the rest wait for an admin. Deal sheets show expected, received and the difference for every investor, exact to the penny, with any accepted difference recorded with a reason. The client's own Excel workbook was imported, so its recorded matches arrived with it.

05

Migration, cutover and operations

A re-runnable migration script moved users, profiles, AML records, syndicates, deals, investments and invitations from the old database, which it opens read-only. Password hashes were carried across unchanged, so every investor signed in as before. The platform runs in Docker on DigitalOcean with automated deployments, backups every six hours and error tracking that scrubs personal data before it leaves the server.

Technology

The stack behind it

NestJS, Next.js, PostgreSQL, Prisma, Redis and BullMQ, SumSub, SendGrid, DigitalOcean, GitHub Actions

PostgreSQLPostgreSQL
RedisRedis

Back end

NestJS on Node.js with Prisma, PostgreSQL, Redis and BullMQ, plus a durable outbox that records every job before it is sent

Front end

Four Next.js portals with React, Redux Toolkit and a shared design system, typed API client and validation schemas

Security and compliance

AES-256-GCM field encryption for tax and banking data, audit logging with personal data redacted, HMAC-verified webhooks and role-based access

Documents

Word templates filled with docxtemplater, converted to PDF with Gotenberg, plus Playwright rendering for HTML layouts

Integrations

SumSub for KYC and AML, SendGrid for email, the Wise API for bank activity, Fillout deal intake and GlitchTip error tracking

Cloud and delivery

DigitalOcean servers and Spaces storage, Docker Compose, nginx and GitHub Actions pipelines for development and production

How we built it

Our development process

Week 1

Back end and security foundations

We built the API modules for deals, investments, fees, capital calls, KYC, files and syndicates, then added role-based access, audit logging, field encryption and the durable job outbox, alongside the shared design system and the first portal screens.

Weeks 2 to 4

Compliance, documents and migration

The onboarding engine with the FCA questionnaires, the SumSub integration, the Word template and signing pipeline, the migration script and a pre-launch security review, with every portal checked screen by screen against the old platform so nothing users relied on went missing.

Weeks 5 to 7

Cutover

Deployment pipelines and a development server running on real data, the first release of bank reconciliation, then a final import from the old database and the production switch on 14 September, with the old server kept as a fallback.

After launch, reconciliation at scale

Deal sheets that mirror the client's workbook, historical matches imported, an automatic Wise sync in place of statement uploads and rounds of admin testing with the Mara team.

Transparency

Every decision, finding and fix was written into a shared project log with the evidence behind it, and work was tracked on a shared task board so the Mara team could follow every change.

After launch

After go-live we kept shipping requests from the people who run the platform day to day, including passwordless sign-in, document fixes and a client user guide for reconciliation.

Next steps

Next up is a rebuilt public website for Mara Invest, now in preview, alongside further refinements to reconciliation requested by the admin team.

After launch

What changed after launch

Live without losing a sign-in

The new platform went live on 14 September 2026, 7 weeks after the first commit. Investors kept their email and password, and a side-by-side check of the old and new admin showed completed investments, pending investments and individual investors matching exactly.

Investor data protected by design

Tax and banking details are encrypted field by field, kept out of logs, audit records and error reports, and shown only to admins who need them. A pre-launch security review closed every high finding with a test that fails on the old behaviour.

Reconciliation inside the platform

Payment matching moved from a manual workbook into the admin portal, fed by a Wise sync every 15 minutes. Against the client's own historical matches, matching accuracy rose from 74.6% to 85.4% during the build, measured by EdgeFirm.

Documents the client controls

Application forms and investor statements now follow the client's own Word templates. Changing the wording or letterhead is an upload, not a release.

A platform the team can change safely

More than 1,300 automated tests, type checks and linting cover the API and every portal, and a push to the main branch deploys to production automatically.

Mara Invest now runs on a platform built for regulated money: four portals on one secure API, investor data encrypted at rest, documents in its own words and payments reconciled where the deals live. EdgeFirm continues to work with the Mara team on reconciliation and new features.

Talk to the founders

Get AI live in months, not years.

Book a 30-minute strategy call with the founders who will write your code.