Projects
A collection of tools, apps, and experiments I've built — most are open source, privacy-first, and run entirely in the browser.
A streamlined project and issue tracker: list and board layouts over one manual order, subtasks, markdown task threads with mentions, a realtime inbox with direct messages, and AI agents confined to the projects they are put to work in. One Hono API with an OpenAPI contract runs on Bun, as a single binary, in Docker, or on Cloudflare Workers with D1.
Beautiful, sophisticated UI components designed for modern React and Tailwind CSS applications. A collection of pre-built, refined components to streamline web app development.

Server-authoritative device fingerprinting for anti-fraud: the browser SDK (@cdlab/fingerprintd) only gathers evidence, the server burns a one-time nonce, scores it with blocking-key recall + Fellegi–Sunter matching and cross-checks the UA against JA4/IP it observed itself, then your backend fetches the result by request_id. One Rust engine (fingerprintd on crates.io), compiled to WASM, runs as a native Axum server and a Cloudflare Worker on libSQL or D1.
A browser-only infinite canvas for previsualisation: media, text and generation nodes linked by rule-checked connections, with cropping, audio trimming and frame capture done in the node itself. Any node can open a real-time WebGL director stage — pose characters joint-by-joint, direct cameras with cinematography presets, and send captured shots back to the canvas as linked nodes. Nothing leaves the browser: the document and its assets live in IndexedDB.

A uni-app + Vue 3 + UnoCSS personal hub that mirrors wcd.pages.dev and layers on self-contained tools: a blog mirror (posts / projects / media), Flox aggregated video search (SSE multi-source), an RTMP viewer/pusher, and a habit-log calendar. Hand-rolled UI with a green "ledger / terminal" theme, no third-party component library.

A privacy-respecting URL shortener with edge-based redirect logic (KV cache + D1 fallback), geo/device routing, password protection via Argon2id, and cookieless analytics powered by Cloudflare Analytics Engine. AI slug generation, social login, and a full dashboard with export/import/backup.
One-click background removal, batch compression (AVIF / WebP / JXL and more), and video compression with up to 90% size reduction. Everything runs locally in your browser — no uploads, no servers.

Encrypt and decrypt files and text locally with XChaCha20-Poly1305 — password or public-key mode, all in a Web Worker. Optionally share the finished ciphertext via a retrieval code (no key in the link); the server never sees plaintext. Decoupled into a Next.js web app and a Cloudflare Workers API.

A fully client-side, open-source video editor — a privacy-first alternative to CapCut. All editing happens locally in your browser with zero server uploads.

Multi-source parallel video search with real-time streaming results (SSE) and 38+ built-in sources. Built-in HLS/M3U8 playback with ad filtering and Service Worker caching.

A versatile online video player with HLS adaptive bitrate support, configurable buffering, and seamless integration with vidl for one-click video download.

A browser-based video downloader that auto-detects URL format and handles M3U8/HLS, MP4, WebM, MKV, FLV, and more, with near-zero memory stream download via the Streams API.

Convert text to natural-sounding speech via Microsoft Azure Cognitive Services. Supports SSML synthesis, streaming audio output, and fine-grained voice controls.

A Cloudinary-backed photography gallery with a responsive masonry layout and a full-screen lightbox. Deep-linkable photos and last-viewed scroll restore make browsing feel native.

Generate images from text prompts using multiple AI models including FLUX, SDXL, and DreamShaper. Supports random prompts and rich parameter controls with real-time preview.

Compare cryptocurrencies, fiat currencies, and commodities side by side on a unified scale. Enter any asset or amount and instantly see what it is equivalent to.

Embed a single script tag to display real-time online user count and total visits on any webpage. Backed by the WebSocket Hibernation API and Durable Objects SQLite.
Track releases and changelogs from multiple GitHub repositories in a single dashboard. Search by repository, user, or organization and sort by stars or update time.

A database-backed web console for managing and sending WeChat template messages — recipient management, template editing, scheduling, and permanent push logging.

High-performance Argon2id password hashing powered by a WebAssembly module compiled from Rust, runnable in browsers and on Cloudflare Workers.
An ahead-of-time compiler that turns JavaScript/TypeScript directly into WebAssembly, running on Wasmtime with no JIT or interpreter. NaN-boxed values, a bump-allocated linear-memory heap, and closures with capture-by-reference, with support for generators, async/await, try/catch, and classes.
One image library, three runtimes: decode/encode PNG, JPEG, WebP, JPEG XL, AVIF, and Radiance HDR; resize, crop, rotate, and flip; QR code generation/detection; and visible/blind watermarking. Each capability ships as its own lazy-loaded WASM artifact, with an optional native N-API addon for faster Node.js processing.
Telegram group baccarat on one Cloudflare Worker — Durable Objects hold the live round (state machine, alarms, WebSocket fanout), D1 holds an append-only integer ledger, and one pre-rendered Nuxt build serves the landing site, the Mini App table and the operations console. Source is private; the repo is the public design write-up.

A low-code engine demo built on top of Vue 3 — drag-and-drop component composition and visual page editing.


















