How we build multi-tenant Laravel apps: schema per tenant vs. row-level scoping
Row-level scoping or a PostgreSQL schema per tenant? How we choose, the code that enforces it and the tests that prove no tenant can see another's data.
Practical articles from the team that builds our client platforms and our own products: architecture, performance, AI-assisted development and the business side of software.
Practical articles on architecture, performance, AI-assisted development and the business side of software.
Row-level scoping or a PostgreSQL schema per tenant? How we choose, the code that enforces it and the tests that prove no tenant can see another's data.
Small WordPress plugins used to be safe because nobody looked. AI ended that. Your real security posture is release speed and update rates.
Frontier models now pass Laravel's Boost benchmark. The harder test is whether the code is idiomatic, and most stacks can't measure that.
A customer quoted refund terms that weren't mine or Paddle's. I refunded anyway, because with a merchant of record I'm not the merchant.
Copy-paste fixes, production hacks and "we'll refactor later" came first. AI just speeds slop up, and now agents write it too.
Direct settlement, subscriptions from one wallet approval and gas paid in USDC: notes from building our own payments product.
LCP, INP and CLS for Laravel and Inertia apps with React: how to read field data, then the fixes that usually move the numbers, in the order we try them.
Newsletter