Journal

Notes on development, case studies and personal opinions.

HostingBackupsSecurityMySQL

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.

3 recovery scenarios and a backup no user can delete·2026-11-03
PHP 8SecurityWordPressBitrix

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.

A one-minute patch, or a migration project·2026-10-27
AnalyticsUmamiYandex MetricaPrivacy

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.

Reports available while Metrica was down·2026-10-16
WordPressSecurityMySQL

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.

7 backdoors across 4 layers, found and closed·2026-08-23
OpinionReflectionsAIPsychologyPrompts

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.

Written without AI, credits, or tokens·2026-08-21
WordPressWooCommerce1CClaude Code

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.

$0 in licenses, live in weeks·2026-07-19
BitrixNginxPHPSEO

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.

27 cities, 0 duplicates·2026-07-08
1C BitrixBashRedis

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.

Server response 190ms·2026-06-01
BitrixVMRedisNginxMySQL

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.

+40% server response speed·2026-03-15
BitrixRedisBash

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.

97% RAM freed·2026-01-20
WordPressPHP 8.3MySQL

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.

Uptime 99.99%·2025-11-10
ReactViteNginx

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.

+14% form conversion·2025-09-05
PHP 8BitrixRefactoring

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.

100% admin panel stability·2025-07-18