Reflex

Bayesline's Two Founders Built a Client Portal That Turns Weeks of Analysis Into Seconds

A two-founder fintech shipped a client-facing analytics product without hiring a frontend engineer: 4x faster than learning React, half the code of their Dash prototype, production from day one.

Reflex logo
Bayesline logo

$0

Spent on hiring a frontend engineer

4x

Faster relative to learning React

50%

Less code compared to the same app in Dash

Founded
New York, 2024
Investors
Y Combinator
Bayesline's institutional analytics platform, built with Reflex

Reflex definitely saved us from needing to hire a frontend engineer and sped us up by 4x relative to learning React.

Misha Van Beek profile picture
Misha Van BeekCofounder, Bayesline

Any company that serves clients eventually faces the same question: how do you put professional software in your customers' hands without staffing a product team? Bayesline faced the hardest version of it, with the most demanding clients there are.

Meet Bayesline, the Y Combinator-backed, GPU-powered financial analytics suite for institutional investors. Bayesline deploys customized equity factor risk models in the cloud, work that previously took investors weeks or months to run. Its product is a client-facing platform that professional investors pay to use, which means it has to look and behave like software built by a dedicated product team. Bayesline does not have one. It has two founders.

Sebastian Janisch, cofounder, leads the technical side; before Bayesline he was a Director in BlackRock's Financial Modeling Group, working on equity risk models that analyze trillions of dollars in assets, with Bloomberg before that. His team's expertise is quantitative: models, data, and Python.

The UI is the necessary evil, that is not our bread and butter.

Sebastian Janisch profile picture
Sebastian JanischCofounder, Bayesline

The six-month path, and the one they took

The conventional route for a team like this is well worn: quants prototype in a tool like Dash, then hand the prototype to a UX and engineering team to rebuild for production. Sebastian had lived it.

You wouldn't want to use Dash to build a production-grade application. It's a prototyping tool. Usually, a UX and engineering team would re-implement everything from scratch. It will take six months for anyone to get hands on it, but we want this now.

Sebastian Janisch profile picture
Sebastian JanischCofounder, Bayesline

A startup racing through Y Combinator does not have six months or a rebuild team. The two paths in front of Bayesline, side by side:

The conventional pathWhat Bayesline did
Who builds the interfaceA hired frontend teamThe founders, in Python
Prototype to productionRebuilt from scratch by a second teamThe first version is the production version
Time to clients' handsSix months, per the founders' experienceIn clients' hands during Y Combinator
Cost of the frontend capabilitySalaries and equity$0 in frontend hires
The codebaseTwo stacks, two languagesHalf the code of the Dash prototype

They had already hit the prototype's ceiling: as the application grew it slowed, and every change became harder to ship.

With dash we very quickly hit the ceiling.

Sebastian Janisch profile picture
Sebastian JanischCofounder, Bayesline

For how to run this decision on your own product, see our build vs. buy framework for internal software.

A client-facing product, held to client standards

The bar was not "good enough for a demo." Institutional investors would be logging in.

We wanted to build a frontend that would be as indistinguishable as possible from one built by professional frontend developers.

Sebastian Janisch profile picture
Sebastian JanischCofounder, Bayesline

The founders built the platform in Reflex, in the language their models already spoke. What began as a minimum viable product to get through Y Combinator turned out to be production grade from the start: Bayesline has since scaled it into a full client-facing product with paid trials, and the team continues to ship new data-intensive applications on the same foundation. For the general pattern, see our guide to building a customer portal.

How it was built

This section is written for your technical team. In short: pure Python end to end, with React available where the product needed more.

View the technical details

Reflex provided 60+ UI components out of the box with the flexibility to wrap custom React components where needed. Bayesline wrapped AG Grid, the industry-standard high-performance data table in fintech, for its client-facing views.

The move from Dash also changed the shape of the codebase. The prototype had hit a performance wall as well as a structural one.

The app was just getting painfully slow. Dash loads the entire application, the entire dom of every single page. As the application gets bigger, the performance will just go down.

Sebastian Janisch profile picture
Sebastian JanischCofounder, Bayesline

Dash also offered no first-class support for object-oriented design, which the team felt as the app grew.

When we started looking at the (Dash) code, it just got to this point where you're scared of it because there is no object-oriented notion; the code just turns into an enormous mess because you just have this huge collection of functions.

Sebastian Janisch profile picture
Sebastian JanischCofounder, Bayesline

The same application in Reflex runs on half the code.

50% less code than the same Dash app and easier to read / write / maintain code compared to Dash

Sebastian Janisch profile picture
Sebastian JanischCofounder, Bayesline

Using Reflex instead of Plotly Dash was like the difference between organized Legos and a plate of spaghetti.

Misha Van Beek profile picture
Misha Van BeekCofounder, Bayesline

The startup math

No frontend engineer hired, a build four times faster than the alternative the founders faced, half the software to maintain, and a product in clients' hands during the window that decides whether a startup exists. Buying their way out would not have been cheaper: the managed version of the prototyping tool carries its own price, before it solves the rebuild problem.

You pay like 60 grand for a year for the hosted version of Dash

Sebastian Janisch profile picture
Sebastian JanischCofounder, Bayesline

The interface stopped being the necessary evil and became something two quants could own outright.

For the same economics inside a larger organization, see how SellerX put a month of analysis into a week without adding analysts.

Frequently asked questions about shipping fintech products with a small team

Does a startup need a frontend engineer to ship a client-facing product?

Not necessarily. Bayesline, a Y Combinator-backed fintech, shipped a GPU-powered analytics platform to institutional investors with no frontend hire: its two founders built the interface in Python with Reflex, 4x faster than learning React, and the product has scaled into paid trials on the same codebase.

Is Plotly Dash suitable for production applications?

In Bayesline's experience, Dash is a prototyping tool: as their app grew it became painfully slow, since Dash loads the entire application on every page, and the codebase without object-oriented structure became hard to maintain. The conventional fix is a from-scratch rebuild by a separate engineering team, which takes months, or the hosted version of Dash at roughly $60,000 a year. Bayesline rebuilt once, in Reflex, with 50% less code.

How fast can a small team ship a client-facing analytics platform?

Bayesline built theirs during Y Combinator, fast enough to demo through the program and a funding round, and it turned out to be production grade from the first version: no second rebuild, and paid client trials on the original codebase.

Can a Python-built interface meet the standards of professional frontend work?

That was Bayesline's explicit bar: a frontend indistinguishable from one built by professional frontend developers, serving institutional investors. They met it in pure Python, wrapping industry-standard components like AG Grid where the product demanded them.

See what your team could build.

Tell us about your workflow. See how Reflex can help you turn it into an application.