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
If you want the failure-mode and testing path through the catalog, start here. Recommended route: Service Worker Failure Modes in Offline-First PWAs Rollback Patterns in Offline-First PWAs Testing IndexedDB Schema Migrations in Offline-First PWAs Offline Queue Replay and Idempotency in Offline-First PWAs If you want privacy-first, offline health tech to exist without surveillance funding it: spons
I run a few side projects. The paperwork reality of running side projects is filling in the same company name, address, phone number, and tax ID into web forms, over and over, on vendor portals, invoice tools, e-commerce seller dashboards, and government registration pages. My password manager handles login credentials. It doesn't handle business info particularly well. So I built FormFill Vault.
I built a React form library 2 years ago. It got almost zero usage. Recently, I revisited the idea and realized the problem wasn’t the code — it was the approach. Most form libraries are powerful, but they come with complexity: too much setup too much wiring too much abstraction So I rebuilt it from scratch with one goal: Make forms stupidly simple. Every time I build a form in React, I repeat the
Book: The Complete Guide to Go Programming Also by me: Thinking in Go (2-book series) — Complete Guide to Go Programming + Hexagonal Architecture in Go My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub You write a validation function. Five rules. Email format, password length, age range, country code, ter
Book: PHP to TypeScript — A Bridge for Modern PHP 8+ Developers Also by me: The TypeScript Library — the 5-book collection My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub A PHP developer opens a TypeScript codebase, finds three classes that all need a timestamps() behaviour, types trait, and gets a red