§3
Open source
Tools, templates and experiments I've built and open-sourced.
Table 2. The repos, newest first, with GitHub stars, commits and the day of the last one.
| Repo | Stars | Commits | Last commit |
|---|---|---|---|
| perxel/perxel-social-kit | 0 | 12 | 12 Oct 2026 |
| clyrics | 0 | 116 | 4 May 2026 |
| claude-usage-monitor | 5 | 64 | 25 Jun 2026 |
| react-hanzi-input | 0 | 8 | 28 Apr 2026 |
| claudify | 0 | 8 | 20 Apr 2026 |
| hieu-chu-han | 2 | 172 | 2 Aug 2026 |
| food-tour-sg | 0 | 24 | 20 Apr 2026 |
| normalized-mouse-position | 1 | 27 | 4 Oct 2025 |
| magnetic-button | 3 | 66 | 8 Nov 2025 |
| nextra-blog-starter | 7 | 54 | 7 Dec 2025 |
| nextra-docs-starter | 50 | 58 | 5 May 2026 |
| viivue/overlapping-slider | 0 | 52 | 2 Nov 2022 |
| viivue/easy-tab-accordion | 0 | 197 | 22 May 2025 |
| viivue/easy-popup | 2 | 217 | 20 May 2025 |
| perxel/whack-a-mole | 0 | 129 | 20 Nov 2023 |
| viivue/easy-select | 1 | 210 | 3 Jun 2025 |
| cursor-effects | 7 | 33 | 26 Jun 2025 |
| jquery-scroll-direction-plugin | 7 | 38 | 26 Jun 2025 |
| lipsum-generator | 10 | 101 | 25 Feb 2026 |
Table 3. Every package I publish on npm, by downloads in the last 30 days. jsDelivr is the CDN, which serves the same packages to browsers.
| Package | 30 days | All time | jsDelivr |
|---|---|---|---|
| @perxel/social-kit | 609 | 609 | 25 |
| @phucbm/os-util | 524 | 3,031 | 35 |
| @phucbm/gfm | 468 | 1,034 | 16 |
| @perxel/spotlight | 439 | 439 | 0 |
| cuajs | 411 | 1,847 | 25 |
| @phucbm/cursorjs | 304 | 2,641 | 350 |
| scroll-snooper | 226 | 753 | 20 |
| @phucbm/magnetic-button | 158 | 2,406 | 22 |
| flickity-responsive | 153 | 7,923 | 53 |
| match-media-screen | 139 | 7,121 | 17 |
| @phucbm/scroll-direction | 78 | 78 | 0 |
| @phucbm/lerp | 75 | 1,449 | 3 |
| @phucbm/banner | 49 | 1,038 | 64 |
| @phucbm/data-toggle | 45 | 742 | 2 |
| gen-from | 40 | 1,065 | 9 |
| piajs | 38 | 1,620 | 27 |
| normalized-mouse-position | 30 | 865 | 8 |
| honcau | 30 | 953 | 11 |
| @phucbm/ripple-effect | 26 | 332 | 0 |
| @phucbm/next-og-image | 19 | 679 | 3 |
| @phucbm/tailwindcss-style-props | 19 | 3,112 | 60 |
| @phucbm/tailwindcss-components | 19 | 3,511 | 54 |
| responsive-gsap | 18 | 1,081 | 4 |
| bg-prlx | 14 | 592 | 0 |
| @phucbm/tailwindcss-container-queries | 12 | 3,435 | 6 |
| phucbm | 12 | 348 | 8 |
| claskit | 11 | 704 | 0 |
| @phucbm/get-options-from-html-attr | 11 | 261 | 6 |
| @phucbm/events-manager | 9 | 465 | 0 |
| react-hanzi-input | 6 | 220 | 6 |