Rake — Kaili Miyamoto
← Work Rake Next →
Rake Rake · Self-initiated build

You don't know what you {{ scrambleText }}.

My fantasy baseball league runs $100 side bets on four categories. ESPN keeps those numbers somewhere — buried on desktop, gone on mobile — so every week I redid the math for eight teams by hand, in my Notes app. Rake replaced me.

Role
Designer + Builder
Timeline
2026 Season
Type
Personal build · Fantasy sports
Stack
Figma, Claude Code, Vercel
Open the live app
The problem

Every stat existed. The one thing we had money on didn't.

ESPN is built to crown one champion. Our league was running four separate side bets. Three things made that painful.

01
A different game
ESPN answers one question: who's winning the league. We were asking four — one per category, each with its own money on it.
02
The math
ERA and AVG are rate stats — one roster move and you recalculate everything from scratch.
03
By hand
I was tracking eight teams across four categories by hand in my Notes app, every single week.
What changed

I built it to stop doing math. It changed how I play.

ERA and Avg can't be added up — they rebuild from raw earned runs, innings, hits and at-bats. One roster move made every number I'd written down wrong.

So I kept my own file. Eight teams, four columns, every week — because not watching the categories meant donating money.

June 18, 2026 at 9:50 PM
Baseball League
Totals HR Avg. Wins ERA
{{ r.name }} {{ c.val }}
{{ notesStamp }}
The unexpected part

Once I could see where I stood, I started picking up players to move a category — not because they were hot that week.

If I'm nine wins behind, that $100 is already gone — no pickup fixes it. But if I'm one point off in batting average, one good bat can flip it. The board tells me which of the four is still winnable, so I spend the roster spot there.

Added to roster
{{ p.tagText }}
{{ p.name }} {{ p.posShort }}
{{ p.logoEl }} {{ s.k }} {{ s.v }}
How I built it

There was no team. Just me, running this loop until it was live.

I gave Rake an identity before I gave it features — a mark, a palette, a type pairing, and a voice that sounds like the group chat it came out of. Then this loop ran until there was something to open.

One mark, 136 down to 44 — drawn before the first feature.
01
Write the spec
Figma
02
Let the model build it
Claude Code
03
Ship the same day
Vercel
04
Use it, fix the gap
Live
↻ and again, every week of the season
9:41
Explore it live
Open in new tab
What happened

The league liked it. I'm the one who needed it.

A board that tells you which bet is still winnable only pays off if you still have one — so for most of them it was a fun thing to look at, and for me it's the thing I open before every lineup.

Which is the honest version of this project: I built a tool for the one person close enough for the math to matter.

{{ m.who }} {{ m.text }}
Takeaway

None of this was new data. What changed is that I can see it.

More work All projects →
{{ r.num }}
{{ r.name }}