Real-time messaging with Mercure SSE in PHP
How to build a real-time messaging system with Mercure server-sent events, covering threads, user blocking, and email digests.
How to build a real-time messaging system with Mercure server-sent events, covering threads, user blocking, and email digests.
How to use preSave, postSave, preDelete, and postDelete hooks in Waaseyaa, with automatic pre-save validation and saveMany/deleteMany batch operations.
How waaseyaa went from a monorepo with 43 path-repository subpackages to individually installable Composer packages on Packagist using splitsh-lite.
What ai-schema, ai-agent, ai-pipeline, and ai-vector enable in a PHP framework designed for AI from the ground up, and an honest look at what’s built versus what’s planned.
How a Waaseyaa site goes from composer create-project to production HTTPS in 11 minutes — and the deployment patterns shared across all Waaseyaa applications.
How in-memory implementations, a layered test strategy, and AI-assisted test generation keep a 48-package PHP monorepo testable.
How waaseyaa’s i18n package handles language negotiation and multilingual entities — built for an indigenous cultural platform where language isn’t a feature, it’s the point.
How waaseyaa migrated from a homegrown PdoDatabase to Doctrine DBAL across 67 commits — and how all three applications upgraded without breaking.
How waaseyaa’s JSON:API layer works — ResourceSerializer, SchemaPresenter, and how Tier 3 specs let a new session pick up mid-feature without re-explaining the whole contract.
How waaseyaa’s AccessPolicyInterface implements deny-unless-granted semantics with field-level access control — and how GitHub milestones kept it from scope-creeping.