Blog

Notes from the workshop

Technical decisions, lessons learned, and some of what happened along the way.

September 24, 2026 · 6 min read

When Spreadsheets Stop Working: When to Replace Excel with Custom Software

Spreadsheets can work for years. Learn when the process around Excel has become a business problem, and when custom software is—or is not—the right next step.

August 21, 2026 · 7 min read

Webhooks or polling: how to choose without overcomplicating an integration

A practical comparison of webhooks and polling: latency, retries, duplicates, security, cost, and when combining both approaches makes sense.

August 14, 2026 · 5 min read

Not everything needs microservices

When microservices make sense, what operational costs they add, and why a modular monolith is often a better place to start and scale.

August 7, 2026 · 5 min read

Custom software without turning the project into a feature factory

How to scope custom software without piling on features: evaluate requests, exceptions, manual work, and the long-term cost of every component.

July 31, 2026 · 5 min read

Weather alerts by field: why a general forecast isn't always enough

Why regional forecasts can fall short and how field-level weather alerts turn thresholds for rain, wind, or frost into timely, useful notifications.

July 24, 2026 · 7 min read

An API integration doesn't end when it returns 200 OK

How to design reliable API integrations for retries, idempotency, webhooks, rate limits, monitoring, and recovery beyond the happy path.

July 17, 2026 · 4 min read

How to import a production WordPress site locally without breaking serialized data

How to copy WordPress from production to local without breaking serialized data, triggering live services, or carrying over generated files.

July 10, 2026 · 3 min read

Why we built Docal instead of using DDEV or Lando

Why we built Docal for a specific WordPress-on-WSL2 workflow, what it automates, and when DDEV or Lando remain the better choice.

July 3, 2026 · 5 min read

Core Web Vitals: what to optimize when Lighthouse isn't enough

How field data helps diagnose LCP, INP, and CLS when Lighthouse cannot explain the performance problems real users experience.

June 26, 2026 · 5 min read

Migrating a large WooCommerce store without losing orders or customers

How to migrate an active WooCommerce store safely: cutover timing, DNS, payments, cron, integrations, validation, and a rollback plan.

June 19, 2026 · 3 min read

When WordPress is enough—and when to move beyond the CMS

Which projects fit WordPress, what signals show the CMS is becoming a constraint, and how to consider alternatives without rebuilding everything.

June 12, 2026 · 5 min read

Local WordPress on WSL2: fewer layers, fewer problems

How to run WordPress locally on WSL2 with fewer layers: Linux filesystems, Docker, HTTPS, WP-CLI, and a repeatable production import workflow.

June 5, 2026 · 5 min read

How to integrate systems that were never designed to work together

How to integrate systems with different data models: sources of truth, identifiers, failures, retries, and processes to fix before automating.