← Back to home

Projects

Things I've built over the years. Some are doing great, a few quietly shut down, and every one of them taught me something.

Shiguang Ledger

A bookkeeping mini program for people who hate bookkeeping

86k
total users

Log an expense in one sentence: type “lunch 28 noodles” and it files itself under the right category. No budgets to feel guilty about, no red warnings, just a nicely designed summary at the end of each month.

  • ▸Natural-language parsing runs on the device, so it works offline
  • ▸The monthly summary can be exported as a shareable long image
  • ▸Cloud functions with scheduled triggers, so ops cost is close to zero
WeChat Mini Program2023TaroReactWeChat CloudTypeScript

tidemark

Turn Markdown into HTML you can paste straight into WeChat articles

3.4k
GitHub stars

Writers know the pain: you finish a post in Markdown, paste it into the WeChat editor, and every style disappears. tidemark inlines styles the way that editor expects, and ships with 12 swappable themes.

  • ▸Zero config: one command outputs paste-ready HTML
  • ▸Themes are plain CSS variables, so a custom one takes a dozen lines
  • ▸Code highlighting that survives WeChat's section restrictions
Open-source CLI2022Node.jsunifiedPostCSSVitest

Beacon Status

Status pages and uptime monitoring that small teams can afford

312
paying teams

Set up your own status page in three minutes. Beacon checks your endpoints every minute, alerts you first by chat and email, then flips the public page to red. Pricing is per monitor, not per seat.

  • ▸Probes run on Cloudflare Workers, checking from several regions at once
  • ▸Incident post-mortem templates you can publish in one click
  • ▸Two ways to pay: Stripe subscriptions and annual Alipay billing
SaaS2024Next.jsHonoPostgreSQLCloudflare Workers

Zhaixing

Highlight to save, synced to Obsidian

21k
weekly users

Select a passage on any page, hit a shortcut, and it lands in your Obsidian vault with the source link and date attached. You can set a different folder and template for each site.

  • ▸Manifest V3, shipped to Chrome and Edge from one codebase
  • ▸Local-first: no page content ever leaves your machine
  • ▸Template syntax compatible with Obsidian Templater
Browser extension2023WXTVue 3TypeScriptObsidian API

Yehang

A lightweight self-hosted RSS reader in a single file

1.6k
GitHub stars

One Go binary and one SQLite file are all it takes to run. Keyboard-first, with full-text fetching and read-it-later, and it sits under 40MB of memory.

  • ▸Single binary release; the Docker image is under 15MB
  • ▸Full-text extraction with per-site custom selectors
  • ▸Reading progress syncs across devices without an account system
Open source2022GoSQLiteHTMXDocker

Weekly Writer

A weekly report that grows out of GitHub and Linear

1,900+
reports a week

Every Friday afternoon it turns your merged PRs, closed tickets and reviews into a readable weekly update. Tweak a sentence or two and send it to your boss. The team plan rolls everyone up into a single page.

  • ▸Read-only access, it never touches your source code
  • ▸Generated in three parts: what I did, impact, next week
  • ▸Scheduled delivery through Feishu and WeCom bots
Web app2025Next.jstRPCPostgreSQLVercel AI SDK

Experience

  1. 2022 — Present

    Independent developer· Hangzhou

    Building products solo, maintaining open source, and taking on a little contract and consulting work.

  2. 2019 — 2022

    Senior frontend engineer· An e-commerce platform company in Hangzhou

    Owned the frontend architecture of the merchant console and cut build time from 11 minutes to 90 seconds.

  3. 2016 — 2019

    Backend engineer· A SaaS startup in Hangzhou

    Built the order and billing system from scratch. It handled 4 million orders in its first year.

  4. 2012 — 2016

    B.Eng. in Computer Science· A university in Zhejiang

    Wrote a mini program before mini programs existed: an SMS reminder for my class schedule, from a dorm room.