Blog
Web design, brand and digital marketing — written while shipping client work. Fifteen years across design, engineering and growth.
Looking for something else? Framework, performance and AI-tooling writing lives in engineering notes, and the industry-by-industry software breakdowns are under business software.
Real builds · by industry
See the custom software + admin dashboard we'd build for your industry
200+ worked examples with the features, operational gaps and ROI maths behind each one.
Latest
Browse all 900 posts →Faceswap Lost to a LoRA: The 221-Still Render Rig
128 Pixels Is Not a Face
Read article AI WorkflowOvernight Loops, Part 2: The Hardening Rules
Where the Night Actually Goes
Read article AI WorkflowThe Overnight AI Loop That Ships While I Sleep
Eight Hours a Night, Unattended
Read article Local AITraining a Likeness LoRA on a Real Person for Ads
25 Photos, One Trigger Token, Zero Studio Days
Read article AI Workflow10 Agentic Coding Failures I Hit With Claude That Sol Got Right
One Real Session, Ten Named Failure Modes
Read article Opinion10 Reasons Anthropic Might Be the Most Overvalued Company on the Planet
Great Research Shop. Priced Like an Inevitability.
Read article AI WorkflowCaveman Mode: Cutting AI Output Tokens 75% Without Losing Accuracy
Full Technical Accuracy, None of the Prose
Read article AI WorkflowCheap Models as Always-On Watchers: The Pattern Nobody Uses
The Expensive Model Thinks, the Cheap One Stares
Read article AI WorkflowHalls and Rooms: How to Structure AI Context Files That Don't Rot
A Knowledge Tree, Not a Wall of Text
Read article AI WorkflowHooks Beat Prompts: Deterministic Guardrails for AI Agents
A Prompt Is a Probability. A Hook Is a Guarantee.
Read article AI WorkflowHow I Actually Use AI After Fable and Sol — My Optimised Setup
The Model Is 30% of the Win
Read article AI WorkflowI Started Grading My AI Every Day. The Results Were Ugly
Two Counts, One Letter, One Row Per Day
Read article AI WorkflowNo Smoke Breaks: Why Your AI Agent Should Never Wait on a Timer
Act When Ready, Not When the Clock Says So
Read article AI WorkflowRunning Multiple AI Agents Without Losing the Thread
Fan Out, Verify, Synthesise
Read article AI WorkflowScope Drift: Why AI Builds Four Things When You Asked for One
The Failure Mode That Looks Like Effort
Read article Model ReviewSol vs Fable 5: The Real-World Verdict After Two Weeks
Half the Price, and Better Where It Counts
Read article AI WorkflowThe Polite Liar: Why Your AI Agrees With You and Why That's Dangerous
Agreement Is Not Accuracy
Read article AI EconomicsThe Token Price Collapse: What Half-Price Frontier AI Actually Changes
The Maths That Changes What You Build
Read article AI WorkflowVerify Before Done: The Gate That Fixes 90% of AI Agent Failures
Scored 100/100 in My Own Failure Log
Read article PerformanceAstro Dynamic Imports — Lazy-Load Pages at Scale Without Blowing Your Bundle
Code-split like it's 2026
Read article Web DesignBreadcrumbs: The Navigation Pattern Users Trust Without Noticing
Why They Matter Most When You Stop Thinking About Them
Read article UX DesignDate Pickers: The Input Everyone Gets Wrong
When a calendar widget makes sense (and when it doesn't)
Read article UX DesignEmpty States: The Screens Everyone Designs Last and Users See First
The App Moment That Either Converts or Confuses
Read article UX DesignError Messages: The Copy That Decides Whether Users Rage-Quit
From "Invalid Input" to Users Actually Fixing It
Read article UX DesignMega-Menus: When Big Navigation Helps and When It Just Overwhelms
Catalog Sites Love Them. Six-Page Sites Hate Them. Here's Why.
Read article UX DesignMicrocopy: The Tiny Words That Quietly Do the Selling
Why 'Start Free' Beats 'Submit', and Why Every Word Costs You Conversions
Read article DevOpsNetlify Scheduled Functions: Cron Jobs Without a Server
Run background tasks without a cron service
Read article UX DesignPagination vs Infinite Scroll: Stop Guessing, Pick by Content Type
The Dead Footer Problem Nobody Talks About
Read article UX DesignPassword Fields: The Input We Keep Getting Wrong
Why your password input is worse than you think — and how to fix it
Read article ReactReact Hook Form + Zod: Forms That Validate Themselves
No Duplicate Validation Logic
Read article DevOpsSelf-Hosting npm Packages Beats a CDN Script — Here's Why
Stop trusting third-party CDNs for your critical dependencies
Read article Web DesignSite Search: When Users Reach For It (And When Your Nav Already Failed)
The Feature You Only Need When Navigation Breaks
Read article UX DesignSkeleton Screens vs Spinners: The Psychology of the Wait
Why Waiting Feels Different Depending on What You See
Read article Web DesignSticky Headers: Useful Nav or Screen-Eating Nuisance?
The Mobile UX Tradeoff Nobody Talks About
Read article UX DesignThank-You Pages: Your Most Wasted Real Estate
After the Submit Button, Most Brands Stop Thinking
Read article UX DesignTooltips: The UX Crutch You're Probably Overusing
When a label would do the job better
Read article UX DesignYour 404 Page Is a Conversion Opportunity, Not a Dead End
The Most Neglected Page on Every Website
Read article Digital Marketing$2M a Year in Meta Ad Spend: Why the Expert Beats the Agency
What happens when the person reading the data is the person changing the bids.
Read article PerformanceAstro Prefetch: Instant Page Navigation for Free
One attribute. SPA-level speed. No React.
Read article Web PerformancePreconnect: The 2-Line Resource Hint That Speeds Up Every Third-Party
Two Lines That Save 40% Load Time
Read article Web PerformancerequestIdleCallback — Let the Browser Breathe
Defer JavaScript Until the Browser Finishes Important Work
Read article Web Design⌘K Search Palette — How Velocity X Adds Vercel-Style Quick Search to Marketing Sites
Press ⌘K (or Ctrl+K) to search every page and blog post. Built on Radix Dialog + Fuse.js with zero runtime overhead.
Read article SaaS vs Custom1:1 Online Tutoring Platform Software — Custom Zoom Auto-Create + Lesson Notes + Recording Library vs Generic Booking
Solo tutors + small practices (5–50 online students, $35–80/hr rates) lose $8k–15k/yr to manual Zoom invites, lost lesson notes, no recorded-session library, payment friction, plus Acuity/TutorBird don't auto-create Zoom or track parent-facing recaps
Read article SaaS vs Custom24/7 Emergency Trade Dispatch Software — On-Call + GPS + SMS + Premium Pricing
8-tech emergency plumbing / electrical / locksmith fleet: 24/7 after-hours rotations, GPS dispatch to nearest tech, customer SMS + ETA + tech photo, premium pricing (2–3× day rate after hours), corporate emergency contracts (hospitals, shopping centres, office parks). Chaos: WhatsApp on-call groups, manual GPS routing (Google Maps), payment recovery slow (cash-heavy after-hours work), compliance risk (Fair Work after-hours rules, penalty rates). Custom platform = on-call roster + auto-dispatch + SMS gateway + dynamic pricing + contract lock-in. Year 1: recover $180k lost evening/weekend revenue, upsell premium contracts +$200k, scale to $1.2m ARR with same 8 techs.
Read article SaaS vs Custom24/7 Veterinary Hospital Software — Emergency Triage (Critical Cases, Spinal Trauma, Seizures, Toxicosis), After-Hours Roster Management, ICU Monitoring (Vitals Tracking, Temperature, HR, RR, Blood Glucose), Surgical Theatre Scheduling (Emergency + Elective, Pre-Op Checklist, Post-Op Recovery), Pet Insurance Claim Automation with VetPay Integration, ezyVet vs Custom Platform
24/7 veterinary emergency hospitals handle: critical triage (hit-by-car trauma [spinal subluxation [head injury [toxicosis [GI blockage [seizure status epilepticus [all life-threatening, must be triaged into ICU [observation [surgery within 15 min), after-hours rostering (8–12 vets on rotating 12-hour shifts, staff on-call, break relief, sick-day swaps, roster published 2 weeks in advance), ICU monitoring (hospitalised patients require continuous vitals tracking [temperature [cardiac rate [respiratory rate [blood glucose [urine output [treatment logs every 2 hours, VetPay pet insurance claim submission [auto-matched to procedures [claim pre-authorization [[can procedure proceed?), surgical theatre scheduling (emergency Caesar sections, trauma exploratory surgery, emergency orthopedic [mixed with elective dentals [spay-neuter, theatre timing, pre-op checklists [bloodwork [IV access, post-op recovery protocols). ezyVet = appointment-only (books appointment, invoices fee, exit). Missing: emergency triage dispatch (patient arrives, no triage system [vet examines by eyeball [might not be critical [might die), after-hours rostering (Google Sheets rostering [chaos [staff double-booked [no handoff protocol [patient care interrupted), ICU monitoring (whiteboard vitals [not real-time [missing data [animal deteriorates [unnoticed), theatre scheduling (booking conflicts [emergency vs elective overlap [theatre down-time [revenue loss), VetPay claims (manual submission [claim rejected [resubmit [payment delay [client churn). Custom platform = triage dispatch + after-hours roster + ICU real-time dashboards + theatre scheduling + VetPay automation. Emergency vet hospital 8 vets ROI 22 days, $580k year-1 value. AU-specific (Australian Veterinary Association [AVA], AVBC veterinary board registration, controlled drugs register [anesthesia logs [DEA-equivalent), VetPay pet insurance providers (Petshop, Opal, OnePet, Direct)."
Read article Performance & Design3D-Skewed Marquee Tech Stack — Velocity X's TechStack Section Anatomy
How Velocity X Sells Your Stack Without Loading 50 Tech Logos
Read article Content500 Blog Posts in 72 Hours — How Aidxn's Fable + Haiku Pipeline Worked
72 hours. 500 posts. One content engine. In May 2026, Aidxn shipped a proof-of-concept that topical authority still beats single-post SEO: a fully autonomous content pipeline that generated 500 blog posts across 8 verticals in three days. Architecture: Claude Opus (Fable) as director, parallel Claude Haiku workers, 4–6 posts in-flight concurrently. Real numbers: 30–90s per dispatch, 2–3 posts per turn, 70–90 posts per hour at peak. Here's how it worked, where it broke, what we learned, and whether you should try it.
Read article Content600 Blog Posts in 96 Hours — Final Reflection on the Aidxn Marathon
May 2026. After 96 hours of autonomous content generation, Aidxn shipped 600 blog posts across 12 verticals. Not a typo. Not AI slop. 1.05 million words, unique outlines, code examples, real research. Total API spend: $8. This is the final post in the marathon series: how the architecture evolved from 500 to 600 posts, what broke this time, real lessons learned, and whether the SEO bet paid off. Spoiler: the numbers are staggering.
Read article