EventEmitter Initial Version
A guide on properly loading and configuring node_modules resources in VSCode WebView extensions, including setup and …
A comprehensive guide on implementing internationalization in VSCode extensions, covering both menu and extension …
Recently came across a frontend question: “Is the Host field necessary when sending HTTP request headers?” I hadn’t …
Medium’s MPP and GitHub Sponsors both use Stripe for payouts and payments. Here are a few Stripe notes and fixes I’ve …

Screen Studio is a powerful screen recording tool exclusively for macOS. It helps users easily record on-screen …
Recently while looking at dependency package upgrades for an old project, I noticed that node-sass has been …
Recently, a friend in our group chat encountered an error while filling out a waitlist form on manus and thought it was …
A comprehensive guide on integrating and using Firecrawl MCP within Cursor IDE, covering its features, configuration, …
I’ve always used CNCB’s app to book mortgage prepayments. The rule there is: no pending prepayment and a 30‑day advance …
Today a friend asked me what the gray bar chart in Apple’s Screen Time statistics means. I actually wasn’t too sure …
I frequently use the GitLink plugin in JetBrains IDEs to copy Git web URLs for files with one click, which …
A quick look at the APNG format and how it compares to WebP for animated images.
Cursor is an AI-powered code editor. This guide covers subscription options, settings synchronization, tool calling, …
I recently picked up a Mac mini M4. After using it for a few weeks, I’m really happy with it, so I’m jotting down my …
Recently, I had a requirement to monitor the ranking situation of a certain entry in a competition. Unfortunately, the …
How to display a Search action on the software keyboard across iOS and Android and handle the resulting events.
Common Plugins
I’ve been looking into frontend animation jank, which is related to refresh rate. I looked up some basics about refresh …
I previously built a webpack loader called domain-replace-loader to replace domains in frontend JS, e.g., swapping to a …
In 2024, I resolved the issue with using Stripe for payments on Medium, so I subscribed to Medium membership at the …
When developing with npm, you may notice that if you delete the node_modules folder and then reinstall dependencies, …
Since DeepSeek exploded in popularity around Lunar New Year, the web UI and APIs have been unreliable. Here are a few …
A guide to using OpenResty for web server configuration, focusing on GZIP settings and basic operations.
Use the official Vite legacy plugin to target older browsers without managing Browserslist/Core-JS manually.