I have a confession: I bought a knockoff Xbox 360 controller in the mid-2000s specifically to play MUGEN on my laptop. I’d spend hours downloading characters, building rosters, and fighting the AI. Shin Akuma was my main. If you know, you know.
Fast forward to late 2025. I somehow rediscovered SaltyBet — honestly couldn’t tell you how — and immediately got pulled back in. The nostalgia hit hard. These were the same kinds of MUGEN characters I used to play against, except now they were fighting each other 24/7 on Twitch while thousands of people bet virtual money on the outcome. It was beautiful.
But after a few sessions of betting, one thought kept coming back: “Surely, there has to be a better way to do this.”
SaltyBet gives you a character name and a betting window. That’s it. No stats, no win rates, no history, no head-to-head records. You’re betting blind every single time unless you’ve memorized the roster, and the roster has over 10,000 fighters. Maybe you recognize one or two names, but nobody has memorized 10,000 fighters.
The crowd chat moves too fast to learn anything useful. Half the time it’s memes or rants. The other half is people who already lost everything screaming from the salt mines. Entertaining? Absolutely. Informative? Not so much.
I wanted data. Win rates, matchup history, trends — the kind of information that would actually help me make better bets. And if that information existed somewhere, I couldn’t find it. So I figured: why not build it myself?
Here’s the thing, I’m not a software engineer by trade, or anything close to it. I’m a hobbyist coder. When I started this project, I didn’t know what a backend service was. I didn’t fully understand databases. I’d never built a Chrome extension. I’d never deployed anything to a server. The gap between “I have an idea” and “there’s a working product people can use” was enormous, and I honestly had no idea how wide it was when I started.
What I did have was the idea, stubbornness, and access to AI coding tools. And that combination turned out to be enough.
I started building SaltyTrack in January 2026. The first version was rough. Really rough. But it worked, it could connect to SaltyBet’s data, record match results, and start building a history of fighter performance. Every match, every outcome, every bet — all going into a database. I did my very best He-Man impression, and shouted so loud I’m sure my neighbors heard: I HAVE THE POWERR!!!!!
Building SaltyTrack was a crash course in software development. Some of the things I learned the hard way:
Databases matter more than you think. When you’re recording hundreds of matches a day, how you store and query that data makes a huge difference. I started with SQLite for local development and eventually moved to PostgreSQL for production. The difference in what you can do with a proper database is night and day (along with decent hardware to power the database, but that’s a story for another day).
Backend services are their own world. Setting up an API, handling rate limiting, managing caching, keeping a server running 24/7 — none of this was obvious to me when I started. Every piece introduced a new concept I had to learn. What’s a TTL cache? Why does my server run out of memory? What’s a health check endpoint? I learned all of it in real time, usually because something broke.
Server resources are not infinite. This one bit me during the ML model development. I trained a machine learning model locally on my laptop with no issues. Deployed it to the server and it immediately ran out of memory. Turns out a petite server instance doesn’t have the same resources as your development machine. Lesson learned: train locally, deploy the model file, let the server just run predictions (or invest in better hardware, but since this is a passion project, we’ll cross that bridge if/when it makes sense).
Good design is not optional. Early versions of SaltyTrack worked but were probably less than ideal under the hood. As the project grew, I had to go back and refactor — separate the API from the collector, build a proper data layer, harden the web services. It’s the kind of work nobody sees, but everything breaks without it. The AI coding tools were critical in this phase. It began with asking, “From a low, medium, and high level of effort, what changes and improvements can I make?” and went from there. Over the course of a few days, some nights, and some weekends, I arrived at a fully fleshed out product that we’re able to enjoy now.
The original plan was simple: track matches, show stats. But once we had data flowing, things got interesting fast.
We discovered the SaltyBoy API, which gave us access to historical match data going all the way back to December 2021. Overnight, we went from a few weeks of data to over 570,000 matches. Five years of SaltyBet history, all in one dataset.
That’s when the project shifted from “let’s track some stats” to “what can we actually learn from this?” We started pulling insights:
The more we dug, the more patterns emerged. And that’s when we thought: what if we could predict this?
We built a machine learning model trained on historical match data to predict fight outcomes. The model analyzes multiple factors about each fighter and matchup to estimate who’s more likely to win. We’ll keep the specifics close to the chest, but the results speak for themselves.
Over the last 90 days across 34,000+ scored matches:
| Confidence | Accuracy |
|---|---|
| Lock | 99.8% |
| High | 86.8% |
| Medium | 70.1% |
| Low | 56.0% |
| Overall | 72.0% |
72% overall, beating the crowd’s 67.9%. When the model says “Lock,” it’s been wrong twice out of 998 predictions. That’s the kind of signal that compounds over thousands of bets.
Is it perfect? No. The model struggles most with A-tier matches (because everyone does) and with fighters who have limited match history. But it’s significantly better than guessing, and it gets better as we collect more data.
All of this data and prediction power means nothing if you can’t access it when you need it — during the betting window on SaltyBet. So we built a Chrome extension that overlays directly on saltybet.com.
When a match comes up, the SaltyTrack overlay shows you:
No tab switching, no looking things up manually. The information is right there when you need it. And it’s free.
If you have an idea for something you want to build and you’re thinking “but I’m not a developer”, that’s not the barrier it used to be. AI coding tools have leveled the playing field in a real way. I went from having basic API knowledge and limited working exposure to having a production application with a machine learning model, a Chrome extension in the Web Store, and a live website tracking data 24/7.
That said, the tools don’t do it for you. You still need to understand what you’re building and why. You still need to debug things at 2am when something breaks. You still need to learn the fundamentals along the way. The AI tools accelerate the process, but the curiosity and persistence have to come from you.
SaltyTrack started because I wanted to make better bets on a silly fighting game stream. It turned into one of the most educational experiences of my life. And it’s still going — we’re still collecting data, still improving the model, and still finding new things in the numbers.
Want to see what 570,000+ matches of data looks like in action? Install the SaltyTrack Chrome extension — it’s free, installs in seconds, and gives you AI-powered predictions, win rates, and head-to-head records right in the SaltyBet overlay.
We built this because we wanted it. Turns out other people wanted it too.
SaltyBet uses virtual currency only. No real money is wagered or exchanged. SaltyTrack is not affiliated with SaltyBet.