From scaffold to live site in 11 minutes

How a Waaseyaa site goes from composer create-project to production HTTPS in 11 minutes — and the deployment patterns shared across all Waaseyaa applications.

March 23, 2026 · 6 min · Russell

AI strips your voice because it doesn't know what to protect

Stop AI from stripping your writing voice. Encode your style rules, review the output, and feed corrections back in.

March 22, 2026 · 7 min · Russell

Claudia: An AI Chief of Staff That Runs on Claude Code

Claudia turns Claude Code into a personal chief of staff that remembers your relationships, tracks your commitments, and helps you make better decisions.

March 22, 2026 · 5 min · Russell

Flag untriaged GitHub issues automatically with Claude Code hooks

Use a Claude Code startup hook to surface untriaged GitHub issues and stale milestones before you write any code.

March 22, 2026 · 5 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