Personal portfolio site for kkdemian — Web3 Product Engineer, digital nomad, Bitcoin & ETH HODL.
Built with Next.js Static Export, TypeScript, Tailwind CSS, and Shadcn UI. Deployed on Cloudflare Pages, with dynamic APIs served by Cloudflare Workers.
The site supports /zh-CN, /en, and /ja. Existing URLs remain accessible. UI localization is separate from article translation; only published translations appear in article language links and SEO alternates.
See multilingual content workflow for authoring, language feeds, and validation commands.
-
Clone the repository:
git clone https://github.com/chuhemiao/portfolio cd portfolio -
Install dependencies:
pnpm install
-
Start the dev server:
pnpm dev
-
Build the static export:
pnpm build
The production output is generated in
out/. -
Preview the Cloudflare Pages output locally:
pnpm preview
-
Run the API Worker locally:
pnpm worker:dev
-
Edit personal data in
src/data/resume.tsx
Production architecture:
GitHub
↓
GitHub Actions
↓
Cloudflare Pages
↓
Cloudflare CDN
↓
User
Dynamic API architecture:
User
↓
Cloudflare Workers
↓
External APIs / Resend
Cloudflare Pages settings:
- Build command:
pnpm build - Output directory:
out - Node.js version:
24 - Pages Functions: not used
- Static assets: generated by
scripts/generate-static-assets.mjsbeforenext build
GitHub Actions deploys on every main push through .github/workflows/deploy-cloudflare.yml.
Required GitHub Secrets:
CLOUDFLARE_ACCOUNT_IDCLOUDFLARE_API_TOKEN
Worker secrets for newsletter subscription:
RESEND_API_KEYRESEND_AUDIENCE_ID
Configure them in Cloudflare Worker secrets or inject them through your own CI secret workflow. Do not commit token values.
Worker routes:
kkdemian.com/api/*www.kkdemian.com/api/*
The Worker currently serves:
POST /api/subscribeGET /api/btc-scoreGET /api/fear-dataGET /api/watch-data
DNS cutover:
- Add
kkdemian.comandwww.kkdemian.comas Cloudflare Pages custom domains. - Point the apex/
wwwrecords to Cloudflare Pages. - Keep Cloudflare proxy enabled.
- Route
/api/*to thekkdemian-portfolio-apiWorker. - Remove the old Cloudflare -> Vercel path after Pages and Worker routes both pass production checks.
| Route | Description |
|---|---|
/ |
Home — bio, work, projects, philosophy, hackathons |
/blog |
Blog posts organized by year/category |
/stack |
Tools and tech stack |
/fund |
Fund tracker |
/fear |
Crypto Fear & Greed index |
/research |
Deep-dive research map — 2811 local crypto project records |
Blog posts live under content/blog/ and can be organized in nested folders (e.g. content/blog/2026/research/).
Frontmatter:
---
title: 'Post title'
publishedAt: '2026-02-25'
summary: 'One line summary'
slug: 'my-post-slug'
category: 'research'
---- Routes are always
/blog/[slug]regardless of folder location. - Draft posts: place in a
drafts/or_drafts/folder, or setdraft: truein frontmatter.
Useful commands:
# Fast content helper; dry-run by default
pnpm quick:add -- "A deep research report about BTC and macro liquidity" --category research
# Create a new post immediately
pnpm quick:add -- "A deep research report about BTC and macro liquidity" --category research --write
# Lower-level post generator
pnpm new:post -- "A deep research report about BTC and macro liquidity" --category research
# Research Map sync and status
pnpm sync:research
pnpm sync:research --add
pnpm sync:research:registry -- --check "Project Symbol"
pnpm status:research:run
# Candidate and depth queues
pnpm seed:research:candidates
pnpm audit:research:depth -- --limit 100 --write
# Validate content before publishing
pnpm content:check
pnpm check:research:logosquick:add defaults to dry-run. Add --write to create the file. new:post supports --title, --category, --date, --slug, and --dry-run.
Current local status as of 2026-07-07:
- Registry: 2811 research projects.
- Candidate pool: 3815 total, 381 pending new candidates.
- Upgrade queue: 0 reports in the latest generated depth queue.
- Latest target-1000 CMC/CGO batch: 1000/1000 recent reports pass full-depth audit.
- Raw pending candidates may still include older targets already covered by registry; use the batch generator
--list-onlyoutput as the write queue. - Next upgrade reports: none in the latest generated depth queue.
- Known data-quality risk: the latest batch includes 1000 reports generated after Surf returned
PAID_BALANCE_ZEROand CoinGecko APIs returned429 Too Many Requests; DefiLlama protocol list was used as fallback candidate expansion. These pass structural depth audit but should be live-data refreshed before high-conviction investment use.
For crypto data refresh, use local data and native CoinGecko, CMC, exchange, DefiLlama, or official sources. Do not invoke Surf unless the user explicitly requests it.
Refresh the market dashboards before rebuilding the static site:
pnpm sync:oscillator
pnpm sync:watch
pnpm test:markets
pnpm buildOscillator stores its market snapshot in src/data/oscillator-manual-snapshot.ts. Historical anchors use available closed daily observations within the displayed windows; unavailable histories remain empty. Watch stores one atomic snapshot at public/data/watch-data.json, reused during builds and as the browser fallback when /api/watch-data is unavailable. The Watch sync also refreshes Day1Global BTC heat independently at public/data/btc-score.json for Oscillator's heat tab. Snapshot timestamps describe the data collection, and failed refreshes preserve the last usable file. Unknown Alpha dates remain unknown; Bitget's deprecated openTime is not used as a listing date, and Coinbase's public inventory coverage limit is disclosed. If the terminal needs a proxy, configure HTTP_PROXY, HTTPS_PROXY, and NODE_USE_ENV_PROXY=1 for Node 24 without changing repository settings.
For batch CMC/CGO research expansion, use scripts/generate-cmc-cgo-research-batch.mjs with --from-pending --target-count=<n> --list-only before writing. Surf child commands have a timeout and credit-error short-circuit so long-tail enrichment gaps are captured as article risk instead of hanging the run; the generator also supports registry filtering, non-Latin slug fallback, an opt-in CoinGecko API fallback, and DefiLlama-backed candidate expansion through pnpm seed:research:candidates.
Deep-dive investment research published at /research. Listed by project:
- Binance: Institutional-Grade Exchange Research Report
- Coinbase Investment-Grade Research Report (2026)
- Bybit: Liquidity Deep Dive — $22.9B Daily Trading Volume
- Bitget Deep Research Report: Comprehensive Investment Analysis
- Gate.io In-Depth Research Report: Cyclical Value Analysis
- MEXC In-Depth Research Report: Zero-Fee Strategy Analysis
- HashKey Exchange: Compliance-First Architecture for Regulated Markets
- XT.COM Deep Research: Capital Aggregation Infrastructure
- MSX Exchange Deep Research: RWA Tokenization Pioneer
- OSL Digital Financial Infrastructure Investment Research
- Hyperliquid Investment-Grade Research Report (2025/2026)
- AsterDEX Investment-Grade Research Report
- Reya Network In-Depth Investment Research Report
- StandX Protocol Deep Dive: Yield-Bearing Perpetuals DEX
- Pacifica Finance: Solana's Hybrid Perpetual Exchange Analysis
- Perpl.xyz In-Depth Research: Monad Order Book Perp Protocol
- Flyingtulip In-Depth Research Report 2026
- Uniswap Ecosystem Panoramic Research: AMM to Multi-Chain Infrastructure
- Jupiter Protocol: The Execution Layer Paradox
- Aave Deep Research: Leading Position in the Lending Market
- Maple Finance & SYRUP Token: Investment-Grade Research Report
- Morpho Deep Research: Modular Lending Protocol Analysis
- Superform Omnichain Yield Infrastructure: Deep Research
- Symphony AI-Native DeFi Execution Layer: Investment Analysis
- Sky Token Impact: Emission Cut and Buyback Program Analysis
- Cascade Neo: Cross-Asset Margin Unification Architecture
- TradeGenius: Privacy-First On-Chain Trading OS — YZi Labs Backed
- MetaDAO: Futarchy Mechanism and Market-Driven Governance Analysis
- RaveDAO: Digital-Physical Bridge for Electronic Music Culture & NFTs
- Definitive (EDGE): Non-Custodial Multi-Chain TWAP Trading Terminal
- Bitcoin: Global Neutral Monetary Network and Digital Reserve Asset Analysis
- Ethereum (ETH): Institutional Research Report
- Sui Institutional Research Report
- MegaETH Investment-Grade Research Report: Real-Time EVM
- Fogo: High-Performance SVM Layer-1 for Real-Time DeFi
- Espresso Shared Sequencing & Rollup Base Layer Research
- Canton Network: Comprehensive Investment Research Report
- Midnight Network: Compliance-Preserving Privacy Blockchain
- Plasma Deep-Dive: Stablecoin-Native L1 Analysis
- Integra Protocol: Purpose-Built L1 for Real Estate RWA
- Sentio: Web3 Data Infrastructure New Paradigm — On-Chain Analytics
- Aztec Network: Privacy-First zk-Rollup Architecture
- Succinct Labs: Decentralized ZK Proof Infrastructure
- Brevis (BREV) In-Depth Investment Research Report
- Zama: FHE Stack and the Next Phase of Blockchain Privacy
- Octra FHE: Hypergraph-Based FHE Architecture Assessment
- Cysic Network: Hardware-Accelerated Verifiable Compute
- zkPass: zkTLS as Trust-Minimized Bridge for Web2 Data
- Railgun: Privacy Infrastructure for Composable DeFi
- Inference Labs: Verifiable AI via zkML and On-Chain Proofs
- Prediction Market Sector: Polymarket & Kalshi Research (2025/2026)
- The Rise of Prediction Markets: PMF Analysis
- Opinion Labs: Investment Thesis for OPINION Macro Exchange
- Rain Protocol Deep Dive: AMM Prediction Market Infrastructure
- Kairos Deep Dive: Prediction Market Execution Infrastructure
- Predict.fun Deep Research: On-Chain Prediction Markets
- Probable: The Orderbook Oracle On-Chain Prediction Market
- Circle Global Stablecoin, Cross-Chain Settlement Research
- Global Stablecoin Sector: Investment-Grade Research Report
- RedotPay: Institutional-Grade PayFi Infrastructure Analysis
- USDG (Global Dollar): Institutional-Grade Analysis
- USD.AI: Hybrid RWA-Backed Stablecoin for GPU Credit Markets
- Unitas Protocol: Solana-Native Yield-Bearing Stablecoin
- KGST Stablecoin: Investment-Grade Research Report
- River: Chain-Abstraction Stablecoin Deep Dive
- Tria Chain-Abstraction Neobank & BestPath AVS Analysis
- Gensyn: Investment-Grade Research Report
- Sentient Protocol: Investment-Grade Analysis & Strategic Assessment
- DeAgentAI Deep Dive: Back on Binance Futures and Alpha
- Warden Protocol: Verifiable AI Infrastructure Layer
- Fabric Protocol In-Depth Research: AI Robotics Infrastructure
- Centrifuge (CFG) RWA Tokenization Infrastructure Report
- BlockStreet: VC-Grade Infrastructure for Tokenized Capital Markets
- Rainbow Wallet: Investment-Grade Research Report
- 2026 Crypto Market Structural Outlook Report
- 2026 Crypto Market Outlook: From Liquidity Flood to Value Settlement
- Ethereum (ETH): Institutional Research Report
- Bitcoin: Global Neutral Monetary Network Analysis
- Bitcoin 2030: $300K Digital Gold Valuation Analysis
- Bitcoin Crypto Derivatives Intelligence System Report
- Crypto Derivatives Intelligence System Report 2026-03-14
- 2026 Web3 & Crypto Investment Opportunities from X
- Crypto Tokens Outperforming Bitcoin in Q1-Q2 2025
- The Rise of the Synthetic Crypto Index
- Mobile-First Web3 dApp Era Report (2025)
MIT