On April 30, 2026. I posted an update after 3 years explaining what I was doing and what new thing I have been working on. And In that I mentioned how AI has made frontend development robotic. Same design, same colors, same animation. It's as if software has lost all the personality and character that it had. I originally fell in love with web development because it gave developers a power create
If you've ever searched your own product and seen a competitor recommended by an AI assistant instead, you already understand why AEO matters. Answer Engine Optimization (AEO) is the practice of making your site legible, trustworthy, and citable to AI systems like ChatGPT, Claude, Gemini, Perplexity, and Deepseek. It's not magic. It's mostly technical and structural decisions you can either get ri
The Problem: We Were Flying Blind At Refer, we're on a mission to enable talented individuals to fulfill their professional potential by helping them pursue their ideal job. Behind the scenes, that means a lot of microservices, and recently we decided to consolidate everything into a mono-repository. If you've ever migrated dozens of microservices into a monorepo, you know the drill: contracts b
The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.
The Problem If you are building AI applications with LLMs, you know the pain: raw HTML is useless for training data. You need clean, structured Markdown. Most solutions like Firecrawl or Crawl4AI require setup, dependencies, and often paid plans. You could write your own parser: import re import urllib.request def html_to_markdown(url): html = urllib.request.urlopen(url).read().decode()
I audited 14 Shopify themes last quarter for speed. 11 of them blamed apps. None had touched Liquid loop count, capture-in-loop allocations, or image output. After optimizing 100+ Shopify stores over 12 years: the code-level patterns in your theme files account for 40-60% of total render time. Apps matter. Images matter. The template layer is where the compounding problems live. Here are the 5 Liq
This technical post walks through the design and implementation of Secure Playground: a local web app that simulates prompt-injection attacks against large language models and demonstrates simple defenses. Provide a minimal, reproducible environment to test payloads and defensive strategies. Make it easy to add new providers and run mutation-based red-team experiments. Offer a leaderboard and scor
Japanese subscription services have a problem with terms and conditions. Not the length — that's universal. The specific issue is that Japanese cancellation terms, automatic renewal clauses, and price change notifications are buried in dense legal Japanese that's difficult to parse even for native speakers. The phrasing is designed to be compliant, not readable. I've been surprised by charges I di