PHP async: event loop, Fibers and the limits of single-threading
PHP can do what Node.js does: jump between tasks on a single thread. ReactPHP, PHP 8.1 Fibers, and why this doesn't replace real parallelism.
Lessons learned, problems and solutions
PHP can do what Node.js does: jump between tasks on a single thread. ReactPHP, PHP 8.1 Fibers, and why this doesn't replace real parallelism.
Google Search Console showed 0 indexed articles after 3 weeks. A look at the fixes: JSON-LD with articleBody via output buffering, PHP-generated ToC with stable IDs, and hybrid PHP/JS crawlable pagination.
Hands-on report of an authorized web pentest on a private BitTorrent tracker: Nuxt.js SSR + Node.js behind Cloudflare WAF. 3 findings (CORS, unbounded chat history, NUXT_DATA), Playwright trick for WebSockets, and what Cloudflare doesn't protect against.
Step-by-step guide to testing paid ads on a dev blog with €10: targeting recruiters and the Go/PHP community, writing ads that don't scare off Redditors, measuring ROI. Google Ads vs Reddit Ads.
A specialized CLAUDE.md file to guide Claude Code on responsive mobile and CSS design. Ready to copy into your project.
Text alignment, 44px touch targets, input font-size, safe areas, mobile-first media queries — concrete CSS rules for consistent and usable mobile rendering.
I built ShareBox: self-hosted file sharing in PHP 8.1 with no framework, SQLite, and FFmpeg for adaptive video streaming. The technical choices and what it taught me about the zero-dependency philosophy.
SFTP capped at 800 KB/s on a Gbit link. CUBIC, default ring buffers, misconfigured socket buffers — five kernel and daemon tweaks that bring throughput from 800 KB/s to several MB/s.
Implementing an append-only event store in Go with PostgreSQL: es_events table, subscriptions for projectors, replay from any point. No need for EventStoreDB.
How to make two aggregates cooperate without knowing each other. Cross-aggregate event handlers, saga idempotency, partial failure handling.