Engineering notes
What actually broke, and what we shipped instead.
Notes from building production websites and applications — framework trade-offs, performance work that moved a real number, tooling that earned its place, and where AI-assisted development helps or quietly costs you. Written while shipping client work, not in theory. If you want that capability pointed at your business, that is custom web application development.
ContactBackend
- AI Agents in Production — Where Aidxn Actually Trusts Autonomy in 2026
- AI Code Review in CI — Claude Sub-Agents on Every GitHub PR
- API Docs in 2026 — Mintlify vs ReDoc vs Fern
- API Rate Limiting — Redis vs Upstash vs Supabase Postgres
- Astro DB vs Supabase — When the Built-in Wins, When It Doesn't
- AU Privacy Act + GDPR Compliance — How Velocity X Bakes Privacy In By Default
- Cloudflare Workers — Edge Compute for Velocity X SaaS
- Connection Pooling — PgBouncer vs Supavisor for Serverless Postgres
- Database Read Replicas on Supabase — When Production Needs Them
- Edge Auth Middleware — Verifying Supabase JWTs at the Edge in <5ms
- EXPLAIN ANALYZE — Hunting Slow Postgres Queries on Supabase
- GraphQL vs REST vs tRPC — API Style Choice in 2026
- Image Uploads in SaaS — Supabase Storage + Sharp Thumbnails + EXIF Strip
- Inngest vs Trigger.dev vs Temporal — Workflow Orchestration in 2026
- Job Queues — Supabase Postgres Table vs BullMQ Redis
- JWT vs Session Cookies — Why Aidxn Defaults to Session Cookies for Web SaaS in 2026
- Magic Links — Why Aidxn Defaults to Passwordless Auth for B2B SaaS
- Multi-Org Tenant Switcher — How Velocity X Handles Users in Multiple Organisations
- Multi-Team Route Segmentation — How Velocity X Handles Multiple Sales Teams, Zones, and Brain Contexts
- Multi-Tenant SaaS Architecture — Shared Schema + RLS vs Schema-per-Tenant
- Netlify Functions vs Edge Functions — Cold Starts, Limits, and When to Use Which
- PDF Generation in 2026 — react-pdf vs Puppeteer vs DocRaptor
- pgvector + Supabase — Semantic Search Without Pinecone Bill
- Pipedrive ↔ Supabase Bidirectional Sync — Webhook + Edge Function Pattern
- PostGIS in Supabase — How Velocity X Runs Geospatial Queries Without an Extra Database
- Postgres Full-Text Search in Supabase — Free Algolia for 90% of Use Cases
- Public API + Rate Limits — When Velocity X Customers Build Their Own Integrations
- RAG (Retrieval-Augmented Generation) — Customer Support That Knows Your Docs
- Rate Limiting at the Edge — Netlify Functions Pattern for Form Spam + Brute Force Defense
- React Email vs MJML — Building Branded Transactional Emails Without HTML Hell
- Resend vs SendGrid vs Postmark — Transactional Email That Actually Lands
- Sanity vs Strapi vs Payload — Pick the Headless CMS That Doesn't Bite Back
- Server-Side Data Validation — Why Zod on the API Endpoint Is Non-Negotiable
- Shipping Webhooks From Your SaaS — Publisher-Side Patterns
- SSO for SaaS — Supabase Auth + Google Workspace + Okta SAML in 2026
- Stripe Connect — Building a Marketplace Without the Per-Seat SaaS Bill
- Stripe Subscriptions for SaaS — The Billing Code You'll Actually Ship
- Stripe Webhooks on Netlify — Signature Verification, Idempotency, and Retry Logic
- Supabase Edge Functions — Where Velocity X Runs Its OAuth Refreshes, Cron Jobs, and Service-Role Operations
- Supabase Edge Functions + pg_cron — Free Scheduled Jobs Without a Server
- Supabase Realtime — Broadcast, Presence, and DB Changes Without a WebSocket Server
- Supabase Realtime Channels — How Velocity X Pushes Live Updates to Reps Without Polling
- Supabase Row-Level Security — Real Policies That Actually Hold in Production
- Supabase Row-Level Security for Multi-Tenant SaaS — The Patterns That Actually Hold Up in Production
- Supabase Storage for Customer File Uploads — RLS-Gated Buckets and Image Transform Patterns
- Two-Sided Marketplace Architecture — Buyer + Seller in One Build
- WebSocket vs SSE vs Supabase Realtime — Which One To Use
- Zero-Downtime Supabase Migrations — How Velocity X Ships Schema Changes Without Breaking Production
- Zod Schemas as Single Source of Truth — One File, Three Validations
Dev Tools
- Astro 5.5 Server Islands Are Wild
- Axolotl Finally Got A Web UI
- Bun 1.2 Has A Native LLM Module
- Chroma Got A Major Upgrade And Nobody Mentioned It
- ComfyUI Just Went Mainstream
- Coolify Is Self-Hosted Vercel
- DeepEval Is Pytest For LLMs
- Deno Just Added llama.cpp Bindings
- Dokploy Beats Coolify At UI
- ESLint 10 Removed Legacy .eslintrc Config Support: The 10-Minute Migration to Flat Config
- Fly.io Just Added GPU Volumes
- Forge Just Killed Auto1111
- Guidance Library Quietly Became Essential
- Helicone Is Quietly Excellent
- I Replaced LangChain With 200 Lines of Python
- Instructor Just Works (Unlike Everything Else)
- Kamal 2 Deploys Anywhere With One Yaml
- Krita AI Plugin Is Better Than Photoshop's Firefly
- LanceDB Is Outpacing Every Vector DB
- Langfuse Hit 10K Stars And It Earned Them
- LiteLLM Is Eating Every Other LLM Library
- LlamaIndex 2.0 Stopped Looking Like LangChain
- Marvin Does Functional Agents Right
- Mirascope: Smaller, Sharper, Easier Than LangChain
- Next.js 17 Has The AI SDK Built In Now
- PGVector Is Still The Right Answer In 2026
- Pinecone vs Open Source Showdown 2026
- Prettier Got An AI Plugin And It Actually Works
- Promptfoo Is CI For Prompts
- Pydantic AI Is The LangChain Killer Nobody Saw Coming
- Qdrant Hit 1.0 And It's Production Ready
- Ragas Made RAG Evaluation Actually Possible
- SvelteKit 3 Released And It's Faster Than Astro
- TanStack Start Just Replaced Remix
- Vite 7 With Rolldown Is Stupid Fast
- Weaviate Added Hybrid Search By Default
Tech News
- After Years of False Starts, Web Components Actually Make Sense Now
- AI Agents in 2026: What GPT and Claude Agents Can Actually Do
- CSS Won the War Against CSS-in-JS — Here's Everything That Shipped in 2024
- Devin AI Review [2026]: Tested on 5 Real Projects
- Do You Actually Need Docker? A Pragmatic Take on Containers vs Serverless
- Every Framework Converged on Signals — Here's Why This Reactive Primitive Won
- GitHub Is Becoming a Full IDE and Nobody's Talking About It
- Google I/O 2025: Gemini Is Everywhere and SEO Might Be Nowhere
- Here's What I Didn't Know About TypeScript 5: Decorators, `satisfies`, and the Features Worth Using
- How shadcn/ui Flipped Component Libraries on Their Head (Copy-Paste Beats npm install)
- HTMX Proved Everyone Wrong — Hypermedia Is Back and SPAs Are Sweating
- I Looked at Apple Vision Pro and Decided Most Web Devs Should Ignore It (For Now)
- LLM Costs Dropped 90% in One Year — Here's What the Race to Zero Means for Developers
- LMSYS Chatbot Arena Explained: How Blind Voting Works and What Just Changed
- Node.js Added An AI Subcommand And Nobody's Talking About It
- Open Source AI Is Catching Up Fast — Here's When to Self-Host vs Pay for an API
- Railway Removed Their Free Tier Again
- Rust Is Quietly Rewriting Every JavaScript Tool You Use
- Seriously, Just Use Postgres — One Database Is Probably All You Need
- Tech Hiring Is Back But the Rules Completely Changed
- The Deployment Platform Wars: An Honest Pricing Breakdown of Vercel, Netlify, and Cloudflare
- The JavaScript Runtime Wars: Why Bun's Benchmarks Don't Tell the Whole Story
- The Monorepo Debate Is Over and Turborepo Won — Here's Why You Should Stop Splitting Repos
- The Nuanced Reality of AI and Junior Developer Jobs That Nobody Wants to Hear
- The State of JS 2025 Is Wild: React Won't Die, Svelte Runes Are Polarizing, and HTMX Came Out of Nowhere
- The Unexpected SQLite Renaissance: The World's Most Deployed Database Goes Cloud-Native
- Tired of New Frameworks? The Answer Isn't Going Frameworkless — It's Picking One and Shipping
- Wait, JavaScript Is Actually Getting Good? Temporal API, Decorators, and What Shipped in 2025
- We Watched OpenAI DevDay So You Didn't Have To — Here's What Matters
- We've Been Running React 19 in Production for 6 Months — Was It Worth the Upgrade?
- WebAssembly Still Hasn't Replaced JavaScript and That's Completely Fine
- What Does 'Edge Computing' Actually Mean? (And When Is It Just Marketing?)
- What Is MCP? Anthropic's Protocol Is Becoming the USB-C of AI Tools
Web Development
- Animation Easing Curves — The Detail That Separates Premium From Hobbyist
- Astro Islands — When to client:load, client:idle, client:visible, client:only
- Astro Server Islands + Actions — Dynamic Content in Static-First Sites
- Astro View Transitions — The Cheapest SPA Feel Money Can Buy
- Contact Form Spam Prevention — Turnstile vs hCaptcha vs Honeypot
- Core Web Vitals 2026 — LCP, INP, CLS and the Actual Fixes That Work
- Custom Cursors with mouse-follower — The $200k Site Detail That's Actually 12kb of JS
- Dynamic OG Images with Satori — One Endpoint, Infinite Share Cards
- Framer Motion vs GSAP — React's Animation Choice in 2026
- GSAP Flip — The Plugin That Makes Layout Changes Feel Magical
- GSAP ScrollTrigger — Pin, Pinspacer, and the Patterns That Make Marketing Sites Feel Premium
- htmx vs React for Marketing Sites — When 8kb Beats 250kb
- Internationalisation in Astro — Multi-Locale Sites Without the Pain
- Lenis Smooth Scroll — When the Buttery Scroll Is Worth It, When It Isn't
- Lighthouse 99/100 — The Checklist That Gets Marketing Sites There
- localStorage, sessionStorage, IndexedDB, and Cookies — When to Use What
- Lottie vs CSS vs Rive — Picking the Right Animation Format for the Web
- p5.js for Marketing Sites — Generative Art That Actually Loads
- Partytown — Offload Third-Party Scripts to a Web Worker for Real Performance
- React Three Fiber — 3D Hero Scenes That Don't Tank Your Lighthouse Score
- Security Headers — CSP, HSTS, X-Frame-Options You Should Ship on Day 1
- Shader Park & GLSL Backgrounds — How Aidxn Adds Premium Texture for $0/mo
- SSR vs SSG vs SPA — Picking Page Rendering in 2026
- The 47-Point Website Launch Checklist We Use Before Every Single Go-Live
- The Honest Case for Ditching WordPress and Going Headless
- WCAG 2.2 — Accessibility Aidxn Ships by Default in 2026
- Web MIDI API — Why Aiden Wired a Native Instruments F1 to His Browser
DevOps
- Backups and Disaster Recovery for a Small-Business Supabase + Netlify Stack
- Bun vs Node in 2026 — Why Velocity X Still Runs Node
- CI/CD for Teams of One: The Minimum Viable Pipeline That Actually Works
- DNS Explained Like You're Setting Up a Client's Domain at 11pm on a Friday
- Docker DevContainer for Velocity X — One-Command Onboarding for New Engineers
- Environment Variables Best Practices: 9 Rules That Keep Your Secrets Out of Git
- Everything We've Learned About Deploying to Netlify After 40+ Client Sites
- Feature Flags With GrowthBook — Safe Rollout of Velocity X Features Without Big-Bang Deploys
- GitHub Actions for Velocity X — Lint, Type-Check, Test, Visual Regress on Every PR
- Here's Everything You Need to Know About SSL Certificates in 2026 (It's Less Than You Think)
- Monorepo vs Polyrepo: What We Actually Use and Why
- Netlify Scheduled Functions: Cron Jobs Without a Server
- Observability for SaaS — OpenTelemetry + Honeycomb (and the Budget Alternatives)
- pnpm vs npm vs Bun — Package Manager Choice for Velocity X in 2026
- Preview Deployments Changed How We Work with Clients (And You Should Use Them Too)
- Self-Hosting npm Packages Beats a CDN Script — Here's Why
- Sentry vs Highlight vs Better Stack — Error Monitoring That Doesn't Explode Your Budget
- Supabase Backup Strategy — pg_dump + PITR + Storage Replication
- Tailwind 3 vs Tailwind 4 — Why Velocity X Stayed on 3
- The Domain Migration Checklist We Built After One Very Expensive Mistake
- The Git Workflow That Actually Works for Small Agency Teams
- The Website Monitoring Setup We Use for Every Client (Uptime, Speed, Errors)
- Uptime + Cron Monitoring — Catch Broken Cron Before Your Customers Do
- Zero-Downtime Postgres Migrations — The Aidxn Playbook
Frontend
- Astro Content Collections — How Aidxn Manages 500+ Blog Posts
- Astro Image Component — AVIF + WebP + Responsive in 4 Lines
- Bento Expandable Stat Cards — Click a KPI Tile, Watch It Expand Into a Chart + Trends in Place
- Bulk Actions + Keyboard Shortcuts — Power-User UX Velocity X Ships
- Dashboard KPI Tiles — The 4-Card Layout Aidxn Uses Every Build
- Google-Ads-Style Multi-Metric Chart — Plot 4 KPIs on Two Y Axes With FIFO Rotation
- Headless UI Libraries — Radix vs React Aria vs Headless UI in 2026
- Optimistic UI Updates — TanStack Query Mutations That Feel Instant
- React Hook Form + Zod — The Form Pattern That Just Works
- Recharts for Dashboards — Dual-Axis Line Charts, Sparklines, and Stack-Bar Patterns Velocity X Uses
- Recharts vs Victory vs D3 — Which Chart Library Ships in Your SaaS Dashboard
- shadcn/ui — Why Aidxn Builds Every Project On Top of It
- Storybook in 2026 — When It's Worth the Setup, When It Isn't
- TanStack Query (React Query) — Why It Replaced 90% of useEffect Data Fetches
- TanStack Table vs AG Grid — Data Tables Aidxn Reaches For
- Toast Notifications — Sonner vs react-hot-toast in 2026
- Zustand in 2026 — Why Aidxn Ships It Over Redux, Context, and Jotai
AI Engineering
- Brain Chat Assistant — Velocity X's In-Dashboard Claude Bot for Reps + Admins
- Caveman Mode — Ultra-Compressed Comms for 75% Token Savings on Claude
- Claude Code vs Cursor — Which AI Code Editor Should You Actually Ship With
- Claude's 1M Context Window — Why Aidxn Now Refactors Entire Codebases in One Shot
- LM Studio vs Ollama — Local AI Tooling for Designers, Not Just Devs
- Multimodal LLMs — Vision APIs Replace OCR. Here's How Aidxn Deploys Them.
- Natural Language Database Queries — Brain Turns "Show Me Top 5 Reps Last Month" Into a Postgres Result
- Ollama — Why Aidxn Runs Llama, Mistral, and Qwen Locally for Internal Tools
- Ollama + Llama 3 for On-Device Privacy Mode — When to Run AI Locally Instead of Cloud
- OpenAI vs Anthropic vs Google Gemini — Pick the LLM API That Fits Your Stack
- Parallel Haiku Sub-Agents — Shipping 6+ Blog Posts Per Hour
- Running Brain Cheaply — Anthropic API Cost Optimisation Patterns for Production
- Sonnet 4.6 vs Opus 4.7 — Which Model Should You Actually Ship to Production
- Streaming LLM Responses — Why You Need Server-Sent Events Right Now
- Text-to-Speech in 2026 — ElevenLabs, OpenAI, and Local Models Compared
- Vercel AI SDK + Claude — Streaming Chat Without Custom WebSocket Plumbing
Open Source
- Command R+ V2 Bet On Local And Won
- F5-TTS: Zero-Shot Voice Cloning From 5 Seconds of Audio, Running on Your Laptop
- Falcon 3 Just Went Open Weight
- Flux Pro Just Got Open Sourced
- Ghost Pepper 7B Just Dropped and It's Spicy
- HunyuanVideo Explained (2026): Open Source Text-to-Video
- llama.cpp Hits 100K GitHub Stars: Why Local AI Already Won
- MiraFish Open Sourced Its English Version
- Mistral Large 3 Just Went Apache 2.0
- Mochi Is The Open Source Sora We Were Promised
- Nemotron 4 Is Nvidia's Sleeper Hit
- Smaug 2 Climbed The Leaderboard Overnight
- Solar Pro Is The Korean Underdog That's Winning
- Stable Diffusion 4 Drops And It's Glorious
- StableLM Returned From The Dead
- Yi-2 Is China's Open Source Comeback
AI Workflow
- 10 Agentic Coding Failures I Hit With Claude That Sol Got Right
- Caveman Mode: Cutting AI Output Tokens 75% Without Losing Accuracy
- Cheap Models as Always-On Watchers: The Pattern Nobody Uses
- Halls and Rooms: How to Structure AI Context Files That Don't Rot
- Hooks Beat Prompts: Deterministic Guardrails for AI Agents
- How I Actually Use AI After Fable and Sol — My Optimised Setup
- I Started Grading My AI Every Day. The Results Were Ugly
- No Smoke Breaks: Why Your AI Agent Should Never Wait on a Timer
- Overnight Loops, Part 2: The Hardening Rules
- Running Multiple AI Agents Without Losing the Thread
- Scope Drift: Why AI Builds Four Things When You Asked for One
- The Overnight AI Loop That Ships While I Sleep
- The Polite Liar: Why Your AI Agrees With You and Why That's Dangerous
- Verify Before Done: The Gate That Fixes 90% of AI Agent Failures
Local AI
- AWQ vs GPTQ vs GGUF Explained In 4 Minutes
- ExLlamaV2 Is Quantization Wizardry
- Faceswap Lost to a LoRA: The 221-Still Render Rig
- Fine-Tuning On An M4 Mac Is Now A Thing
- Gemma 3 Is Google's Local LLM Comeback
- GPT4All Still Has Its Place In 2026
- Jan Is Local AI That Actually Looks Good
- KoboldCpp Is For The RPG Folk (And It Slaps)
- LM Studio 2.0 Drops Agent Mode
- MLX On Mac Is Faster Than vLLM (Yes Really)
- Ollama Just Hit One Million Users
- Text Generation WebUI Got A Glow-Up
- Training a Likeness LoRA on a Real Person for Ads
Creative Coding
- After Effects → Web — Kinetic Typography That Doesn't Cost 50MB
- FFmpeg Pipelines — Why Aiden Shipped Programmatic Video Instead of Buying After Effects
- Generative Art on the Web: A p5.js Starter for Designers Who Code
- GLSL Shader Backgrounds for Marketing Sites — The Aidxn Pattern
- MIDI Bridge — A Web MIDI Controller App That Turns Your F1 Into a Universal DAW Mapper
- OGL — When Three.js Is Overkill and You Need 5kb of WebGL
- p5.js for Marketing Sites — Generative Art Without the Performance Guilt
- Scroll-Driven Shader Inputs — Lerp Patterns That Feel Alive Without Stealing Focus
- SDXL & Flux — Why Aidxn Generates Images Locally (and Owns Them)
- Three.js + GLSL Shaders — The Effects That Win Awards (And Stay Fast)
- Three.js + React Three Fiber for Portfolio Sites — Aiden's 2026 Setup
- Web MIDI API + Native Instruments F1 — A Deep Dive Into MIDI Bridge's Core
Inference
- Aphrodite Engine: The vLLM Fork for Consumer GPUs [2026]
- Cerebras Wafer-Scale Beats Every GPU On The Market
- Groq Hits 800 Tokens Per Second
- Modal Just Killed Replicate
- SGLang Is Quietly Outperforming vLLM
- TensorRT-LLM Is For The Hardcore
- TGI From Hugging Face Quietly Won The Serving War
- The Triton Inference Server Pattern
- Together AI Is Cheaper Than OpenAI And Faster
- vLLM Beats Every Hosted API On Speed
Git Tools
- Codeberg Just Hit 500K Users
- Devs Finally Discovered Git Worktrees
- Forgejo Federation Hit Beta And It's Wild
- GitButler Made Branch Stacking Easy
- Gitea AI Just Added Model Hosting
- GitHub Actions Runner On WASM Just Shipped
- GitHub Copilot Workspaces Just Went GA
- Jujutsu Is The Git Successor We Needed
- Lazygit Added AI Commit Messages
- Sapling SCM Explained (2026): Meta's Open Source Git Rival
AI Coding
- Aider Is The Quiet Killer of AI Coding
- Claude Code Beats Cursor At Everything Now
- Cline Just Went Viral In VS Code
- Continue.dev Proves Open Source AI Coding Works
- Cursor 2.0 Drops With Composer Mode
- Roo Code Forked Cline And Won
- Windsurf Came From Nowhere And Took Over
- Zed Editor Built-In AI Is Actually Good
Product Engineering
- Affiliate Program Built-In — 20% Commission Without Rewardful
- Canary Deploys + Gradual Rollouts — Shipping Safely on Netlify
- Customer Referral Programs — How Velocity X Tracks Who Sent Who Without a Subscription
- Email Drip Onboarding — Velocity X's 7-Day Sequence That Activates Customers
- Email Remarketing Visual Flows — Why Velocity X Has a Built-In Node Editor Instead of Sending to Mailchimp
- Feature Flags in 2026 — LaunchDarkly vs PostHog vs Self-Host in Supabase
- React Flow / @xyflow/react — Building the Velocity X Remarketing Visual Canvas
Performance
- Astro Build Time Optimisation — How Velocity X Builds 600+ Pages in Under 90 Seconds on Netlify
- Astro Dynamic Imports — Lazy-Load Pages at Scale Without Blowing Your Bundle
- Astro Prefetch: Instant Page Navigation for Free
- Core Web Vitals 100/100 — The Pattern Stack Velocity X Uses to Hit Perfect Mobile Scores
- Partytown for Third-Party Scripts — How Velocity Keeps Google Analytics Off Your Main Thread
- srcset and sizes: A Complete Guide to Responsive Images That Actually Load Fast
- Vite Plugins That Make Velocity X Builds Faster + Better: The Astro 5 Ecosystem
Payments & SaaS
- Booking Deposits via Stripe — Hold-Then-Charge for Service Bookings
- Discount Codes via Stripe Coupons — How Velocity X Runs Promo Campaigns at Buy-Once Checkout
- GST + AU Business Tax for Stripe Payments — How Velocity X Handles It Right
- Invoice PDF + Receipt Generation — How Velocity X Issues Tax-Ready Documents in Brand Style
- Stripe One-Off Checkout vs Subscription Billing — Which Model Wins for Custom Websites
- Stripe Payment Links — Buy-Once Checkout Without the Engineering Debt
- Stripe Subscription Dunning — Automating Recurring Payments & Failed-Card Recovery
Design Engineering
- BrandGridTracerSlow — Velocity X's 3D Animated Grid Backdrop
- Custom Cursor Patterns in 2026 — When Mouse-Follower Cursors Add Personality vs. Get in the Way
- Footer Floating Globes — Velocity X's Fixed Parallax Branded Elements
- TextRoller Cycling Feature Lists — Velocity X's Animated Feature Section
- The 3D Radial Gallery — How Velocity X Replaces the Boring Portfolio Grid With a Rotating Orbit
- The Footer Section — Site Chrome That Actually Works
- The Wireframe Globe Brand Mark — How Velocity X's Spinning Sphere Works
Backend Engineering
- Immutable Audit Logs in Postgres — How Velocity X Tracks Who Did What
- Microsoft Teams Notifications — Velocity X's Adaptive Card Pattern
- Outbound Webhooks — How Velocity X Lets Customers Publish Events to Their Own Systems
- Real-Time on the Web: WebSockets vs Server-Sent Events vs Supabase Realtime
- Slack Notifications via Incoming Webhooks — Sales-Floor Alerts From Velocity X
- Webhook Receivers That Don't Drop Events — Retry, Idempotency, Dead-Letter Queue
- Webhooks: The Complete Guide to Not Losing Data When Services Talk to Each Other
AI Features
- AI Brain Deep Dive — How Velocity X Picks the Next Best Action for Every Deal
- AI Brain Follow-Ups — How Velocity X Drafts Your Post-Visit Email Before You Hit Save
- AssemblyAI for Production Voice Transcription — Velocity X's Voice-Note Pipeline
- Business Card OCR — Snap, Extract, Add to CRM in 6 Seconds With Claude Vision
- Claude Vision for Document Extraction — Invoices, IDs, Forms Read in 4 Seconds
- Voice Notes on Deals — 30-Second Car Debriefs That AI Turns Into Searchable Pipeline Context
Architecture
- AI-Ready Website Architecture for Small Business — A Practical 2026 Guide
- Astro 5 Server Islands — Static + Dynamic Without Picking Sides
- Astro Actions — Type-Safe Server Functions Without an API Layer
- Astro Middleware — Auth Redirects, Locale Detection, Tenant Resolution
- Astro View Transitions — SPA-Smooth Navigation Without SPA Cost
- Multi-Brand SaaS — White-Label Architecture That Scales
Infrastructure
- Cloudinary vs Bunny.net vs Cloudflare R2 — Which Image CDN to Ship in 2026
- Edge Functions: What They're Actually Good For (And What They're Not)
- Mux vs Cloudflare Stream vs Bunny Stream — Pick the Video Host That Doesn't Bleed You
- Postmark vs Resend vs SendGrid vs Mailgun — Transactional Email Providers Compared in 2026
- Rate Limiting: The Boring Infrastructure That Keeps Your API From Falling Over
- Resend for Transactional Email — Why Velocity X Ditched SendGrid for the Cleaner API
JavaScript
- ES Modules in 2026: import, export, and the Stuff That Still Confuses Everyone
- Event Delegation: The Performance Pattern You Probably Forgot About
- Everything You Need to Know About fetch() (Including the Parts That Will Bite You)
- Promise.all vs Promise.allSettled vs Promise.race — A Visual Guide to Picking the Right One
- Stop Writing For Loops: The Array Methods That Make JavaScript Actually Readable
- The async/await Error Handling Pattern Nobody Told You About
Agents
Engineering
- Mapbox GL JS in Velocity X — Vector Tiles, Custom Styles, and Why It Beats Google Maps for Custom CRM UIs
- PWA Without React Native — Velocity X's Mobile Field-Sales UI Is Just a Smart Web App
- TypeScript Strict Mode — Why Every Velocity X File Compiles With All Flags On
- Web Push Notifications Without Firebase — Browser + Mobile Alerts From Velocity X
- Zod as the Shared Source of Truth — Validate Client, Server, and Database With One Schema
Performance & Design
AI & Automation
AI Tooling
- Claude Code Plugins and Skills — How the 2026 Marketplace Changes Your Dev Workflow
- Claude Code Skills + MCP Servers — Aiden Wood's 2026 Production Setup
- Cursor vs Claude Code in 2026 — Which AI Coding Tool Wins for Production Web Work
- MCP Servers + Claude Tool Calling — Building a Custom Velocity X MCP
CSS & Frontend
MCP Protocol
Design Systems
Data Engineering
React Development
More engineering
- 15 Years Across IT, Design, Marketing, and Generative Visuals — Why a Full-Stack Founder Beats Specialist Agencies in 2026
- 3 Months With Claude Code: Here's How It Actually Changed Our Workflow
- A Practical Guide to CSS Grid for Websites That Need to Actually Ship
- AES-256-GCM in 30 lines: token storage without an auth library
- Astro + Alpine.js — Lightweight Interactivity Without React Bundle Cost
- Astro + CMS Options in 2026 — Sanity vs Strapi vs Tina vs JSON
- Astro Content Collections + Zod — Typed Blog Content Without a Headless CMS
- Astro i18n — Multi-Language Sites Without a Headless CMS
- Astro Starlight for Product Docs — Ship Beautiful Docs Alongside Your Marketing Site
- AU Notifiable Data Breach Scheme — Velocity X Incident Response Within 30 Days
- Authentication in 2026: JWTs, Sessions, Magic Links, and What We Actually Recommend
- Autosave Lead Forms — How Velocity X Captures Half-Filled Forms for Remarketing
- Biome vs Prettier + ESLint — One Tool to Rule Them All
- brand.json — The Single Source of Truth Schema Velocity X Ships With
- brand.json Schema Reference — Every Field, Every Type, With Real Examples
- Bun vs Node vs Deno — Which JS Runtime Aidxn Ships in 2026
- CLAUDE.md Halls and Rooms — Structuring Project Context So Claude Reads Only What's Needed
- CSS Custom Properties Are Way More Powerful Than You're Using Them
- Cypress vs Playwright for E2E in 2026 — Why Velocity X Picked Playwright
- Dark Mode in 2026 — CSS Variables + Tailwind + No Flash on Load
- Database Migrations — Supabase Migrations CLI vs drizzle-kit
- Discord & Slack Bots — Internal Productivity Plays (Node.js Patterns)
- Docker Compose vs mise/asdf — Local Dev Environment Choice in 2026
- Domains and DNS for AU Business Websites in 2026 — Cloudflare + .au + Email Routing
- Drizzle vs Prisma vs Kysely — Pick the TypeScript ORM That Doesn't Slow You Down
- ESLint + Prettier in 2026 — Velocity X's Tight Biome Setup That Catches AI Bugs
- Every Tool, Framework, and Service in Our Full-Stack Toolkit Right Now
- Everything We've Learned About Integrating Stripe (After Breaking It Several Times)
- Five AI coding agents in parallel, all night — the caveman-ultra orchestration recipe
- GitHub Actions for Velocity X — The Deploy Workflow Aidxn Ships
- GSAP keeps killing your inline transform. Compose with CSS variables instead.
- Here's How ChatGPT Rewrote Our Entire Dev Workflow in 12 Months
- Here's What Container Queries Actually Change About How We Build Layouts
- Here's What I Didn't Understand About React Server Components Until I Actually Used Them
- Hono vs Express vs Next API — The Lightweight Server Aidxn Reaches For
- Inviting Team Members With Supabase Auth — Email-Invite Onboarding in Velocity X
- Let's Build Those Fancy Scroll-Driven Animations Without a Single Line of JavaScript
- Let's Talk About Modals: The Native dialog Element and Why You Should Use It
- Mac Developer Dotfiles in 2026 — The Aidxn Setup
- MCP Servers — Giving Claude Hands
- MSW (Mock Service Worker) — API Mocking for Frontend Dev + Tests
- Netlify Branch Previews + Claude Code — The CI/CD Pattern That Makes AI-Assisted Edits Actually Safe
- Netlify vs Vercel vs Cloudflare Pages — Where Aidxn Ships (And Why)
- Netlify vs Vercel vs Cloudflare Pages — Which Host for AU Custom Websites in 2026
- Playwright Visual Regression Testing for Marketing Sites
- Playwright vs Cypress — Which E2E Framework Should You Actually Ship With
- pnpm Workspaces vs Turborepo vs Nx — Monorepo Choices in 2026
- Postgres Bytea + AES-256-GCM — How Velocity X Encrypts OAuth Tokens You Can't Decrypt Without the Key
- React Hook Form + Zod: Forms That Validate Themselves
- Sentry Error Tracking — How Velocity X Catches Production Bugs Before Customers Do
- Sharing Types Across a Monorepo — Zod Schemas + Generated TS
- Six Apps Deep Into Supabase — Here's What We Wish We'd Known on Day One
- So We Ditched Firebase for Supabase — Here's What Happened
- SOC 2 + ISO 27001 — When AU Small Businesses Actually Need Them
- Sol vs Fable 5: The Real-World Verdict After Two Weeks
- Stop Using Fixed Font Sizes: A Complete Guide to Fluid Typography with clamp()
- SVG Icon Systems — astro-icon + lucide-react in Velocity X
- System Prompt Engineering — Brand Voice Into Every AI Tool
- Tailwind v4 vs v3 — Migration Notes from Production Sites
- The API Integration Patterns That Won't Break at 2am
- The Component Architecture Patterns We Use After Building 30+ React Apps
- The Database Schema Patterns That Saved Us From Ourselves
- The Real Workflow Behind Building SaaS With AI (Not the LinkedIn Fantasy)
- The REST API Design Patterns We Actually Use (Not the Textbook Ones)
- The Token Price Collapse: What Half-Price Frontier AI Actually Changes
- The Web Worker pattern that makes per-tenant Supabase queries feel instant
- Trunk-Based Development for Velocity X — Short Feature Branches + Branch Previews
- TypeScript Strict Mode — Non-Negotiable for Aidxn in 2026
- Vibe Coding Went From Meme to Mainstream and I'm Not Even Mad
- Vite vs Webpack vs Turbopack — Build Tool Reality in 2026
- Vitest Over Jest in 2026 — Faster Unit Tests for Velocity X's TypeScript Codebase
- Vitest vs Jest — Why Aidxn Migrated Every Codebase in 2025
- We Built 20+ Sites on Both Next.js and Astro — Here's When to Use Each
- We Shipped 6 Months of Production Sites on Astro 5 — Here's Our Full Review
- We Tried Every AI Coding Assistant on Real Projects — Here's the Honest Ranking
- What Actually Belongs in a CSS Reset in 2026 (And What Doesn't)
- What Is brand.json? The Canonical AI Context Pattern Every Business Website Needs
- Why Velocity X Avoids iFrame Embeds — Self-Hosted Forms Beat Typeform, Calendly, and Tally
- Working With Claude Code on a Production Business Website — A Complete Playbook
- Zustand for State Management — Why Velocity X's Dashboard Skips Redux Toolkit
Engineering — common questions
Astro for the site layer, React for interactive islands, Tailwind for styling, Supabase for Postgres, auth and storage, and Netlify for hosting and CI/CD. GSAP handles motion. The bias is toward shipping static HTML and hydrating only what genuinely needs it.
Most agency and service-business sites are content-led, and Astro ships zero JavaScript by default while letting individual components hydrate when they need to. That suits a marketing site better than a framework that assumes a React runtime on every page. Next.js is the better answer when the product genuinely is an application. The choice is about the workload, not about which framework is superior.
Yes, on real production work, and the writing here reports both what it does well and where it costs time. The useful boundary in practice: it is strong at mechanical breadth — sweeps, migrations, tests, refactors across many files — and weakest on decisions where being confidently wrong is expensive. The judgement stays human.
Yes. The posts include working code rather than description, and nothing here depends on a proprietary framework. They document decisions made while shipping client work, including the ones that turned out to be wrong.
These are written for developers — frameworks, performance, tooling and architecture. The business software articles are written for owners deciding whether to buy or build, and live under /software/. Same studio, different audience.
Let us make some quick suggestions?
Unique solutions for your brand.