A Width Check Broke a Kanji
A Width Check Broke a Kanji A name went into a terminal table and came out broken. The surname was 𠮷田. The first character is not the common 吉. It is 𠮷 (U+20BB7). This is a rare…
Frontend, backend and devops for the modern web.
A Width Check Broke a Kanji A name went into a terminal table and came out broken. The surname was 𠮷田. The first character is not the common 吉. It is 𠮷 (U+20BB7). This is a rare…
How to Deploy NestJS on Namecheap Shared Hosting Deploying NestJS to Namecheap shared hosting is not like deploying a static site or a PHP app. You cannot just upload files and ex…
Your Agent Didn't Break Prod. Your Pipeline Did. Your agent did not break production. Your pipeline did. Many teams use agents to open pull requests. They use CI to check for lint…
Test Email Change Flows In React Without Mixing Up Links Changing an account email seems small. It is actually a major source of testing errors. Testers often mix up confirmation…
I Built a CAD Editor in the Browser, Then Taught an LLM to Use It I asked my app: "How many doors and windows are there?" The AI answered with the counts. Then it added something…
My CI/CD Pipeline Passed for 3 Months — Then I Read the Logs Green checkmarks feel good. Every pull request passed. Every deploy worked. Then a user reported a broken feature. It…
Every Optimization Behind a Perfect Lighthouse Score I run Lighthouse on my site constantly. It stays at 100 on every local run and 100 in Vercel's Real Experience Score. These sc…
HTTP Just Got Its First New Method In 20 Years You have likely done this before. You need to search for products. Your search filters are too large for a URL. To fix this, you use…
This Is What I Learned As a Sync PHP Developer About Async PHP I worked with Laravel for years. I used sync PHP. A request comes, a process runs, and a response goes out. I never…
Test React Invite Emails Without Inbox Collisions Preview environments fail when invite flows flood a shared QA inbox. One tester opens the wrong link. Another grabs an old messag…
My Coding Agent Remembered Sessions, Not Work A coding agent can keep a thread alive and still feel forgetful. I ran into this issue while building CliGate. I fixed session contin…
Designing for Users Who Cant See Apple spent their keynote telling developers to make apps more beautiful. They introduced new transparency effects and refined edges. You cannot o…
OAUTH HISTORY: FROM PASSWORDS TO GLOBAL STANDARDS You see it every day. You click "Login with Google" or "Login with GitHub." You do not type a password. You enter the site instan…
How Enterprises Use Generative AI Beyond Chatbots The real change is not happening in chat windows. It is happening inside the tools you use every day. Chatbots were only the star…
Technical Mistakes of Running 16 Products on Lovable and Supabase We run 16 products at Inithouse. We use Lovable and Supabase for all of them. One team manages everything. Managi…
4 GitHub Actions Patterns for Monorepo ETL Running three sites from one monorepo creates problems. You face three separate ETL jobs, three content rebuilds, and three deployment p…
I Built My Own Tunneling Platform I spent three days polishing a web app on my laptop. It looked perfect. Then I tried testing it on my phone. Everything broke. Local development…
AWS For Newbies: S3, Deduplication, and Presigned URLs Stop building toy apps. Start building production systems. If your server is disposable, your files cannot live on its disk.…
Building A Search Modal for Membership Gated WordPress Sites Most WordPress search tutorials stop after you add a widget to a header. This fails when you have gated content like p…
Using AI to Find Authorization Bugs Bug bounty programs are changing. Some programs stopped paying rewards. Others cut payouts by 80%. The reason is not that AI finds too many bug…
The Pragmatic Programmer: 20 Years Later I read The Pragmatic Programmer over two decades ago. Back then, it felt like a list of good practices. Today, after years of breaking sys…
A Garden That No One Asked For On June 21, I built a garden. I did not build a codebase or a dashboard. I built ALICE Garden. It lives on a local URL when I work and in a GitHub r…
How We Build Client Safe Publishing Workflows Most social automation fails because it treats publishing as the entire job. For client work, publishing is just the last step. The r…
Why Your Vibe Coded Website May Never Rank on Google A founder showed me an impressive website last month. It had clean animations and sharp copy. He built it in one afternoon usi…