# fasu.dev > Clippings from pyyupsk. Tools, writings, and work, cut and pasted by hand. Personal site of Pongsakorn Thipayanate (pyyupsk), a self-taught developer from Thailand. Every writing and project below is also served as plain markdown at the same URL with `.md` appended. ## Writings - [Using aipass-proxy with opencode](https://fasu.dev/writings/using-aipass-proxy-with-opencode.md): This guide covers how to run aipass-proxy locally and connect it to opencode as a custom provider, plus a few ideas for what to do with it. - [mise: The One Tool That Replaced Everything](https://fasu.dev/writings/mise-the-one-tool-that-replaced-everything.md): One Rust binary replaces many config files. mise is the version manager, environment loader, task runner, and secrets manager I now use. - [The LLM Wiki Pattern: A Second Brain That Compounds](https://fasu.dev/writings/the-llm-wiki-pattern-a-second-brain-that-compounds.md): RAG (retrieval-augmented generation) rediscovers knowledge every time. My wiki accumulates it instead. This is Andrej Karpathy's LLM Wiki Pattern, built with a Claude agent that maintains the whole wiki. - [Why I Built a New Vite Env Plugin](https://fasu.dev/writings/why-i-built-a-new-vite-env-plugin.md): This article covers four problems with plain Vite environment variables and the plugin I built to fix them. - [Stop Fighting localhost: Stable Dev URLs with Cloudflared](https://fasu.dev/writings/stop-fighting-localhost-stable-dev-urls-with-cloudflared.md): This guide covers stable HTTPS URLs for local development with Cloudflare Tunnel. It stops webhooks from breaking after every restart. - [Git from Zero to Pull Request: A Practical Guide](https://fasu.dev/writings/git-from-zero-to-pull-request-a-practical-guide.md): This guide covers practical Git knowledge from init to pull request. It skips jargon and cheat sheets, and covers only what you need on day one. - [2025's Security Crisis: Why Memory-Safe Languages Matter](https://fasu.dev/writings/2025s-security-crisis-why-memory-safe-languages-matter.md): In one year, researchers logged 48,185 CVEs, some exploited within hours, while Rust showed a 1000 times improvement in memory safety. These numbers changed how I think about security. - [My Pragmatic Approach to Building npm Packages in 2026](https://fasu.dev/writings/my-pragmatic-approach-to-building-npm-packages-in-2026.md): I use five tools, minimal config, and strict defaults. This is the npm package setup I actually maintain. - [From requirements.txt to pyproject.toml: Python Evolution](https://fasu.dev/writings/from-requirements-txt-to-pyproject-toml-python-evolution.md): This article covers how uv, Ruff, and pyproject.toml replaced my entire Python toolchain. Together, they made Python feel more like TypeScript. - [The Art of Clean Feature Architecture: What I Actually Build](https://fasu.dev/writings/the-art-of-clean-feature-architecture-what-i-actually-build.md): I organize code into feature-based folders, with minimal abstractions and obvious boundaries. This is the architecture I actually ship. - [A Node.js Developer's Journey into Python Territory](https://fasu.dev/writings/a-node-js-developers-journey-into-python-territory.md): This article covers Python's ecosystem from a Node.js developer's view. It looks at package management, virtual environments, and the tools that bridge the two. - [Tired of Vue Boilerplate? Here's My Clean, Fast Setup](https://fasu.dev/writings/tired-of-vue-boilerplate-heres-my-clean-fast-setup.md): This article covers my Vue starter, built after years of client projects. It sets up TypeScript, Vite, and file-based routing in minutes. - [The Real Vue.js Developer Journey: Wins, Woes & Lessons](https://fasu.dev/writings/the-real-vue-js-developer-journey-wins-woes-and-lessons.md): This article covers my move from React to Vue.js. It looks at the wins, the friction, and what both ecosystems taught me. ## Projects - [aipass-proxy](https://fasu.dev/projects/aipass-proxy.md): An OpenAI-compatible chat-completions proxy in front of AIPass, so tools like opencode can use it as a custom provider. - [GitHub Readme Activity Graph](https://fasu.dev/projects/github-readme-activity-graph.md): A Cloudflare Worker that generates a GitHub contribution activity graph as an SVG for your README. - [Outfit Splitter](https://fasu.dev/projects/outfit-splitter.md): A Unity editor tool that splits VRChat avatar outfits by mesh, while preserving PhysBone collider assignments. - [@pyyupsk/vite-fonts](https://fasu.dev/projects/vite-fonts.md): A Vite plugin that downloads and self-hosts web fonts at build time, with zero layout shift and no runtime CDN calls. - [Helium Linux Installer](https://fasu.dev/projects/helium-linux-installer.md): An unofficial Linux installer for the Helium browser, with AppImage, GPG-verified tarball, and .deb install methods. - [nit](https://fasu.dev/projects/nit.md): A lightweight, zero-dependency Git hooks manager for JavaScript and Node.js projects. - [@vite-env/core](https://fasu.dev/projects/vite-env.md): The env.ts layer for Vite. You define your variables once, validate them everywhere, and import them with types. - [yt-audio-cli](https://fasu.dev/projects/yt-audio-cli.md): A command-line tool for downloading audio from YouTube and other sites, built as a focused wrapper around yt-dlp and FFmpeg. - [Vite Plugin Sitemap](https://fasu.dev/projects/vite-plugin-sitemap.md): A TypeScript-first Vite plugin that generates XML sitemaps from file-based conventions, with zero runtime footprint. - [Pixelarticons CLI](https://fasu.dev/projects/pixelarticons.md): An archived CLI that generated React components from the Pixelarticons icon library, now superseded by native support upstream. - [Pixelify](https://fasu.dev/projects/pixelify.md): A web app that turns images into pixel art. It offers dithering algorithms, adjustable color depth, and a REST API. - [fdu](https://fasu.dev/projects/fdu.md): An ultra-fast, zero-dependency date-time library for JavaScript. It runs about 4 times faster than Day.js. - [imgbytesizer](https://fasu.dev/projects/imgbytesizer.md): A smart image resizer that hits an exact target file size, with optimized quality and format conversion. - [Fonts](https://fasu.dev/projects/fonts.md): A self-hosted, editorial alternative to Google Fonts, built with Cloudflare D1 and R2, a Hono API, and an Astro website. - [StoreHub](https://fasu.dev/projects/storehub.md): An unofficial TypeScript client for the StoreHub POS API, covering inventory, orders, and store management. - [JSON Viewer](https://fasu.dev/projects/json-viewer.md): A browser extension that shows JSON responses with syntax highlighting and collapsible trees. - [Windsurf Installer](https://fasu.dev/projects/windsurf-installer.md): An unofficial Bash script that installs, updates, and removes Windsurf IDE on Linux. It verifies downloads with SHA256 and adds desktop integration. - [Molly Factory](https://fasu.dev/projects/molly-factory.md): The official website for Molly Factory, the Thai art toy studio behind CRYBABY. This was a client project. - [Messenger Webhooks](https://fasu.dev/projects/messenger-webhooks.md): A Node.js library for building Facebook Messenger chatbots, with an event-driven webhook API. - [GeoThai](https://fasu.dev/projects/geothai.md): A zero-dependency geographic data ecosystem for Thailand, with packages for TypeScript, Python, and raw JSON data covering provinces, districts, subdistricts, and postal codes. ## Optional - [Work](https://fasu.dev/work/): positions and engagements - [Colophon](https://fasu.dev/colophon/): how the site is made - [License](https://fasu.dev/license/): CC BY-NC-SA 4.0 - [RSS](https://fasu.dev/rss.xml): writings feed - [Sitemap](https://fasu.dev/sitemap-index.xml)