Crypto Crossing
Market
Tracker
A personal crypto dashboard built for fun: track your portfolio, browse a live market overview similar to CoinGecko or CoinMarketCap, and stay up to date with a curated crypto newsfeed, all powered by the CoinGecko API and Firebase.
Track holdings
in real time.
Add coins to your portfolio and watch the value update. Each holding lives in Firebase: the CoinGecko API fills in current price and 24h/7d/30d change, synced automatically on load and again with one tap of the refresh icon.
Each holding shows an allocation bar for its share of the total. Totals, gains/losses, and per-coin allocation percentages are all derived client-side from the live price feed, then written back to Firestore.
Crypto news,
no noise.
A curated newsfeed of hand-picked articles lives in Firestore, split into three collections: general, Bitcoin, and alt coins. Each entry shows a thumbnail, title, source, and short excerpt, linking out to the original article.
The three categories are split into tabs (Bitcoin, General, Alt Coins) using Headless UI, so it's easy to jump straight to Bitcoin-specific or alt-coin news without wading through everything else.
Bitcoin Breaks $70K Resistance as ETF Inflows Hit Monthly High
Spot Bitcoin ETFs recorded $842M in net inflows yesterday, pushing BTC past a key technical level for the first time in six weeks.
Uniswap v4 Hooks Draw Record Developer Activity in First Month
Over 200 hook contracts have been deployed since the v4 launch, with liquidity managers and MEV protection hooks leading usage.
SEC Delays Decision on Ethereum Staking ETF Applications Again
Follow the market
like CoinGecko.
A market table listing the top 500 coins by market cap (rank, price, and 24h/7d/30d percent change), paginated across two 250-coin pages pulled from CoinGecko's /coins/markets endpoint. A "Trending Up" carousel above the table surfaces the biggest 30-day gainers.
Rows are color-coded green or red per timeframe so gainers and losers are obvious at a glance. Price precision adapts to magnitude (more decimal places for sub-cent tokens), so both BTC and tiny-cap coins read cleanly in the same table.
What I actually
had to figure out.
This was a fun side project built to understand how crypto data platforms work. A few things required more thought than expected.
The free CoinGecko API has strict rate limits, and fetching the second page of the top-500 market list would occasionally 429. The fix was simple rather than clever: a hard-coded 1-second delay between the two page requests, plus explicit error logging so a failed second page fails loudly instead of silently blanking the table.
Firebase Auth handles email/password sign-up plus anonymous sign-in for guests who want to try the app without creating an account. Each user's coins live in a profiles/[uid]/coins subcollection, and Firestore security rules enforce that only the authenticated user can read or write their own holdings. No backend, no custom server auth: Firestore rules do all the authorization work.
Rather than polling in the background, prices sync once automatically the moment both the portfolio and market data have loaded, then again on demand whenever the user taps the refresh icon. That avoids firing unnecessary CoinGecko requests (and rate-limit risk) from a tab that's just sitting open.