Problem Our trading platform was built for novice traders, and lack the principles of being able to view, find and action your positions and pending orders while trading.

Inspiration

I trade options on the side and every time I placed an order on Wealthsimple web I'd flip between three tabs to see the chart, the option chain, and my open orders. Meanwhile the tools I actually respected (thinkorswim, Tastytrade, IBKR) put everything on one screen. We had the data, we had the routing, we had the market maker relationships. We just didn't have the surface. So I built one.

What it does

It's a full trading workstation inside Wealthsimple web. One screen: candlestick chart with technical indicators (VWAP, MACD, volume overlay), a persistent crosshair with OHLC hover, an option chain with column picker, a positions and orders and activity panel that updates live, a watchlist, and an order flow sidebar. You can click a bid or ask and the limit price follows the quote in real time. S&P 500 streams in the footer next to your buying power and account selector. Pending orders render right on the chart. Options MLEG strategies are supported end to end.

How I built it

Started with the fundamentals: a fullscreen layout with a resizable order flow sidebar, a sticky top bar for price/OHLC/bid/ask, and a tabbed table for positions, orders, and activity. Then I wired the chart to our streaming market data via RollingTicker so price, change, and quotes stay live without layout shift. Every panel is a slot that composes with the rest, so adding VWAP or MACD or the watchlist or the S&P 500 footer was additive, not a rewrite. Click-and-follow bid/ask piggybacks on react-hook-form so the limit price mutates while the user hovers. Instrumented the whole thing with Mixpanel entry-point metadata and turned on FullStory recording for the segment so we could actually watch people use it. Mainly vibe-coded.

Challenges I ran into

Real market data is unforgiving. Every fix I shipped in Feb was a lesson: OHLC digits caused layout shift, the baseline chart flipped red on green days, horizontal price lines were too bright, the positions table wouldn't scroll in the options view, short puts rendered as stock, MLEG strategy names were wrong on the orders tab, the scroll position reset when you clicked a row, the sticky tab didn't stay sticky, the resolution selector reset on tab switch. Options and multi-leg were the hardest. Getting a short put to route through the options order flow instead of the equity one meant tracing the security class all the way from the positions payload to the order builder.

Accomplishments that I'm proud of

Shipping a real advanced platform inside a consumer app without regressing the consumer app. The whole thing lives behind a route and preloads so power users get it fast, and every advanced-chart order carries an entryPoint so we can actually measure whether it's better. Also proud of the click-to-follow bid/ask, which turned out to be the feature people demo first when they show the platform to friends.

What I learned

Traders don't want a redesign, they want their tools in one place. Every "advanced" feature I added that traders actually used was something they were already doing across three windows. The interesting product work was in the composition, not the components. On the engineering side, I learned how much of a chart's feel comes from tiny things: sticky headers that don't jitter, a crosshair that doesn't lag, digit slots that don't shift by a pixel. Those are the things that make it feel like a Bloomberg terminal instead of a demo.

What's next for Wealthsimple Advanced Trading Platform

A workspace concept so you can save layouts per symbol or per strategy. And eventually a keyboard-first order entry mode, because the traders I built this for don't want to touch a mouse.

Built With

Share this project:

Updates