Web app
PropTradingDash v2
Production TypeScript monorepo powering the dashboard, checkout, and gateway of a prop-trading platform.
- Year
- 2025
- Type
- Web app
- Context
- Team project, QuantTechnology Group
- Industry
- Fintech / Prop Trading
- Role
- Frontend developer, one of four developers on the dashboard and checkout apps
One of four developers on the platform. Contributed 139 commits to a ~20MB TypeScript codebase.
Problem
A prop-trading firm needed a single frontend platform to serve traders, handle program purchases, and route requests. The previous version had grown into a codebase where UI, checkout, and routing concerns were tangled and hard to ship independently.
Solution
A Bun-workspaces monorepo splitting the product into three deployable apps (dashboard, checkout, gateway) on top of four shared packages (ui, checkout-shared, checkout-widgets, locales), so a change to the design system or the checkout flow propagates once instead of being reimplemented per surface.
What I built
- Three apps + four shared packages in a single Bun workspaces monorepo
- Shared component library documented in Storybook
- End-to-end coverage with Cypress, plus a dedicated E2E test repository
- Strict quality gate: ESLint (airbnb-typescript), Prettier, jsx-a11y, Husky pre-commit hooks
- Automated release pipeline with git-cliff changelog generation and semantic versioning
- Internationalization through a shared locales package
- Figma-to-implementation pixel diff tooling to catch visual drift
Engineering challenges
01
Keeping three apps visually and behaviourally consistent
Dashboard, checkout, and gateway ship separately but must feel like one product. Shared UI and checkout logic live in workspace packages rather than being duplicated, so a fix lands once. The tradeoff is stricter API discipline at the package boundary.
02
Working inside a large codebase with a small team
Four developers maintaining a codebase this size means everyone works across surfaces they did not write: reading unfamiliar code, matching established conventions, and passing an automated lint, type, and test gate on every commit. Ownership is wide by necessity.
03
Design fidelity at scale
With many screens and multiple contributors, visual drift from the Figma source is inevitable. The repo carries a pixel-diff tool comparing implementation against Figma frames, turning "does this match the design?" into a checkable step rather than an opinion.
Stack
- TypeScript
- React
- Bun
- Monorepo (workspaces)
- Tailwind CSS
- Storybook
- Cypress
- ESLint
- git-cliff
Screens
Screens withheld: proprietary internal product.