Publishing a PHP monorepo to Packagist with splitsh-lite

How waaseyaa went from a monorepo with 43 path-repository subpackages to individually installable Composer packages on Packagist using splitsh-lite.

March 25, 2026 · 6 min · Russell

AI-native PHP: the waaseyaa AI packages

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.

March 24, 2026 · 8 min · Russell

Testing a 48-package monorepo at scale

How in-memory implementations, a layered test strategy, and AI-assisted test generation keep a 48-package PHP monorepo testable.

March 22, 2026 · 6 min · Russell

i18n for a cultural platform

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.

March 21, 2026 · 6 min · Russell

Replacing a homegrown database layer with DBAL

How waaseyaa migrated from a homegrown PdoDatabase to Doctrine DBAL across 67 commits — and how all three applications upgraded without breaking.

March 20, 2026 · 6 min · Russell

I Migrated a Laravel App to a Custom PHP Framework in One Claude Code Session

How Claude Code built 3 framework packages, scaffolded a full application, and got 12 pages rendering — all in a single session.

March 19, 2026 · 5 min · Russell

JSON:API from Framework to SPA: Waaseyaa's API Layer

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.

March 19, 2026 · 6 min · Russell

Deny-unless-granted: access control in waaseyaa

How waaseyaa’s AccessPolicyInterface implements deny-unless-granted semantics with field-level access control — and how GitHub milestones kept it from scope-creeping.

March 18, 2026 · 5 min · Russell

Building a temporal layer so your AI never lies about time

How Claudriel’s temporal subsystem pins time per request, resolves timezones from context, and detects clock drift before it corrupts AI reasoning.

March 17, 2026 · 8 min · Russell

The entity system at the heart of Waaseyaa

How waaseyaa’s EntityInterface, ContentEntityBase, and field system work — and how the entity-system specialist skill made cross-session development possible.

March 16, 2026 · 5 min · Russell