Show HN: I build a Fantasy NHL app in 3 days with Claude AI

35 recvonline 15 4/26/2025, 5:04:07 PM
I am not from North America, and moved there a couple years ago. After being invited to the first fantasy league and seeing the platform they were using, I couldn't bring myself to check it every day. An excel sheet would have been more appealing to use than this.

So I decided to create my own. But on the side? This would take ages. I am very confident with Rust and JavaScript, but it still takes ages to build something like that.

Good prompts, and a few long nights later, and I could create something fun and easy to use.

Have a look: https://fantasy-frontend.fly.dev/

The frontend is in React, the backend in Rust. I deployed both via fly.io. It was so simple and fast, it was shocking.

After it was deployed, I took 2-3 days to refactor everything and made it neat and tidy, so I could possibly open it up for general use with accounts etc.

The first time I built something with the help of AI not just for me.

The biggest help was certainly the UI and styling. I was never good at that. The first draft looked rough. I fed it some screenshots from NHL.com and told the model to "make it look nicer". What you see is I think the 20th iteration of the app, slowly improving, fixing bugs etc. But 90% with the help of AI.

I could have done 98% myself (except the styling part). And after each working iteration, I spend quite some time cleaning up so I can build on top of that.

The beauty? The cleaner, more modular code base saved tokens and made it easier for the model to refactor and understand. Strictly typed (TypeScritp in the frontend, Rust in the backend) helped as well!

Comments (15)

hirvi74 · 69d ago
Nice work! It's better than Yahoo's hellscape I have been forced to suffer for years.

However, my favorite player is not in your app, and I am slightly offended (I'm kidding of course).

Do you plan to add real-time updating of stats? I thought of rolling my own app at one time, and last I checked, the NHL is very particular about their data.

recvonline · 60d ago
I do sort of "real time". At least currently, each refresh of the frontend does a call to the backend, which doesn't have caching implemented yet. So as soon as the NHL returns new data, you will see it.

I haven't encountered any rate limiting. I find it quite fascinating how fast the API is. Sometimes my live stream is lacking a few seconds behind, and my website already has the new score before the stream.

fapi1974 · 66d ago
I did something in a similar space and I'm a complete noncoder: www.sgpedge.com

Probably about ten hours, all in.

recvonline · 60d ago
Wow, that's impressive.
logankeenan · 66d ago
That looks pretty nice and polished! Did you use Claude Code? Also, what are some of the crates you used for your Rust stack? Did you ever consider doing a server side rendered app and no React?
recvonline · 60d ago
Nope, all through their web UI. I used Claude Code once, but it wasted a lot of money for not much better results. So I stick to the web UI for now.

I am using Axum, Tokio, Tracing, SQLX. I am an experienced Rust programmer, so I could always judge what code I am getting, and how to refactor it after. But it saved me writing lots of boiler plate SQL queries etc.

I thought about server side rendering, but have no experience doing it with Rust. So I sticked to the stack I am used to, to ship a bit faster.

Any recommendations on server side rendering crates?

olivermuty · 69d ago
How many tokens/dollars? Curious :)
recvonline · 60d ago
Just the Web UI. So usual subscription price. I used Claude Code previously, but wasn't super satisfied. Also changing files directly gave me more headaches in the past. I want to see the code first, judge it how it looks, and then do the change myself.
algo_trader · 66d ago
well done on all the functionality.

a. which llm/IDE do you use?

> The biggest help was certainly the UI and styling

b. the styling seems to be v"stripped down"?!

Did you explicitly prompt for this? Whenever i prompt from some web app i get an initially visually richer style - which becomes difficult to maintain later

recvonline · 60d ago
Claude through the Web, and just normal IDEs (Rust Rover and Zed) without any built in help. Just copy/pasting + adjusting through the Web UI of Claude.

I specifically prompted the UI to be simplistic, component based etc. I also prompted tailwind, so that the LLM doesn't go crazy on hundreds of lines of CSS. Everything generated I can understand and change.

airstrike · 66d ago
That fly.io bill bout to skyrocket
recvonline · 60d ago
I am actually on a legacy plan, and they shut down the machine by default if not used. Last month I got a bill of 1.15 USD, which they said I don't have to pay since it's below 5 USD :)
glohbalrob · 69d ago
nice man. setup a domain, post on X, chat with the NHL community.
ravish0007 · 66d ago
A look at source would be great.
mahi_novice · 66d ago
How much it cost?