Front-end developer in Taipei 🇹🇼 — TypeScript, Vue & React, and 3D in the browser.
386,570 npm installs in the last year · 7 pull requests merged into projects with 145,334 stars between them · 484 commits maintaining a community docs site · 46 stars on my own repositories · on GitHub since 2019
- 🎨 Front-end developer who cares about design systems, accessibility, and code that reads well.
- 🛰️ Day to day I build web apps for a computer-vision / digital-twin platform — React, Next.js, Vue, Vite, and a fair amount of 3D rendering in the browser.
- 📦 I publish small, focused npm packages and use them in my own work.
- 💬 Issues and pull requests on any of my repositories are always welcome.
| Package | What it is | Installs / month |
|---|---|---|
react-json-formatter |
Formatting json data to JSX of React | 23,961 |
lorem-ipsum-tc |
Tool for creating Traditional Chinese lorem ipsum | 88 |
@channel-state/vue |
Vue composables for channel-state, providing seamless integration with Vue applications… | 61 |
react-form-maker |
make a react form faster by object | 61 |
condition-switch |
A powerful and flexible TypeScript utility for writing clean, declarative, and expressive… | 60 |
@channel-state/core |
Core-library for channel-state, providing framework-agnostic, zero-dependency state… | 55 |
@channel-state/react |
React hooks for channel-state, providing seamless integration with React applications for… | 50 |
@channel-state/svelte |
Svelte stores for channel-state, providing seamless integration with Svelte applications… | 45 |
ai-agent-press |
Transform AI agent instruction and skill files into searchable documentation portals | 38 |
twinlink |
A lightweight toolkit for creating direct 1-on-1 browser-to-browser connections using… | 19 |
| Project | What it does | Installs |
|---|---|---|
| channel-state ⭐ 14 · TypeScript · v0.1.0 |
A state-management provides robust, seamless state synchronization across all browser… | 55/mo |
| react-json-formatter ⭐ 9 · TypeScript · v0.4.0 |
Formatting json data to JSX of React | 23,961/mo |
| condition-switch ⭐ 5 · TypeScript · v0.1.2 |
A condition switch library for js/ts | 60/mo |
| react-form-maker ⭐ 2 · JavaScript · v0.4.0 |
NPM React tool to make a React form by object | 61/mo |
7 pull requests merged into repositories I do not own:
- TanStack/query ⭐ 50,268
docs(query-react): Update links in useQuery documentation merged Aug 17, 2026 - logicspark/awesome-vitepress-v1 ⭐ 197
feat(docs): addtravel-guide-tw.github.io/blog merged Apr 6, 2025 - cypress-io/cypress-documentation ⭐ 1,048
docs(selectFile): readFile & fixture should usenullinstead of{ encoding: null }merged Nov 17, 2023 - pixijs/pixijs ⭐ 48,120
fix(application): prevent reading property of null if the application is destroyed merged Jul 6, 2023 - react-hook-form/react-hook-form ⭐ 44,848
fix(path): keys ofDate | FileList | Fileshouldn't be add to thePathImplmerged Aug 8, 2022 - visgl/loaders.gl ⭐ 853
docs(pcd): fix pcd-loader examplePCDloaderspell merged Aug 1, 2022
Issues I opened in other people's projects that the maintainers labelled a bug and then fixed.
- francoismassart/eslint-plugin-tailwindcss — The
font-monois considered not a tailwind class with thefontFamilysetting without mono setting in tailwind.config.js. - vuepress-theme-hope/vuepress-theme-hope —
vuepress-plugin-comment2get '@internal/pagesData' imported error during build - francoismassart/eslint-plugin-tailwindcss — It takes a lot of time to execute, especially
tailwindcss/classnames-order - vuejs/eslint-plugin-vue — rule "vue/no-unused-properties" on <script setup> api component use prop from api defineProps in api computed
travel-guide-tw/travel-guide-tw.github.io — a community-written Chinese travel guide built with VitePress.
I have written 484 of the 535 human commits in it, across 124 merged pull requests, most recently on Aug 29, 2026, alongside 1 other contributor.
| Repository | What it does |
|---|---|
| ai-agent-press TypeScript · pushed Sep 5, 2026 |
Beautiful, automated AI Agent documentation portal generator. Organize rules, skills, and… |
| channel-state TypeScript · pushed Aug 26, 2026 |
A state-management provides robust, seamless state synchronization across all browser… |
| twinlink TypeScript · pushed Jul 11, 2026 |
A lightweight toolkit for creating direct 1-on-1 browser-to-browser connections using… |
| condition-switch TypeScript · pushed Jun 30, 2026 |
A condition switch library for js/ts |
🛠️ Tech stack — the tools my own repositories actually depend on
pie showData title Repositories by language
"TypeScript" : 32.4
"JavaScript" : 24.3
"HTML" : 16.2
"Vue" : 10.8
"Python" : 5.4
"PHP" : 5.4
📊 GitHub in numbers — profile cards and contribution activity
Taipei · README rebuilt from the GitHub API — last run Sep 6, 2026, 1:56 AM GMT+8





