Dev
Zod, OpenAPI, and Swagger for API Contracts
- Jiyu Yan
- Engineering
- 13 Jun, 2025
A public API is not just backend code. It is a product surface for another developer. That means the contract has to be readable. It also has to be enforced at runtime. Types in the app are useful, b
read morepg-boss for Durable Background Jobs
- Jiyu Yan
- Engineering
- 09 May, 2025
The customer problem was not "we need a queue". The problem was that a slow operation made the user wait with no clear answer. That distinction matters. A queue is an implementation detail. The produ
read morePrisma and PostgreSQL as the Product Source of Truth
- Jiyu Yan
- Engineering
- 04 Apr, 2025
I do not think of PostgreSQL as only infrastructure. In a product app, it is where the product remembers what happened. That makes database design a product decision. I
read moreReact Router for Full-Stack Product Workflows
- Jiyu Yan
- Engineering
- 28 Feb, 2025
A route is not only a URL. In a product app, a route often represents a task the user is trying to finish. That sounds obvious, but it changes how I design the code. A settings page that starts an im
read moreInput Chinese pinyin with tones on Linux with fcitx
- Jiyu Yan
- Tools
- 15 Aug, 2024
The goal is to type pinyin with tone marks directly from the Linux input method: nǐ hǎoThe schema I used is [rime-lumen-pinyin](https://github.com/williampan/rime-lumen-pinyin/tree/mast
read moreUse Pocket (read it later) on KOReader
- Jiyu Yan
- Tools
- 12 Jan, 2024
Pocket does not integrate with KOReader directly, but news2reader can expose Pocket articles as an OPDS catalog. Useful links:[MobileRea
read moreCategories
Tags
- Astro
- Documentation
- Writing
- Codex
- tmux
- SSH
- Tailscale
- Termius
- Localization
- Product engineering
- UX
- AI
- MCP
- Product safety
- API
- OpenAPI
- Zod
- PostgreSQL
- Background jobs
- UI
- Drag and drop
- Prisma
- Data modeling
- AI agents
- TypeScript
- Automation
- React router
- Full stack
- Design system
- Tables
- Linux
- Input methods
- Rime
- Trackball
- Xorg
- KOReader
- Self hosting
- Vercel AI SDK
- Architecture
- Dependency cruiser
- Testing
- Vitest
- Playwright