M4RKYU.SYSEdition 2027
Skip to content
LOCZH/安大略 · 加拿大/▸work · m4rketview待机OK/--:--:--EST
M4M4RK_YUportfolio
  • 创作创作
    创作Overview
    • 作品精选案例与项目记录
    • 游戏可玩原型与游戏开发日志
  • 影像影像
    影像Overview
    • 照片影像合集与视觉实验
    • 商店印刷品、海报和限量物件
  • 写作写作
    写作Overview
    • 博客长篇开发日志与现场笔记
    • 笔记短观察、链接与代码片段
  • 资源资源
    资源Overview
    • 工具38 款浏览器内开发工具
    • 链接每日使用的开发与设计书签
  • 关于关于
  • 联系联系
EN
← 项目档案
Web 应用 · 2024就绪

M4rketView

为快速浏览、自选观察和行情表格清晰度设计的加密货币筛选工具。

关键信息

角色
Solo frontend product engineer: data-source strategy, resilient fetching, financial interface design, client state, testing, and deployment.
周期
2024-2026 · v1.3.2
平台
Responsive web · No account or API key
在线源码

本页导航

  • >这是什么
  • >界面一览
  • >技术栈
  • >亮点功能
  • >工程实现
  • >实现细节
  • >结果
  • >规划与心得
M4rketView dashboard showing market cap, dominance, volume, sentiment, gainers, losers, and a heatmap
Fig. 01 — M4rketView

为什么做这个

受够了那些一直闪、一直跳的加密货币面板。我只想要一张能好好看的、无聊的表格,于是自己做了一张。

01

这是什么

#

问题

很多加密货币面板被颜色、动效和信息层级淹没。M4rketView 更关注比较效率。

方案

界面优先处理表格密度、搜索、自选状态和可读指标,而不是堆叠装饰性图表。

02

界面一览

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

技术栈

#

Product

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

Data

  • TanStack Query
  • Zustand
  • Binance WebSocket
  • Recharts

Quality

  • Vitest
  • 145 tests
  • strict TypeScript
04

亮点功能

#
  • 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

工程实现

#
  1. 过程 01

    Treat API failure as normal operating state

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

    Keep personal finance data in the browser

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

实现细节

#

架构笔记

  • 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.

挑战

  • 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

结果

#
“
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

规划与心得

#

复盘

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

下一步

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

相关案例

Web 应用

Nimbus

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

Web 应用

Bloomprint

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

上一篇BioLoomA no-signup AI writing tool that generates, scores, edits, and shares platform-specific bios across eight models.
返回全部作品
下一篇BloomprintTurns yard inspiration into a buildable plan — what to buy, how much, what tools, in what order, and what can go wrong.
返回档案
M4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYU
始于 2024
ZhenXiao Mark YuZhenXiao Mark Yu
联系

看到什么有意思的?和我聊聊。

这是一个作品集,不是服务 · 但每一条留言我都会看 — 如果哪里让你有所触动,或者只想打个招呼,欢迎写信过来。

开启对话
频道开放

随时打个招呼 · 2026

--:--:--EST加拿大 安大略
  • 邮件
  • GitHub
  • dev.to
  • 领英
  • 推特 / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat

订阅

偶尔收到一封简讯

来自 m4rkyu.com 的笔记与日志——简短、标注日期、没有杂音。随时可退订。

作品

线上发布、游戏作品与视觉档案。

  • 项目
  • 游戏
  • 档案
  • 日志

资源

每日好用的工具与个人收藏的链接库。

  • 搜索
  • 最新
  • 工具
  • 链接
  • 笔记
  • 主题
  • 商店
RSSJSON Feed

工作室

背景、联系方式以及合作渠道。

  • 关于
  • 联系
  • 更新日志
  • 技术说明
  • 简历筹备中

社交

在常去的平台上找到我。

  • GitHub
  • dev.to
  • 领英
  • 推特 / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat
  • 邮件
© 2026 ZhenXiao Mark Yumarkyu0615@gmail.com
  • 邮件
  • GitHub
  • dev.to
  • 领英
  • 推特 / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat
隐私条款由 Next.js 16 · React 19 · Tailwind 4 构建