Yuri Korolev
New York
iInfo
Yuri Korolev
New York
05

RR Metrics

Open Source2026
RR Metrics — Open Source

Context

I day trade, and I run an algorithm that trades as well, and both of them produce a log that somebody has to keep. The tools that keep it for you are subscriptions, and the ones people actually use are priced for professionals rather than for a student on a small account. TradeZella is the one everybody names. So the idea was the obvious one, and I want to be honest that it was the obvious one: build the same thing, charge much less for it, and see who turns up.

It started as a class assignment in November 2025. The scaffold we were given was a Node and Mongo app where you signed in and kept a list of cartoon monsters, each with a name and an age, and I took the monsters out of it and pointed the endpoints at trades instead. Over the eight months after that it turned into something considerably larger: OAuth and websocket connections to the brokers so the day's trades arrive on their own, analytics I wanted for myself rather than for a feature list, tagging, a pre-market checklist, several accounts side by side. There is a mobile version too, written in Dart and Flutter for a different class, reading the same Postgres database through row level security. I have lost access to the repository I submitted it from, so there are no pictures of it here.

I used it every day, for my own trades and for the algorithm's. What ended it was the bill. Hosting, the broker connections, the mail, the payment machinery, all of it adding up every month against ten or so users while school and freelance work were both growing. In July 2026 I stopped selling it, took the account system out, and put the whole thing on GitHub for anyone to run on their own machine.

Details

Role
Founder and Engineer
Team
Solo
Timeline
Nov 2025 — Jul 2026
Built with
TypeScript, React, Postgres, Cloudflare Workers
Deliverables
Web app, broker sync, landing site, Flutter client
Status
Open source, self-hosted

Final artifacts

RR Metrics — The dashboard, and the month it opens on
The dashboard, and the month it opens on
RR Metrics — Analytics above, and the brokers that fill it below
Analytics above, and the brokers that fill it below
RR Metrics — The journal, one row a trade
The journal, one row a trade

Key design moments

01

Being cheaper is not a way of being known

The plan was the price. That was the whole of it: the same tool as the expensive ones for a fraction of what they charge. It took me most of a year to understand why that is not a plan. TradeZella is not expensive because nobody has thought to undercut it. It is expensive because it has years of trades behind its analytics, a feature set I could not match working alone, and enough of a name that a trader who decides they want a journal already knows where to go. I had none of those and no way of telling anyone I existed. A lower price is only an argument if it reaches somebody, and every one of the ten or so people who used RR Metrics got there through somebody I already knew. This is the sign in page, which is the first thing a stranger sees, and along the bottom of it are three cards reading 12K+ trades tracked, 99% user satisfaction and 100% secure. I wrote those before there was anybody to be satisfied. They were easy to write because every landing page says them, which is also why nobody reads them.

RR Metrics — Being cheaper is not a way of being known
Being cheaper is not a way of being known
02

One app instead of five subscriptions

Trade Syncer mirrors orders from a leader account to follower accounts as they fill, over a websocket. It is in here because I did not want to pay for a copy trading service on top of everything else I was already paying for. The backtesting log is in here for the same reason, and so are the strategy rules and the pre-market checklist. Each of them replaced a subscription of mine or a tab of a spreadsheet. As a tool for one person that is the right answer, and it is why I still run my own build. As a product it is the wrong one: what a stranger downloads is an app that does eight jobs adequately and not one of them better than whatever they already open to do that job. The picture is the syncer with nothing in it, which is how it greets you. Two empty boxes, a leader and its followers, and a line underneath telling you to go and connect a broker somewhere else first. It asks you to understand how it was built before it will do anything for you. I would rather have made three of these properly than eight of them at all.

RR Metrics — One app instead of five subscriptions
One app instead of five subscriptions
03

Automating the entry did not automate the journal

Syncing was the point of the whole thing. Connect a broker and the day arrives with entry, exit, size and duration already filled in, which cut the time it took me to get a session into the journal by about 60%. Then nearly everyone using it went back into each trade afterwards and typed anyway. Why they took it, what they had been watching, what they would do again. Which is obvious now: the typing was never what a journal is for, and what I had automated away was the cheap half of it. The Strategy page in this picture is where I started on the other half. Rules you write once and then tick off against each trade and each day, so the thinking has somewhere to go that is not a box of free text nobody rereads. It is empty in the screenshot, and empty is roughly as far as I got with it.

RR Metrics — Automating the entry did not automate the journal
Automating the entry did not automate the journal

Impact

−60%Time to log a session
10+Users, before it went open
$0To run it now

The 60% is measured against me entering my own trades by hand, and the users were people I could reach rather than people who found me, so take both as what they are. What the project is now is closer to the thing I wanted at the start than the business ever was. It runs on your own machine, keeps everything in one folder you can back up by copying it, costs nothing to operate, and sits under Apache 2.0 at github.com/Snoe0/rrmetrics. The last change I made before publishing was to delete the login. There is only ever one person on your own computer, so the accounts were machinery left over from selling it, and taking them out is the moment it stopped being a business.

Reflections

This is the first thing I ever built with Claude, and most of what I know about working with an agent came out of it. It also taught me where that stops, which is design. The app looks like what you get when you ask a model for a trading dashboard: near black, one acid green accent, rounded cards with a large number and a small grey label sat above it. It is competent and it belongs to nobody. I did not draw any of it and you can tell. Design was the part that deserved the most attention, because a journal is a thing you open every evening when you are tired and slightly annoyed, and the only version of that anybody keeps using is the one that asks almost nothing of them. Nearly every good decision I made here was a decision to take something out of the way.

It is public because the alternative was worse. Eight months of work behind a login on a product I had decided to stop running preserves nothing at all, and it felt disrespectful to the work to leave it there. I know how the repository reads. Anyone opening it can tell roughly what year it was made in and roughly how, and I would still rather that than have it sit private and unused. If a trader clones it tonight and never pays for a journal again, that is a better ending than the quiet one.