Case Study · Fintech · San Francisco

Vex: A FINRA-Regulated Trading Platform for Private Startup Stock, Amplified by AI

How Pieoneers helped Vex Holdings take an alternative trading system through three architectures, from a database-first stack to a planned Hasura migration to an AI-amplified Go rewrite, now running in production for Qualified Purchasers.

6

FINRA, SEC & AML controls built into code

3 → 1

Codebases merged into one Go service

170

Go test files + end-to-end browser test files

0

Money-path bugs found by investors

Vex synthwave sunrise over neon mountains and a glowing grid, the brand world of the Vex trading platform

Client

  • Vex Holdings
  • San Francisco, CA

Industry

  • Fintech
  • Private Markets
  • Alternative Trading System
  • Digital Assets

Technology

  • Go
  • PostgreSQL 16
  • HTMX
  • Tailwind CSS
  • Preact
  • WebAuthn Passkeys
  • Solana (Anchor)
  • Helius
  • Mercury
  • Terraform on AWS
  • GitHub Actions
  • Playwright
  • Claude Code

The Challenge

Build a regulated trading platform where Qualified Purchasers trade private startup equity, with every dollar provably correct and every action examinable by FINRA and the SEC.

The Solution

A Go platform generated with Claude Code, brought to production standard by Pieoneers through spec ownership, dual-approval merges and agentic code review on every money path.

The Result

A single, maintainable Go platform live on vex.trade, with FINRA and SEC compliance built into the code and every critical money-path bug caught before an investor saw it.

Trading Private Startup Equity, by the Book

Vex is building regulated infrastructure for private markets: a place where Qualified Purchasers can discover demand for, price, and trade equity in private startups.

Behind the product sit three regulated entities:

  • Vex Securities LLC, a FINRA-registered broker-dealer operating the alternative trading system (ATS)
  • Vex Registry LLC, an SEC-regulated transfer agent keeping the official ownership records
  • Vex Holdings PR Corp, an SEC-registered investment adviser managing the fund vehicles that wrap each listed company

Vex Holdings engaged Pieoneers to build the investor-facing platform and back-office tooling. What followed was not one build but three. The platform moved from a database-centric architecture, through a planned migration to a GraphQL layer, to a from-scratch Go rewrite generated with Claude Code and brought to production standard by Pieoneers.

The decisions along the way are the real story: what to keep, what to abandon, and how to work when code arrives faster than any one person can review it.

Three Architectures, One Regulated Platform

Each phase answered a different question, and each one made the next decision easier.

  1. 1Prove

    Build the First Platform

    Investor and admin apps with KYC onboarding, Dutch-auction bidding, a transaction-safe ledger, crypto and wire payments, and transfer-agent records. Real-money tests and a private beta.

    Stack: React, TypeScript, PostgreSQL-native backend, Kubernetes on AWS

    → Proved the product and what a regulated ATS really needs

  2. 2Plan

    Design a Safe Migration

    A gradual move to a GraphQL layer, keeping financial invariants in PostgreSQL and extracting integrations into Go services. A working spike, with no big-bang rewrite.

    Stack: Hasura DDN, PostgreSQL, Go, Turborepo

    → A credible, low-risk path forward

  3. 3Rewrite

    Review an AI-Generated Go Platform

    Claude Code produced a Go rewrite. Pieoneers reviewed it, found and fixed bugs, challenged the ledger design, and recommended it replace the migration.

    Stack: Go, HTMX, PostgreSQL 16, WebAuthn, Claude Code

    → A faster and safer route to launch

  4. 4Harden

    Take It to Production and Beyond

    Architecture review, agentic deep code review on money paths, Solana vault, Mercury wires, passkey sign-up and a reworked compliance portal.

    Stack: Solana (Anchor), Mercury, Terraform, Playwright

    → Live on vex.trade, with releases continuing

The Challenges of Building a Regulated Fintech Trading Platform

Money, regulation, and a business model that kept evolving.

01

Every path touches money and has to be provably correct

Bids reserve funds, outbids release them, auctions clear at a single price with partial refunds, and deposits arrive from both bank wires and the Solana blockchain. A race between two deposit notifications can credit an investor twice, so the ledger had to be serialized, auditable, and reconciled daily against bank and on-chain records.

02

FINRA and SEC compliance built into every feature

As a broker-dealer and transfer agent, Vex must keep records under SEC 17a-4, log supervisory actions under FINRA 3110, deliver trade confirmations under FINRA 2232, screen investors against sanctions lists, and preserve KYC data even for rejected or blocked accounts. Every feature had to be designed with an examiner in mind.

03

A database-first stack built for speed

The first backend ran the whole application inside PostgreSQL, keeping data and security rules close to the data itself. It let a small team ship a working ATS quickly. As the product pivoted, each change to the data model touched more of the system, and the specialised stack was harder to staff than a conventional service. Kubernetes deployments added their own surprises, including an IPv6 incompatibility that affected Solana RPC resolution during real-money tests.

04

Two payment rails: USDC on Solana and bank wires

Investors fund bids with USDC on Solana or by wire. The crypto path relied on third-party webhooks that timed out or arrived late, and needed signature verification against spoofed deposits, hot/cold wallet management and a clear withdrawal policy. The wire path needed invoicing, virtual account numbers and a two-step withdrawal review.

05

A business model that kept learning

Vex started with Dutch auctions, added continuous order-book trading, then shifted toward a catalog and book-building model as it learned how family offices and anchor investors behave. Each pivot reshaped the data model, and each one shaped the next architecture.

How Pieoneers Built the Vex Trading Platform

Phase 1 · Prove

The First Platform: React on a PostgreSQL-Native Backend

Pieoneers built the investor web app in React 19 and TypeScript on Vite, with TanStack Router and Query, plus a separate admin app for Vex staff. The backend was a set of SQL modules (KYC, auctions, ledger, blockchain, transfer agent, notifications, admin) running on Omnigres (now Inferal), an innovative custom platform for products where data and security matter, developed in close collaboration with its founder Yurii Rashkovskii.

The team delivered the full investor lifecycle:

  • Multi-step KYC with identity documents, W-9/W-8BEN tax certification, captured signatures and qualified-purchaser certification
  • Dutch-auction bidding with superseding bids and partial outbids, auction finalization with clearing-price refunds and admin abort
  • Crypto deposits via Tatum with wallet monitoring; wire withdrawals with routing, SWIFT and IBAN validation and CSV export
  • Corporate accounts with multiple authorized representatives, sanctions.io screening and email notifications through Resend
  • Transfer-agent cash and securities records, a daily reconciliation report, and two-admin approval of new investors

The platform reached AWS production after real-money test auctions, and Vex opened a private beta on vex.trade. The wire-deposit invoicing flow drew the client's most enthusiastic feedback and later became the reference for the reimplementation.

Yurii Rashkovskii
What stands out most is their positive obsession with quality and precision. Their focus, discipline, and commitment to delivering the right solution often rival and surpass my own. The results speak for themselves: a strong product foundation, clear communication, and dependable execution.
Yurii Rashkovskii · Founder, Inferal Inc. · Google review

As the product grew and pivoted, its needs changed. Vasiliy Reys, Pieoneers' lead engineer on Vex, documented what the next stage required: isolated schema migrations, a background job queue for webhook processing, and more flexible request middleware.

Phase 2 · Plan

The Planned Migration to Hasura GraphQL

Pieoneers proposed a gradual path: introduce Hasura alongside the existing backend, move non-critical endpoints first, keep financial invariants such as ledger consistency and allocation correctness inside PostgreSQL, and extract orchestration and integrations into Go services. No big-bang rewrite.

The team quickly stood up a Turborepo monorepo with a Hasura DDN v3 app connected to the existing database, golang-migrate with a stamp-based workflow, a dedicated test container and transactional migrations. It was a credible path, and it was about to be overtaken.

Phases 3 & 4 · Rewrite and Harden

The Go Rewrite: Claude Code Writes, Pieoneers Reviews

In parallel, Vex co-founder and CEO Ryan Singer had been generating Go modules for a replacement platform with Claude Code. The first commits of "Vex ATS" included a design document, a git-backed transfer-agent core where markdown files serve as the official Master Shareholder Files, and a seven-step atomic delivery-versus-payment settlement engine. Close behind came the matching engine, passkey onboarding, KYC and a trading UI.

Vex asked Pieoneers to review it. Vasiliy's assessment was direct: the implementation looked strong, a few bugs had been found and fixed, some state drift between the git repositories and the Postgres cache remained, and it was an outstanding result for the effort involved. Pieoneers also asked the harder questions, including why holdings and balances should live in git at all. Ryan's answer was auditability; Yurii cautioned that a git-based ledger would not scale to efficient balance recalculation. Both perspectives went into the review.

The team made the call: the rewrite would replace the planned migration. Starting fresh was faster than carrying the old architecture forward, and the launch was anchored to the Vex Private Markets Summit.

A New Working Model for AI-Assisted Development

Ryan named three places where human judgment now mattered most. They became the shape of Pieoneers' engagement.

Spec and Design

Claude Code writes faithfully to a spec. If the spec is wrong, the code is wrong, so owning the spec became the most critical job.

Code Review

AI is weak at diagnosing deep bugs caused by bad architectural decisions. This is where Pieoneers' code review expertise was needed most.

Design Polish

Generated UI is acceptable but not great. Brand alignment and intentional design decisions still need people.

Two operating rules followed. Every merge got a second approver: when Ryan merged, Pieoneers or Vex operations approved, and vice versa. And because one person cannot meaningfully review code produced at AI speed, Pieoneers used Claude Code itself to decode what had been built and to maintain living documentation alongside the code. That documentation now feeds Vex's Written Supervisory Procedures and compliance manuals.

Pieoneers and Vex team on a weekly status video call
One team: Vasiliy Reys, John Crossman, Yurii Rashkovskii, Ryan Singer, Gene Dolzhenko and Olena Tkhorovska on the weekly Vex status call.

What Pieoneers Delivered on the New Codebase

Before launch, Pieoneers ran an architectural review that sorted findings into what could stay for a year, what had to change before production, and what could be refactored later. The team also produced a feature-gap analysis against the legacy platform and a UI/UX and testing plan covering mobile responsiveness, form errors, empty states, and missing end-to-end and concurrency tests around the matching engine.

Ahead of the summit, Vasiliy ran a deep code review with a set of AI agents. It flagged several critical issues, all on financial paths, most notably that a deposit could be credited twice if the Solana webhook provider delivered a duplicate notification. The fixes were small; what mattered was finding them before real money moved.

After launch, Pieoneers took ownership of the parts of the system where reliability matters most:

  • Crypto deposits and withdrawals. A Wallet Standard "Connect Wallet" flow for Phantom, Backpack and Solflare, server-built unsigned transactions, live deposit status, and a purpose-built Solana vault program (Anchor) with separated admin and withdrawal-signer authorities.
  • Passkey sign-up. Email-first registration with magic-link verification, account recovery through the same flow, rate limiting, and bot protection with AWS WAF.
  • Wire deposits through Mercury. Per-invoice virtual account numbers, PDF wire instructions, webhook and polling credit paths, and a compliance view of invoice aging and crediting health.
  • The compliance portal. A tabbed investor workspace with full KYC data, a decision log for every approve, reject, block and unblock, a reworked withdrawals queue, and manual cash adjustments with an audit trail. Deletion is implemented as block/unblock so KYC records are preserved under SEC 17a-4.
  • Access-control hardening. Dual-role users (staff who are also investors), corporate account linking, session invalidation on block, and an AML control against cross-channel fund layering.
  • Developer experience. One-command local startup, hot reload, seeded investors in selectable KYC states, and a plain-language guide to how trading works.
John Crossman
Pieoneers has been our development partner on VEX from concept through launch. They bring something that is genuinely hard to find. Senior engineering judgment paired with real fluency in modern AI coding tools. Their AI-assisted code review caught critical issues before they reached production, which on a platform handling investor money matters more than any feature shipped on time.
John Crossman · CEO, Vex Securities · COO, Vex Holdings

Beyond the Code

Brand Identity & Product Design

Vex arrived with a strong brand direction: retro-futuristic, synthwave-inspired, and deliberately unlike a traditional brokerage. Pieoneers developed that vision in detail and created the first Vex design system, from colour and type to UI components, a brand character and real-world applications.

A Palette and Type System Built for Screens

Chinese Purple and Hot Magenta carry the brand; Black anchors dark-mode trading screens and Platinum supports light surfaces. Tektur, a square-cut techno sans, sets headlines and buttons, while Tomorrow keeps dense financial data readable.

Tektur

Headlines, titles, buttons

Tomorrow

Body, captions, UI labels

Chinese Purple#7A0099
Hot Magenta#F21DDD
Black#0F101C
White#FFFFFF
Platinum#F4F4F5
Vex design system buttons: gradient cut-corner primary, Google sign-in, glow and disabled statesVex design system form inputs: text, date, dropdown, phone, file upload and signature fields

The First Vex Design System

A component library for a regulated product that still feels like Vex: cut-corner buttons with a purple-to-magenta gradient and glow states, and dark form fields designed for long KYC onboarding.

  • Buttons in three sizes with default, glow, outline and disabled states
  • Inputs for email, date, dropdown and international phone numbers
  • Document upload with progress, and a drawn-signature field for KYC
  • One visual language across landing pages, web app and mobile

402kid: The Vex Character

A curious explorer in the neon-lit world of futuristic finance. The hoodie-wearing 402kid gives Vex a friendly face for onboarding, social and merch, representing a community that is tech-savvy, adventurous and ready to decode the markets.

402kid Vex mascot checking the Vex app on a phone402kid Vex mascot holding a Vex flag402kid Vex mascot catching a gold coin

Vex Identity: Avatars for the Community

Private markets are anonymous by default; Vex gives every investor a persona. During onboarding, investors choose one of six synthwave avatars and customise it with styles, accessories and effects. The public identity lives on the leaderboard and in live auctions, while KYC data stays private and compliant.

Vex avatar Zero in full detail: horned synthwave character with gold aviator glasses
ZEROStandard style
Vex avatar Zero in the Violet Surge style
Violet Surge
Vex avatar Neon
Neon
Vex avatar Raven
Raven
Vex avatar Pulse
Pulse
Vex avatar Knight
Knight
Vex avatar Nova
Nova
Vex KYC onboarding screen: identification document details and upload, shown with sample data
1. Verify identity (KYC, sample data)
Vex onboarding screen: Create your Vex identity, choose an avatar
2. Choose your avatar
Vex avatar customisation screen for the avatar Echo, with username, styles, accessories and effects
3. Customise styles, accessories and effects

From Screen to Street: Brand Applications

The identity carried through to launch: business cards, event merch for the Vex Private Markets Summit, and a social campaign built on the synthwave look.

Vex business card front, dark versionVex business card back, white version with QR code
Vex synthwave grid T-shirt in purple and magentaVex black T-shirt with outline logo
Vex LinkedIn banner: Your Gateway to Private Market Opportunities
Vex social post: Real-Time Bidding Is HereVex social post with 402kid: Markets move fast. We move faster

Inside the Vex Platform Today

Vex ATS is a single Go binary serving both vex.trade and the research catalog. PostgreSQL 16 holds orders, accounts and audit data, and acts as a rebuildable read cache over the git-based transfer-agent records. Row-level security is enforced per route tree, with separate database roles for investors and compliance staff.

The matching engine supports Dutch auctions, conditional offers and limit orders; settlement runs as a conditional-offer delivery with git commits as proof. Integrations such as Solana/Helius, Mercury, Resend, sanctions.io and the S3 Object Lock archive degrade gracefully when not configured. Infrastructure is Terraform on AWS, with GitHub Actions deploying every merge to staging and every tag to production.

Vex live auction dashboard on tablet: bid distribution chart, my bids and recent bids
Live auction dashboard: demand by price level, your bids and the live bid feed.
Vex mobile bidding screen showing auction progress and Place New Bid button
Mobile bidding: clearing-price chart, time left and progress to raise.
Vex mobile live auctions list with startup listings and amounts raised
Live auctions: startup listings, sectors and capital raised.
Ryan Singer
Makes an audit log that is both very transactional and also very easy to read for humans and machines.
Ryan Singer · Co-founder & CEO, Vex Holdings, on the git-backed transfer agent

Results: Compliance-Ready, Review-Hardened, and Built to Last

Reliability

Money-path issues caught before investors saw them

The duplicate-credit race, a withdrawal over-draw race, settlement cache gaps and a matching-engine shutdown deadlock were found through agentic and manual review and fixed before or shortly after launch. None surfaced through a customer.

Architecture

One Go service instead of three codebases

A React investor app, a React admin app and a PostgreSQL-native backend became a single Go service with embedded templates, on a stack any Go engineer can pick up.

Testing

Tests required on every change

About 58,000 lines of Go, with a project rule that any change to Go code ships with tests and passes the race detector. Playwright covers auth, onboarding, compliance, dual-role, cash and trading flows.

Compliance

FINRA and SEC compliance built into the code

FINRA 3110 audit logging, FINRA 2232 trade confirmations, FINRA 4512 trusted-contact fields, SEC 17a-4 records preservation with S3 Object Lock, OFAC screening, dual approval, and a decision log for every compliance action.

Delivery

Launched on schedule, supported since

v1.0.0 launched on schedule for the Vex Private Markets Summit, and Pieoneers has shipped a continuous stream of hardened releases since, covering crypto and wire deposits, passkeys and the compliance portal.

Lessons Learned: Building Production Software with AI Coding Tools

The Vex engagement changed how Pieoneers works.

  1. Vibe coding is the new technical debt. Generated code accumulates decisions that do not explain themselves. The remedy is not less AI but more structure: an owned spec, a second approver on every merge, and documentation maintained alongside the code.
  2. AI finds code issues at scale; people find product issues. Agent-driven review surfaced the financial races. Manual testing by Vex's operations lead surfaced onboarding gaps, a confusing sign-in page and the missing wallet integration. Both are required.
  3. Batch work per developer. Mid-task handoffs fail when there is too much generated code for a second person to absorb. Assign whole features to one owner and review at milestones.
  4. Test where failure means money. Instead of chasing a coverage number, target the matching engine, settlement, deposits and withdrawals with table-driven, concurrency and property-based tests.
  5. Some work does not get cheaper. Brand alignment, design polish and the regulatory thinking behind a feature still take the same care they always did.

Taking an AI-generated prototype to production? See our AI Prototype to Production service and the AI Playbook for CEOs.

Roadmap: What Comes Next for Vex

01

Frontend rework and mobile

A unified UI layer and a native-feeling mobile experience, with React Native and Expo as the recommended path now that AI-amplified development makes mobile affordable alongside the web platform.

02

Catalog and book-building

A research catalog where investors signal interest and anchor deals with capital, with template and anchor-flow workstreams next.

03

Regulatory depth

Trade surveillance alerts, a communications archive, investor suitability profiles, FinCEN beneficial-ownership collection for entities, and fund distributions.

04

Design system

A Tailwind component library and typography standards that give Claude Code a consistent reference across the app.

From Development Shop to Engineering Partner

Vex is a story about judgment. The first platform proved the product and showed what a regulated trading system actually needs. The migration plan was the responsible next step, until an AI-generated Go codebase made a rewrite the faster and safer path, and Pieoneers said so.

Since then the engagement has looked less like a development shop and more like an engineering and product consultancy: architecture and code review, UX direction, testing strategy, and production-grade work on the paths where money moves. Claude Code can write a trading platform fast. Getting it through a FINRA examination, keeping investors' funds correct to the cent, and making it feel trustworthy enough for a six-figure wire still takes a team that knows what it is looking at.

Frequently Asked Questions

How did Pieoneers keep AI-generated code safe on money paths?

Every merge needed a second approver, and Pieoneers ran deep code review with AI agents plus manual review on deposits, withdrawals, settlement and matching. That caught a duplicate-credit race, a withdrawal over-draw race, settlement cache gaps and a shutdown deadlock before any investor was affected.

Can AI-generated code be used in a FINRA-regulated product?

Yes, with structure. On Vex, Claude Code generated much of the Go platform, and Pieoneers owned the spec, required a second approver on every merge, ran agentic and manual code review on all money paths, and kept documentation that now feeds Vex's Written Supervisory Procedures.

What technology stack does Vex use?

A single Go service with HTMX, Tailwind CSS and Preact, PostgreSQL 16, WebAuthn passkeys, Solana (Anchor) with Helius, Mercury for wires, Terraform on AWS, GitHub Actions and Playwright.

Which regulations did the platform have to support?

FINRA 3110 supervisory logging, FINRA 2232 trade confirmations, FINRA 4512 trusted-contact fields, SEC 17a-4 records preservation, OFAC sanctions screening and dual approval of compliance actions.

Why rewrite instead of migrating to Hasura?

An AI-generated Go codebase, reviewed by Pieoneers, proved stronger than expected. With a fixed launch date for the Vex Private Markets Summit, starting fresh was faster and safer than migrating the first platform piece by piece.

Can Pieoneers take an AI-generated prototype to production?

Yes. On Vex, a Go platform generated with Claude Code was reviewed, hardened and taken live by Pieoneers. We owned the spec, required a second approver on every merge, and ran agentic and manual code review on every money path before real funds moved. AI Prototype to Production

Do you build mobile apps for fintech platforms?

Yes. The Vex investor experience was designed mobile-first, from KYC onboarding and avatar setup to live bidding. For a native app, the roadmap recommends React Native with Expo, since AI-assisted development now makes mobile affordable alongside the web platform. Mobile App Development

What does AI-assisted code review catch that manual review misses?

Scale. One person cannot meaningfully review code produced at AI speed, so Pieoneers ran deep review with a set of AI agents alongside manual review. On Vex it surfaced a duplicate-credit race on Solana deposits, a withdrawal over-draw race, settlement cache gaps and a matching-engine shutdown deadlock. Manual testing still found the product issues, such as onboarding gaps. Code Review & Security Audit

Can Pieoneers work with US companies?

Yes. Pieoneers is based in Vancouver, Canada, with an office in Bridgeport, Connecticut, and works with US clients such as San Francisco-based Vex Holdings, across time zones and with regular status calls. Contact Us

Can you design a brand and design system for a fintech startup?

Yes. Vex arrived with a strong synthwave direction; Pieoneers developed it in detail and created the first Vex design system: colour palette, Tektur and Tomorrow typography, UI components for onboarding and trading, the 402kid character and launch applications. Brand Identity & Design System

More Fintech & AI Case Studies

Services used in this project

Building Something Regulated, Financial, or Simply Hard?

If you want to move at AI speed without taking on the debt, let's talk.

Contact us today

or Book an Appointment