Journal
Notes on development, case studies and personal opinions.
Web host down for two days: what to do now and how to keep backups your provider can't take down with it
When your web host goes down and stays down, check two things first: who your domain registrar is and where your latest backup lives. That decides whether you move now or wait. Three scenarios from the November 2026 Beget outage, plus a 3-2-1-1-0 setup on S3 Object Lock with working scripts.
PHP2Shell: what to do if your site still runs old PHP
PHP2Shell is two critical PHP vulnerabilities that allow remote code execution without logging in. They are fixed in PHP 8.2.35, 8.3.36, 8.4.27 and 8.5.12; PHP 8.1 and older get no updates from the PHP project. How to check your site, and what to do when a quick update is not an option.
When Yandex Metrica went down: running self-hosted Umami as backup analytics
In October 2026 the Yandex Metrica, Direct and Webmaster dashboards stayed offline for days. How a self-hosted Umami instance kept my reports reachable, how I hid it from ad blockers, why every goal goes to both systems from one function, and how to keep ad conversions flowing from the server.
WordPress hacked again after cleanup: a real backdoor case study
WordPress hacked again after cleanup? A real case: 7 backdoors across 4 layers are why the hack kept coming back after hosting cleanups for years. What to do, in order, and how to find them: core checksum diffs, direct SQL queries, a manual mu-plugins audit.
The Mirror, Not the Advisor: A Jungian AI Agent and My Own Boundaries With AI
I built myself a Jungian psychoanalyst agent that never gave advice, only reflected my own thoughts back at me from a different angle. An honest opinion on where AI helps and where it quietly takes over decisions that should stay yours, written without a single prompt.
Building an online store on WordPress with Claude Code: a budget case with 1C ERP integration
How I built and deployed a WooCommerce store with Claude Code: MCP servers for SSH deploys and live Playwright checks, rules in CLAUDE.md, real-time sync with a 1C ERP, and the bugs the agent caused along the way.
Multi-Region Architecture for a Bitrix E-commerce Store: 27 Cities on Subdomains
Regional subdomains for 27 cities: an explicit domain list instead of wildcard routing, SEO duplicate protection, returning users to their city, and isolating a CRM portal on the same server.
Cache Warmup Architecture for a 200k SKU Catalog
An uncached page took 2.5 seconds to build, and warming a 200k-product catalog in full would take tens of hours. How I picked 318 URLs out of 7329, warmed them with throttling on cron, and got a 190 ms response. Scripts included.
High-Load E-commerce Optimization: DB Locks, CRM Crashes and AI Bot Attacks
A Bitrix store slowed down: the database locked up during stock updates, the mobile CRM showed blank screens, and AI crawlers ate every worker through the faceted filter. What caused each problem and how I closed them.
Redis Optimization for Bitrix: Background Tag Cleanup Without Session Loss
Redis on a Bitrix store hit 977 MB of a 1 GB limit. Why FLUSHDB is the wrong fix, how to find what fills the memory, and how to clean the cache by key pattern without logging users out. Scripts and a setup checklist.
WordPress critical error after a PHP 8.3 update: a recovery case and a fix checklist
The site and the admin went down after a PHP 8.3 switch. How I got access back without the dashboard, which plugin broke, why Yoast lost its tables, and a step-by-step checklist for the same error on your site.
SPA Deployment: Fixing Build Conflicts and Infinite Redirect Loops
The build failed with ERESOLVE, the server looped HTTPS redirects forever, and analytics clashed with form inputs. Where each of these SPA deployment problems comes from on a React and Vite app, and how I fixed them.
Legacy Bitrix Adaptation for PHP 8: Fixing Core Errors and Admin Panel
After a legacy 1C-Bitrix site moved to a PHP 8 server, the admin returned 500, imports died with TypeError and block drag-and-drop froze. Each error, the code and SQL fixes, and the order in which to move an old Bitrix project to PHP 8.