The notebook
Blog.
notes from real projects
Practical writing on Laravel, AI engineering, token costs, SaaS architecture, and the technology decisions that make software cheaper to run and easier to grow.
All posts
113 posts
31 May 2026
Laravel & PHP
Filament v5 in Production: Admin Panels in Days, Not Weeks
What v5's unified schema, native multi-tenancy, and slimmer JS bundle change in practice, with real hour counts from client admin builds. Includes the boundary line: the customizations where...
→
28 May 2026
Laravel & PHP
A Pragmatic Pest Testing Strategy for Laravel Client Projects
What to test when the budget is fixed: feature-tests-first ratios, which units earn dedicated tests, and how Pest's architecture presets and mutation testing fit a solo-freelancer CI. A cand...
→
27 May 2026
SaaS & Product
What an MVP Really Costs in 2026: Numbers From Real Projects
Quotes for the same MVP idea range from €15k to €150k — and most of them are honest. The scope tiers, the AI surcharge and the hidden 20–35% that explain the spread.
→
25 May 2026
Laravel & PHP
Laravel Sanctum vs Passport: Picking API Auth in 2026
The 90/10 rule — Sanctum for SPAs, mobile, and first-party tokens; Passport only when you are genuinely an OAuth2 authorization server for third parties. Includes token-ability patterns, tes...
→
22 May 2026
Laravel & PHP
Laravel API Versioning and Resource Design That Ages Well
URL-based versioning with per-version controllers and API Resources, and when Laravel 13's first-party JSON:API support is worth adopting over hand-rolled resources. Framed around the freela...
→
20 May 2026
Industry Insights
Interview the engineer before you sign
Most agencies will never let you interview the engineer who will build your product. Here is why that matters, what to ask in 45 minutes, and the code test I would happily take myself.
→
19 May 2026
Laravel & PHP
Laravel Queues at Scale: Horizon Tuning and Idempotent Jobs
The failure modes that only show up past ~100k jobs/day: retry_after vs timeout mismatch causing duplicate processing, queue starvation, and non-idempotent retries. Concrete Horizon supervis...
→
16 May 2026
Laravel & PHP
End-to-End Type Safety with Laravel, Inertia, and React
A practical wiring guide: laravel-data + TypeScript Transformer to push typed DTOs from PHP 8.4 to React props, catching contract drift at build time instead of in production. Shows the exac...
→
16 May 2026
Industry Insights
Working across a 10-hour time difference, honestly
The time difference is the first question US clients ask me. The honest answer: it breaks some workflows, quietly improves others, and lives or dies on async discipline.
→
13 May 2026
Laravel & PHP
Livewire vs Inertia in 2026: How I Choose for Client Projects
A decision framework based on product shape (content site vs tool), team JS skill, and future API needs — not framework hype. Grounded in Livewire 4 / Inertia 3 realities and the freelance a...
→
10 May 2026
Laravel & PHP
PHP 8.4 Property Hooks in Laravel: Wins, Traps, and Refactors
Where hooks and asymmetric visibility genuinely shrink code (DTOs, value objects, form objects) versus where they collide with Eloquent's magic accessors and hydration side effects. Includes...
→
09 May 2026
Industry Insights
What "dedicated developer" actually means when you buy it
"Dedicated developer" can mean one engineer on your backlog — or a rotating seat shared across three accounts. How to tell which one you are actually buying, before you sign.
→