DEV Community

Cover image for I built a crypto price tracker today to sharpen my async JS — here's what I actually learned
Chinwuba
Chinwuba

Posted on

I built a crypto price tracker today to sharpen my async JS — here's what I actually learned

First blog post, let's get to it
I've been deep in client work lately building out websites for real estate businesses across Africa. Today I deliberately slowed down and went back to basics — async JavaScript.
I built a simple crypto price tracker using the CoinGecko public API. No React, no Vite, just plain HTML, CSS and JS. The goal was to feel the fundamentals without framework abstractions hiding what's happening.
A few things that clicked today:
async/await is just a better syntax over Promises. When you write await, the engine is literally just calling .then() under the hood. Knowing this stops you from treating them like two different things.
Two separate awaits doesn't mean two simultaneous operations. await getUser() then await getPosts() is sequential. If they don't depend on each other, Promise.all runs them in parallel and cuts your wait time in half.
Not all errors are the same. A network failure and an empty API response are two different problems and need two different handlers. try/catch catches the network error. A conditional check catches the empty response. I almost shipped code that only handled one of them.
Small project, real lessons. That's the kind of day I like.

if you have an question, do well to shower me with it. Also, opinions are accepted for discussion

Top comments (0)