Dev
MCP as a Safe AI Integration Boundary
- Jiyu Yan
- Engineering
- 09 Jan, 2026
MCP is interesting because it makes AI integrations feel less like prompt magic and more like software boundaries. That is the part I care about. A model should no
read moreshadcn-Style UI as an Owned Product System
- Jiyu Yan
- Engineering
- 05 Dec, 2025
I like copied UI primitives because they make the component library feel like part of the app, not something the app is borrowing. That is the part of the shadcn/ui-style ap
read moreAstro for Documentation and a Professional Site
- Jiyu Yan
- Engineering
- 31 Oct, 2025
I use Astro because this site is mostly writing. I do not need a heavy app framework for pages that should load fast and be easy to edit. That sounds simple, but it is the mai
read moreDense Operational UI with Tables and Editors
- Jiyu Yan
- Engineering
- 26 Sep, 2025
Sometimes a simple form is the wrong UI. If the user needs to compare many values and make careful edits, a table can be kinder than a long page of inputs. Dense UI has a bad reputation when it is us
read moreVercel AI SDK with Explicit Tool Boundaries
- Jiyu Yan
- Engineering
- 22 Aug, 2025
The risky part of an AI feature is not the chat UI. The risky part is what the chat is allowed to do. It is easy to make an assistant feel powerful by giving it tools. With something like the [Vercel
read moreTesting Product Workflows with Vitest and Playwright
- Jiyu Yan
- Engineering
- 18 Jul, 2025
I do not want a test suite that only proves functions work. I want it to protect the workflows that would hurt if they broke. That does not mean every rule needs a browser test. Browser tests are val
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