Blog

Articles & Insights

Notes on LLM integration, AI automation, full-stack development and running it all on your own servers.

GitHub Actions SSH Deploy: Permission Denied
DevOps and Deployment

GitHub Actions SSH Deploy: Permission Denied

GitHub Actions SSH deploy failing with Permission denied (publickey)? Here is the real cause -- a corrupted key -- and the fix that actually works.

101
AI Code Review Prompt for Laravel PRs
Trending AI Prompts and Tools

AI Code Review Prompt for Laravel PRs

A structured AI code review prompt that actually catches Laravel-specific bugs like mass assignment and N+1 queries, instead of generic AI praise.

69
pgvector vs Pinecone for Node.js Embeddings
AI and Backend Integration

pgvector vs Pinecone for Node.js Embeddings

pgvector vs Pinecone for Node.js apps: when Postgres vector search beats a dedicated vector database, with real code and a clear recommendation.

72
Shopify API Rate Limit Error: The Real Fix
Shopify Development

Shopify API Rate Limit Error: The Real Fix

A Shopify API rate limit error means you've hit the leaky bucket limit on REST or GraphQL. Here's why it happens and the fix that holds up at scale.

99
Fix WooCommerce Cart Fragments Slowing Your Site
WordPress and WooCommerce Performance Optimization

Fix WooCommerce Cart Fragments Slowing Your Site

WooCommerce cart fragments slow? Here is why the get_refreshed_fragments AJAX call bypasses your cache and the fix that keeps the mini-cart working.

79
MySQL Lock Wait Timeout Exceeded in Laravel
Database Optimization

MySQL Lock Wait Timeout Exceeded in Laravel

Still retrying jobs after a MySQL lock wait timeout exceeded error? Here's how to find the real blocking query in Laravel and fix it for good.

118
Fixing OpenAI API Timeouts in Laravel Jobs
AI and Backend Integration Laravel and PHP Development

Fixing OpenAI API Timeouts in Laravel Jobs

OpenAI API calls timing out inside your Laravel queue? Here's why jobs fail mid-request and how to set timeouts that actually agree with each other.

126
AI Refactoring: Breaking Up a God Class
AI for Developers

AI Refactoring: Breaking Up a God Class

A real AI refactoring workflow for breaking up a legacy god class safely: the prompts that work, and the ones that quietly break production.

123
Stream OpenAI API Responses in Node.js with SSE
AI and Backend Integration

Stream OpenAI API Responses in Node.js with SSE

Learn how to stream OpenAI API responses in Node.js using Server-Sent Events, with real Express code and the mistakes that break streaming in production.

119
React 'Maximum Update Depth Exceeded' Fix
React and Frontend Development

React 'Maximum Update Depth Exceeded' Fix

Fix React's Maximum update depth exceeded error for good: the two real causes, render-time setState and unstable useEffect deps, with working code fixes.

130
How to Reduce Your OpenAI API Costs
AI Prompt Engineering

How to Reduce Your OpenAI API Costs

Learn how to reduce your OpenAI API costs by cutting prompt token bloat, not quality, with a measurable code example and practical fixes today.

110
How to Upload Files in React and Node.js
Full-Stack Development

How to Upload Files in React and Node.js

A step-by-step guide to handling file uploads in a full-stack app: multipart form data in React, Multer on the Node.js API, and the mistakes that break it.

111
How to Fix Slow Zsh Startup Time
Developer Productivity

How to Fix Slow Zsh Startup Time

Fix slow zsh startup time by profiling with zprof, then resolving the real causes: compinit, eager tool sourcing, and bloated plugin lists today.

142
Fix OpenAI API Rate Limit Errors in Node.js
AI and Backend Integration Node.js and Backend Development

Fix OpenAI API Rate Limit Errors in Node.js

Get 429 rate_limit_exceeded errors from the OpenAI API in Node.js? Here is the real fix: exponential backoff, retry-after handling, and concurrency limits.

152
Fix PHP 'Allowed Memory Size Exhausted'
Laravel and PHP Development Debugging and Troubleshooting

Fix PHP 'Allowed Memory Size Exhausted'

PHP Allowed memory size exhausted fatal error, explained: what triggers it, the quick php.ini fix, and the chunk()/cursor() code fix that stops it recurring.

132