M4RKYU.SYSEdition 2027
Skip to content
LOCEN/Ontario · CA/▸work · m4rketviewStandbyOK/--:--:--EST
M4M4RK_YUportfolio
  • BuildBuild
    BuildOverview
    • WorkSelected case studies and write-ups
    • GamesPlayable prototypes and game-dev logs
  • GalleryGallery
    GalleryOverview
    • PhotosPhoto collections and visual experiments
    • ShopPrints, posters, and one-off objects
  • WritingWriting
    WritingOverview
    • BlogLong-form devlogs and field notes
    • NotesShort observations, links, snippets
  • ResourcesResources
    ResourcesOverview
    • Tools38 in-browser developer utilities
    • LinksDaily-use dev and design bookmarks
  • AboutAbout
  • ContactContact
中文
← projects
Web app · 2024Ready

M4rketView

A free, no-key crypto dashboard with live prices, resilient public-data fallbacks, local portfolios, alerts, and comparison tools.

Quick facts

Role
Solo frontend product engineer: data-source strategy, resilient fetching, financial interface design, client state, testing, and deployment.
Timeline
2024-2026 · v1.3.2
Platforms
Responsive web · No account or API key
LiveSource

On this page

  • >What it is
  • >What it looks like
  • >Built with
  • >Highlights
  • >Engineering
  • >Under the hood
  • >Outcome
  • >Roadmap & lessons
M4rketView dashboard showing market cap, dominance, volume, sentiment, gainers, losers, and a heatmap
Fig. 01 — M4rketView

Why I made this

I was tired of crypto dashboards that flash and pulse at you. I wanted one boring table I could actually read, so I made it.

01

What it is

#

Problem

Crypto dashboards tend to drown users in motion, color, and unstable hierarchy. M4rketView focuses on comparison and scan speed.

Solution

M4rketView combines Binance WebSocket prices with public market, DeFi, chain, sentiment, and news sources. Watchlists, alerts, and portfolios stay in the browser, while query caching and source fallbacks keep the dashboard useful under rate limits.

02

What it looks like

#
  • Market heatmapThe treemap turns relative market size and 24-hour movement into a fast visual scan while preserving exact values.
03

Built with

#

Product

  • React 18
  • TypeScript
  • Vite 6
  • Radix UI
  • cmdk

Data

  • TanStack Query
  • Zustand
  • Binance WebSocket
  • Recharts

Quality

  • Vitest
  • 145 tests
  • strict TypeScript
04

Highlights

#
  • Live Binance prices for 20 assets and market coverage for up to 250 coins
  • Dashboard, markets, trending, compare, news, and treemap heatmap views
  • Local-only watchlists, portfolios, price alerts, and preferences
  • DeFi, chain, sentiment, and RSS data from multiple public providers
  • Rate-limit-aware caching and provider failover
05

Engineering

#
  1. Process 01

    Treat API failure as normal operating state

    Context
    Free crypto providers disagree on schemas, rate limits, coverage, and availability.
    Approach
    Normalize providers behind adapters, add explicit fallbacks, and persist a 24-hour TanStack Query cache.
    Outcome
    The dashboard remains useful during partial outages, but freshness must be communicated instead of assuming every number is live.
  2. Process 02

    Keep personal finance data in the browser

    Context
    Watchlists and sample portfolios do not justify accounts, a database, or custody of user financial data.
    Approach
    Store portfolios, alerts, watchlists, and preferences locally with no backend identity layer.
    Outcome
    The app is private and frictionless, but cross-device sync and server-side alert delivery are deliberately absent.
06

Under the hood

#

Architecture notes

  • CoinGecko is the primary broad-market source, with CoinPaprika and Binance fallbacks when requests fail or rate-limit.
  • TanStack Query persists a 24-hour browser cache so stale-but-useful data can survive transient provider failures.
  • Portfolio and watchlist data never leave localStorage; there is no backend, account system, or private API key.
  • Data adapters normalize provider differences before values reach tables and charts.

Challenges

  • Public market APIs have different schemas, quotas, and outage behavior, so graceful degradation is a product requirement.
  • Dense financial screens need visible freshness and error states without adding more visual noise.
07

Outcome

#
“
A deployed v1.3.2 dashboard that remains free and accountless while handling live streams, public API limits, local portfolio state, and a broad set of comparison views.
08

Roadmap & lessons

#

Lessons learned

  1. 01Dense layouts need restraint, not extra animation.
  2. 02Financial interfaces should reveal state changes without shouting.

Next steps

  1. 01Surface per-widget source freshness
  2. 02Expand deterministic adapter tests
  3. 03Add import/export for local portfolios

Related work

Web app

Nimbus

A passwordless cloud workspace for organizing, sharing, beaming, and asking questions about your files.

Web app

Bloomprint

Turns yard inspiration into a buildable plan — what to buy, how much, what tools, in what order, and what can go wrong.

PreviousBioLoomA no-signup AI writing tool that generates, scores, edits, and shares platform-specific bios across eight models.
Back to all work
NextBloomprintTurns yard inspiration into a buildable plan — what to buy, how much, what tools, in what order, and what can go wrong.
Back to archive
M4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYU
Crafted since 2024
ZhenXiao Mark YuZhenXiao Mark Yu
get in touch

Saw something here?Tell me about it.

It's a portfolio, not a service · but I read every note — drop a line if anything here resonated, or just to say hi.

Start a conversation
open channel

say hi anytime · 2026

--:--:--ESTOntario, Canada
  • Email
  • GitHub
  • dev.to
  • LinkedIn
  • Twitter / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat

Newsletter

Get the occasional dispatch

Notes and logs from m4rkyu.com — short, dated, no noise. Unsubscribe anytime.

Work

Production builds, games, and visual archives.

  • Projects
  • Games
  • Archive
  • Logs

Resources

Daily-use tools and a personal link library.

  • Search
  • Latest
  • Tools
  • Links
  • Notes
  • Topics
  • Shop
RSSJSON feed

Studio

Background, contact, and channels for collaboration.

  • About
  • Contact
  • Changelog
  • Colophon
  • Resumepending

Socials

Find me on the usual feeds.

  • GitHub
  • dev.to
  • LinkedIn
  • Twitter / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat
  • Email
© 2026 ZhenXiao Mark Yumarkyu0615@gmail.com
  • Email
  • GitHub
  • dev.to
  • LinkedIn
  • Twitter / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat
PrivacyTermsBuilt with Next.js 16 · React 19 · Tailwind 4