Open navigation

Writing

Practical engineering notes.

Notes on product engineering, AI service flows, payment integrations, maintainable APIs, and internal tools.

AI-Generated Design: How to Tell (and How to Fix It) article cover

October 2026 · 8 min read

AI-Generated Design: How to Tell (and How to Fix It)

Spotting an AI-built interface takes seconds: the same gradients, fonts, cards, and copy everywhere. Where the tells come from, and the techniques that break the pattern.

AI designUI designVibe codingGenerative AIFrontend
Editorial cover for cheaper tokens not cheaper bill

September 2026 · 9 min read

Cheaper Tokens Are Not a Cheaper Bill

Sticker AI pricing collapsed in late 2026, but dynamic spreads, peak billing, and cache state mean you can still overpay. Here is how to audit your real LLM cost per task.

AI API pricing 2026DeepSeek V4.1 Flash pricingClaude Sonnet 5 pricingLLM cost per taskcache hit vs cache miss pricingoff-peak LLM billing
Editorial cover for stepfun 5 preview benchmark analysis

September 2026 · 5 min read

StepFun 5 Preview: A Big Step From Step 3.7 Flash

StepFun 5 Preview marks a major shift from the 3.7 Flash tier. My benchmark data shows an 82 accessibility average and restored floors.

StepFun 5 PreviewOpenVibeEvalLLM BenchmarkFrontend Engineering
Editorial cover for jev is a referee not a writer

September 2026 · 5 min read

Jev Is a Referee, Not a Writer: Where Typed AI Judgment Fits

Jev offers a System One approach to AI: typed decisions for software backends instead of chat. Learn how to route, score, and gate with confidence.

AIArchitectureSystemOneBackend
Editorial cover for deepseek v4 1 flash flagship retirement

September 2026 · 6 min read

DeepSeek V4.1 Flash: The Flagship Killing MoE

DeepSeek retired V4-Pro for a cheaper, faster open weights model. Learn how the V4.1-Flash architecture changes agent economics and your production configuration.

DeepSeekLLMEngineeringOpenWeightsInfrastructure
Editorial cover for gemini 3 7 flash vs 3 8 flash comparison

September 2026 · 5 min read

Gemini 3.7 Flash vs 3.8 Flash: I Compared Them on Identical Prompts

Google released two Flash models 20 days apart at identical pricing. On identical frontend prompts, average accessibility jumped from 37.9 to 70.7.

Gemini 3.7 Flash vs 3.8 FlashGemini 3.8 Flash comparisonGemini 3.7 Flash benchmarkGemini Flash models comparedOpenVibeEval Gemini comparisonGemini 3.8 Flash accessibility
Editorial cover for claude fable 5 1 frontend benchmark cache pricing

September 2026 · 7 min read

Claude Fable 5.1: First Benchmarks After the Cache Price Cut

Anthropic released Claude Fable 5.1 with identical $10 and $50 base rates alongside a 75 percent cache read price cut. Here is the first OpenVibeEval data.

ClaudeAnthropicOpenVibeEvalFrontend GenerationLLM BenchmarksContext Caching
Editorial cover for gemini 3 8 flash coding benchmark frontend results

September 2026 · 6 min read

Gemini 3.8 Flash Benchmarked: A 98 Ceiling and a 23 Floor

I evaluated Gemini 3.8 Flash on frontend prompts via antigravity-cli. It scores a 70.7 accessibility average, recovering from 3.7 while showing extreme variance.

Gemini 3.8 FlashOpenVibeEvalFrontend BenchmarksWeb DevelopmentAI Evaluation
Editorial cover for hy4 preview benchmarked 770b moe comparison

August 2026 · 7 min read

HY4 Preview Benchmarked: How the 770B MoE Compares

Tencent released HY4 preview as a 770B / 49B active MoE with 1M context, open-weights. I ran it through OpenVibeEval the same day. The model is bigger and reviewers like the intelligence story, but my accessibility numbers regressed. Here is the data.

Tencent HY4 previewHY4 preview benchmarkOpenVibeEvalAI frontend generationMoE models
Editorial cover for glm 5 3 flash frontend benchmark

August 2026 · 8 min read

GLM 5.3 Flash: I Ran Zhipu's New MoE on Frontend Prompts

I ran GLM 5.3 Flash through OpenVibeEval the day it dropped. The 7 of 8 results put it in the GLM 5.2 band, not the GLM 5.3 ceiling, and the 0x Alpha kinship theory still holds up.

GLM 5.3 Flash benchmarkZhipu GLM 5.3 Flash reviewGLM 5.3 Flash frontend320B-A18B MoE modelGLM 5.3 Flash vs 0x AlphaOpenVibeEval GLM 5.3 Flash
Decision sequence for Laravel caching: profile the query, ask if the model is wrong, ask if the read is frequent, then cache or skip.

August 2026 · 7 min read

How I Decide What to Cache and What to Leave Alone

Every cache is a second source of truth. How I decide whether a slow Laravel query needs Redis, a schema change, or nothing at all.

LaravelRedisDatabasePerformanceBackend
Four fixes for an AI-built MVP under real traffic: rate limiter plus queue, stateful polling, transactions with idempotency, explicit entitlement.

August 2026 · 8 min read

What Breaks When an AI-Built MVP Meets Real Users

Launch traffic is where generated code gets honest. The failure modes I hit on an AI product backend, and what each one actually needed.

LaravelAIBackendProduction ReadinessSystem Architecture
Editorial cover for handling failed payments without losing customers

August 2026 · 7 min read

How I Handle Failed Payments Without Losing Customers

A failed payment is a product state, not an error. How I build the recovery ladder that protects revenue without punishing customers for a declined card.

StripeSaaSbillingbackend
Diagram of metered AI billing flow: AI request, eligibility check, job queue, provider, and usage ledger.

August 2026 · 7 min read

Adding Usage-Based Billing to AI Features

Usage-based billing for AI features is a database problem before it is a payments problem. How I keep metering idempotent, protect margin, and leave pricing changeable.

AIStripeLaravelBillingEngineering
Editorial cover for openvibeeval blind arena launch

August 2026 · 5 min read

OpenVibeEval: An Open Frontend Benchmark Where You Vote Blind on AI Models

OpenVibeEval is now live, featuring a blind-vote Arena, 233 versioned frontend results across 26 models, and harness-specific metrics to strip away marketing bias.

aifrontendbenchmarkllmweb-development
Editorial cover for 0x alpha vs glm 5 3 comparison

August 2026 · 5 min read

Is 0x Alpha Just GLM 5.3? I Compared Them on Identical Prompts

Community speculation points to 0x Alpha being a repackaged GLM 5.3. I ran both through my frontend benchmark to verify if the kinship holds up.

aibenchmarkingglm0x-alphallm
Editorial cover for 0x alpha benchmark results

August 2026 · 5 min read

0x Alpha: I Benchmarked the Stealth Model Beating Every Leaderboard

A mystery model dominates social media leaderboards. I ran it through my public frontend benchmark to see if it actually works for developers.

aibenchmarkingfrontendopenvibeevalcoding
Editorial cover for gemini 3 7 flash coding benchmark frontend results

August 2026 · 5 min read

Gemini 3.7 Flash Is Coding-Optimized: My Frontend Benchmark Says Check the Prompt Type

Gemini 3.7 Flash claims optimization for coding, but my frontend benchmarks show a stark, bimodal performance split that demands caution.

Gemini 3.7 FlashAI BenchmarkingFrontend DevelopmentCoding Agents
Editorial cover for meta muse code spark 1 2 benchmark

August 2026 · 6 min read

Meta Launched Muse Code: I Benchmarked Muse Spark 1.2 on Frontend Work

Meta has entered the coding agent race with Muse Code, powered by Muse Spark 1.2. I tested the model on my public frontend benchmark, and the results are startlingly bimodal.

metaai-codingbenchmarkingfrontenddevelopment
Editorial cover for google wallet passes api implementation

August 2026 · 8 min read

Creating Google Wallet Passes: JWT Flows and Backend Integration

A technical guide for backend developers on implementing Google Wallet passes, from issuer account setup to the final signed Save to Wallet JWT.

google-walletbackendapijwtdigital-wallet
Editorial cover for when an ai blog pipeline is smarter than a prompt

August 2026 · 5 min read

When an AI Blog Pipeline Is Smarter Than a Prompt: Building a Grounded Generation System

I stopped treating LLMs like open-ended chatbots and built a deterministic pipeline. Here is how structured stages, deduplication, and human gates produce reliable technical content.

AIengineeringcloudflaresanitydevops
Editorial cover for git tree as database benchmark architecture

August 2026 · 2 min read

A Git Tree Is Enough: Running a Public Benchmark Without a Database

Ditch the server-side database. Use a structured folder tree in Git as your source of truth and build a manifest for a static SPA.

architecturestatic-sitesdeveloper-experience
Editorial cover for escaping ai harness lock in

August 2026 · 9 min read

Escaping AI Harness Lock-In: One Prompt, Many Harnesses

Do not let your coding agent define your workflow. Learn how to export your AI logic into portable configuration files that function across any tool.

aiagentic-codingworkflow
Editorial cover for comparing ai frontend models

July 2026 · 2 min read

Leaderboards Do Not Render: Comparing AI Models for Frontend Work Fairly

Ignore aggregate leaderboard scores. For frontend generation, fair comparison requires identical prompts, manual rendering, and total transparency about your harness.

aibenchmarksmethodology
I Built an Open Benchmark for AI Frontend Generation article image

July 2026 · 9 min read

I Built an Open Benchmark for AI Frontend Generation

I replaced marketing-driven AI leaderboards with a verifiable, rendered benchmark that forces models to ship functional frontend code.

aibenchmarksfrontendstatic-sites
Editorial cover for ai coding harness matters more than model

July 2026 · 5 min read

Same Model, Different Results: Why Your AI Coding Harness Matters

Model benchmarks are misleading. If you want better frontend output, stop worrying about the model and start auditing the harness that wires it to your files.

aiagentic-codingbenchmarks
Editorial cover for laravel queue reliability failed jobs retries horizon

July 2026 · 7 min read

Laravel Queue Reliability: Failed Jobs, Retries, and Horizon in Production

Build a production-ready Laravel queue setup with explicit backoff strategies, database-level idempotency, Horizon supervisors, and reconciliation loops.

laravelqueueshorizonredisarchitecturebackend
Editorial cover for handling laravel openai rate limits

July 2026 · 6 min read

Handling LLM Rate Limits in Laravel Without Breaking Your Queue

Synchronous LLM calls in controllers lead to 504 errors and broken UX. Learn how to offload, throttle, and back off intelligently.

laravelopenaiqueuesapi-design
Editorial cover for testing stripe webhooks locally laravel

July 2026 · 5 min read

Testing Stripe Webhooks Locally in Laravel

Do not guess how your payment webhooks handle events. Use the Stripe CLI to replay real events against your local Laravel app safely to ensure idempotency and security.

laravelstripewebhooksbackend
Editorial cover for laravel auth decision framework 2026

July 2026 · 5 min read

Laravel Auth in 2026: Sanctum vs Passport vs Plain JWT

Choosing an API authentication strategy in Laravel isn't about features. It is a complexity budget decision based on who actually consumes your backend.

laravelauthenticationapisanctumpassportarchitecture
Editorial cover for automating astro rebuilds via sanity webhooks

July 2026 · 1 min read

Automating Astro Rebuilds via Sanity Webhooks

Link your Sanity CMS content changes directly to Cloudflare Pages deploy hooks to automate your Astro site rebuilds without manual git pushes.

AstroSanityCloudflareAutomation
Editorial cover for shadow it symptom bad internal tools

July 2026 · 7 min read

Shadow IT Is Just a Symptom of Bad Internal Tools

When your operations team relies on fragile spreadsheets, you are failing to provide usable workflow tools. Here is how to fix the root cause.

internal toolsoperationsengineering leadershipworkflow
Editorial cover for durable execution cloudflare workflows ai

June 2026 · 7 min read

Durable Execution: Why I Used Cloudflare Workflows for AI Automation

Standard serverless functions crash on long AI pipelines. Here is how I used Cloudflare Workflows to handle slow APIs, self-critique loops, and stateful retries.

cloudflare workflowsdurable executionserverlessai automation
Editorial cover for from paper to structured data lightweight ocr profile builder

June 2026 · 7 min read

From Paper to Structured Data: Building a Lightweight OCR Profile Builder

A deep dive into chaining Vision APIs with structured LLM schemas to convert messy, physical cards and flyers into reliable database records during onboarding.

OCRLLMDocument IngestionVision APIJSON Schema
Editorial cover for webhook idempotency database defenses

June 2026 · 7 min read

Webhook Idempotency: Defending Your Database from Duplicate API Events

External platforms like Stripe and Clerk will inevitably send duplicate webhooks. Learn how to stop these events from corrupting your database.

webhookspostgresqlbackendpaymentsidempotency
Editorial cover for headless cookie consent with cloudflare zaraz

June 2026 · 5 min read

Headless Cookie Consent with Cloudflare Zaraz

Eliminate heavy client-side consent bundles. Offload cookie management to the Cloudflare edge using Zaraz for performance and privacy.

cloudflarezarazweb-performanceprivacyjavascript
Editorial cover for volta vs nvm macos nodejs runtime setup

June 2026 · 5 min read

Volta vs NVM: My Clean Node.js Runtime Setup on macOS

Ditch NVM for Volta to remove shell startup lag and enable automatic Node.js version switching that follows your projects, not your current directory.

nodejsmacosdeveloper-productivityvoltanvm
Editorial cover for integrating with the google wallet passes api

June 2026 · 6 min read

Integrating with the Google Wallet Passes API: A Developer's Retrospective

Moving beyond static links to native Google Wallet passes. I break down the JWT signing, class architecture, and the mechanics of native loyalty integration.

google-walletjwtapi-integrationbackend-development
Editorial cover for simplify internal workflow software auditability

June 2026 · 5 min read

Simplifying Internal Workflows Without Losing Auditability

Build maintainable operational software by prioritizing explicit workflow states and automated audit trails over complex, over-engineered systems.

internal-toolssoftware-architectureworkflow-automationauditabilityengineering-management
Editorial cover for safer terminal workflows replace rm with trash

June 2026 · 2 min read

Stop Using rm -rf in Your Daily Terminal Workflow

Prevent accidental permanent deletions by replacing the standard rm command with a native trash utility linked directly to your macOS Zsh shell.

macos cli workflow safetytrash-cliterminal aliasshell productivity
Editorial cover for dont block http requests waiting for llms

June 2026 · 2 min read

Don't Block HTTP Requests Waiting for LLMs

Calling LLM APIs synchronously inside Laravel controllers leads to 504 Gateway Timeouts. Learn how to immediately return 202 Accepted and offload LLM calls to background queues.

laravelqueuesaiopenaiarchitecture
Editorial cover for stop showing loading spinners safe mutations

May 2026 · 2 min read

Stop Showing Loading Spinners for Safe Mutations

Loading spinners are a failure of UX design when simple toggle actions are 99% guaranteed to succeed. Here is how to use React 19 useOptimistic for instant interfaces.

nextjsreact-19frontend-uxoptimistic-ui
Editorial cover for webhooks fail safe idempotency

May 2026 · 8 min read

Webhooks Fail. Build Them to Fail Safely.

External APIs will inevitably send duplicate webhooks or drop connections. Learn how to construct resilient database-level idempotency, atomic transactions, and background queues.

webhooksstripeidempotencybackenddatabase-transactions
Editorial cover for stop returning raw database models

May 2026 · 2 min read

Stop Returning Raw Database Models in Your APIs

Returning raw database models in API responses leaks sensitive internal fields and couples your frontend tightly to your schema.

api-resourceslaravelbackend-securitydata-exposure
Stripe payment webhook flow showing checkout, webhook event, idempotency log, subscription state, and product access

May 2026 · 2 min read

How I Think About Stripe Payment Flows in Product Backends

A practical blueprint for payment flows: checkout state, idempotent webhooks, subscription access, grace periods, and operational debugging.

StripePaymentsBilling Integrations
AI backend orchestration flow showing user request, app, queue, LLM provider, and saved result

May 2026 · 2 min read

Adding AI Features Without Turning the Product Into a Demo

How to structure AI product features around service boundaries, queues, rate limits, state, and failure handling so they survive real users.

AI IntegrationsBackend engineeringProduct Engineering
Internal workflow tool diagram showing request, approval, notification, reporting, and audit trail flow

May 2026 · 2 min read

What I Learned Building Internal Workflow Tools

Reflections on designing operational software: mapping team coordination into simple workflows, useful states, readable screens, and maintainable data models.

Product DesignInternal ToolsSQL Optimization
Laravel product backend architecture showing controller, service layer, queue, and database flow

May 2026 · 2 min read

How I Approach Maintainable Laravel Product Backends

A practical way to structure Laravel product backends around workflows, thin controllers, transactions, queues, and readable domain code.

LaravelPHPBackend Architecture
Editorial cover for reset git branch to remote

July 2025 · 6 min read

Git Reset to Remote: Force a Local Branch to Match Origin Safely

When your local branch drifts into a mess, a hard reset is often the fastest path back to sanity. This guide covers the precise command sequence to safely discard local divergence.

gitversion-controldevelopment-workflowcli
Press ? for keyboard shortcuts