Matthieu Napoli
banner
mnapoli.bsky.social
Matthieu Napoli
@mnapoli.bsky.social
Building
▸ bref.sh
https://bref.sh/cloud
https://github.com/getlift
https://port7777.com
AWS serverless hero
Pinned
✦ Bref Cloud is live ✦

Modern PHP hosting should be simple: instantly scalable, redundant, monitored, and secure.

Get the best of AWS and serverless with an intuitive dashboard and CLI. No need to become an AWS expert

try it out ↓
bref.sh/cloud
Bref Cloud - Serverless PHP hosting on AWS Lambda - powerful, scalable, simple – Bref
Deploy PHP applications on AWS Lambda for unlimited scalability and enterprise-grade reliability. Get all the power of serverless without the complexity.
bref.sh
I tested StageHand for writing high level tests.
Interesting but I think we need even higher level tests today. I don't think it's the right tool for this.
docs.stagehand.dev/v3/first-st...
February 2, 2026 at 12:57 PM
Prototyped a MCP server that lets agents use high-level tools instead of grep/edit:
- rename class/…
- find definition
- find usage
Used phpactor under the hood.

It works, but phpactor is nowhere as good as PhpStorm or PhpStan to understand codebases. Back to square one.
January 28, 2026 at 11:23 PM
I'm not the kind to spend days tweaking the terminal UI and themes
but I played with it this weekend and that font and theme in claude 🤌🤌

Font is "Space Mono for Powerline"
TIL about Powerline too (theme is Nord Aurora)
And the Claude status line: github.com/sirmalloc/c...
January 27, 2026 at 2:57 PM
I create an app to follow Claude Pro or Max subscription usage

Other apps I tested either report $$ usage that doesn't match the fixed cost of the Pro/Max plan, or unrealistic percentage. This app gets the data straight from your Claude account page.

github.com/mnapoli/cla...
January 26, 2026 at 12:56 PM
New Laravel package:
add `temporaryUploadUrl()` support to the local storage

If you use S3 in production, you probably use `temporaryUploadUrl()`. That package adds support for that locally so that you don't have to adapt your code.

github.com/mnapoli/lar...
GitHub - mnapoli/laravel-local-temporary-upload-url
Contribute to mnapoli/laravel-local-temporary-upload-url development by creating an account on GitHub.
github.com
January 23, 2026 at 1:02 PM
I created the Serverless Visually Explained course 6 years ago.
It's now free!

If you want concrete JS and PHP examples, with live animations, and no-bullshit explanations on what serverless is, you can click and read.

serverless-visually-explained.com/
Serverless Visually Explained - Get started with serverless today
Serverless leaves you confused? Forget the marketing BS and verbose documentation. This course teaches you actual use cases, illustrated with interactive simulations and working code examples.
serverless-visually-explained.com
January 19, 2026 at 1:02 PM
Tested OpenCode vs Claude Code:
Claude wrote better code, 2× faster, 30% cheaper

I asked both to implement the same plan:
- Claude: 14 min, ~191k tokens
- OpenCode: 27 min, ~278k tokens

Quality was close (and good), Claude slightly better overall.
January 12, 2026 at 1:00 PM
Trying OpenCode:
- incompatible with Warp, had to switch to Ghostty 👎
- migration from Claude Code sucks, nothing automatic
- the UX is great 👍 (lost some Warp shortcuts though)
- no Claude Code web 👎
Total migration time: ~3 hours 😢

Now testing "is it actually better than CC?"
January 11, 2026 at 7:56 PM
In 2014 I was all about dependency injection
now I'm arguing *against* DI in many scenarios

Would this make for a good talk? How 🌶️ should it be?
December 31, 2025 at 12:44 PM
I just discovered `modeltyper` to automatically generate TypeScript types from Eloquent models, works great!

github.com/fumeapp/mod...
GitHub - fumeapp/modeltyper: Generate TypeScript interfaces from Laravel Models
Generate TypeScript interfaces from Laravel Models - fumeapp/modeltyper
github.com
December 30, 2025 at 1:00 PM
Worked on a Claude skill so that one could ask "set up Bref" in any PHP project.

It _looked_ awesome: Claude would analyze the project, ask questions, etc. But it's a fail. As usual, Claude just invents options, doesn't follow the script reliably, uses its outdated knowledge…
December 29, 2025 at 3:58 PM
Application diagrams are live in Bref Cloud ✨

They'll help understand how serverless applications run in AWS:
- CloudFront CDN
- S3 for assets
- PHP runs on Lambda
- SQS queues…

Metrics are live: requests, latency, scaling, errors…

beautiful design by @nunowar!
December 1, 2025 at 5:14 PM
GitHub notifications now end up on my desk
November 19, 2025 at 12:58 PM
Claude Code users (especially Laravel/Symfony): you REALLY want to re-install Claude

Latest Claude versions will load your `.env` (including secrets!) into Claude Code. Claude then runs your tests with local config instead of testing config!
November 16, 2025 at 4:21 PM
At least Claude is honest I guess
November 16, 2025 at 2:07 PM
I often get asked about the differences between serverless and containers/servers

I updated Bref docs to be much more upfront about what to expect to migrate to serverless.

Am I missing something? What's unclear?
You can comment the PR here: github.com/brefphp/bre...
Docs here: bref.sh/docs
November 12, 2025 at 12:59 PM
My talk at PHPers in Poland is up!
Watch PHP scale on AWS Lambda in real time, link to the timestamp 👇
youtu.be/fNTgMshDLSw...
PHP serverless: how it actually works - Matthieu Napoli
Started in 2017, Bref is an open-source project that helps run PHP serverless on AWS. Today, Bref is used by thousands of companies and handles over 10 billi...
www.youtube.com
November 6, 2025 at 2:03 PM
Playing with an idea for PHP: auto-escaping untrusted strings in SQL queries.

What do we think about this idea? 👇
github.com/mnapoli/aut...
October 20, 2025 at 12:00 PM
Crossed 2000 pull requests in bref.sh 💪
Bref – Simple and scalable PHP with serverless
Bref is a framework to write and deploy serverless PHP applications on AWS Lambda.
bref.sh
September 16, 2025 at 12:02 PM
That moment when you learn that one of the most well known and respected company on the internet uses Bref… but that they don't allow sharing the name 🥹
September 15, 2025 at 4:00 PM
SWIFT bank transfer blocked: "Please provide complete name"

"Null" *is* my company name…

Happened before to receive payments, now it's for paying others 😂
Also banks communicate via these printed protocols wtf
September 15, 2025 at 12:03 PM
New: run Laravel Tinker in AWS Lambda 🎉

Documentation: bref.sh/docs/larave...
September 12, 2025 at 11:57 AM
New post: Optimizing Laravel cold starts on AWS Lambda

I looked into pre-compiling opcache before deploying

mnapoli.fr/optimizing-...
Optimizing Laravel cold starts on AWS Lambda
This article is based on my notes after experimenting with caching as much as possible before deploying a Laravel application to AWS Lambda using Bref. The goal was to optimize AWS Lambda cold starts, without slowing down warm invocations.
mnapoli.fr
September 9, 2025 at 1:58 PM
Small improvements to the X-Ray bridge: there's a changelog (
bref.sh/xray/changelog), and Laravel's HTTP client is now automatically traced 💪
September 8, 2025 at 7:13 PM
So cool, my talk at DutchPHP is finally up!

This one was special for me for 2 reasons: I launched Bref Cloud during the talk, and a bit of a personal story at the end (with the floppy disks) ❤️

www.youtube.com/watch?v=yGL...
PHP serverless: how it actually works by Matthieu Napoli
We are happy to share this inspiring talk from The Dutch PHP Conference 2025!
www.youtube.com
September 1, 2025 at 3:00 PM