Sign in

Matthieu Napoli

@mnapoli.bsky.social
1.7K followers 178 following 418 posts

Building ▸ bref.sh ▸ bref.sh/cloud ▸ github.com/getlift ▸ port7777.com AWS serverless hero

PostsRepliesMedia
Matthieu Napoli @mnapoli.bsky.social · 22h
On Bref Cloud, opening a trace now also shows the logs for that invocation. Timeline above, logs below. Warnings, errors, and stack traces without jumping to CloudWatch or a separate log viewer.
Bref Cloud trace view showing timeline and invocation logs (WARNING, INFO, ERROR with stack) in the same page
011
Matthieu Napoli @mnapoli.bsky.social · 29/09/2026
Bref now has improved support and docs for multiple Laravel queues. Using multiple queues allows scaling independently, or having different limits or CPU/memory config. Useful for example to process "urgent" jobs separately from big batches, etc bref.sh/docs/larave...
bref.sh
Laravel Queues – Bref
Run Laravel Queues on AWS Lambda and SQS using Bref.
010
Matthieu Napoli @mnapoli.bsky.social · 28/09/2026
After being asked so many times, Bref finally has a guide to migrate from Laravel Vapor. It is mostly a config change, there should be almost no code change. bref.sh/docs/larave...
bref.sh
Migrating from Laravel Vapor – Bref
Migrate a Laravel application from Laravel Vapor to Bref and Bref Cloud, while keeping your database, cache, S3 bucket and domain.
030
Matthieu Napoli @mnapoli.bsky.social · 26/09/2026
Opus 5.5 is just incredible. It's Fable but I can't hit any limit. I'm fixing sooo many papercuts that accumulated on Bref over the last years. I have it working across dozens of repositories, code quality is excellent, I don't see how things can get any better than this 🤯
380
Matthieu Napoli @mnapoli.bsky.social · 25/09/2026
Large file uploads with Laravel and Bref is now easier than ever AWS Lambda caps uploads at ~4 MB. For larger files, you can upload straight to S3 from the browser. Bref now provides a direct integration making this very simple: bref.sh/docs/larave...
bref.sh
File storage – Bref
Bref is a framework to write and deploy serverless PHP applications on AWS Lambda.
020
Matthieu Napoli @mnapoli.bsky.social · 18/09/2026
I’ll be in London Monday and Tuesday. If you’ve set up an interesting workflow with AI let me know, I’d love to interview you (small podcast) Also always interested for coffee or beers! (I’ll miss the Laravel meetup 😢)
011
Matthieu Napoli @mnapoli.bsky.social · 16/09/2026
I'm building the next version of my ergonomic keyboard I'm considering making more than one, any interest? matrx.mnapoli.fr
matrx.mnapoli.fr
Matrx — An ergonomic keyboard without sacrificing keys or features.
A low-profile ergonomic mechanical keyboard. A split layout on one board, a full function row, hot-swappable switches and programmable keys.
221
Matthieu Napoli @mnapoli.bsky.social · 14/09/2026
I'm in externals for once 😛 externals.io/message/132498 Now time to work on that RFC
externals.io
RFC karma request - Externals
#externals - Opening PHP's #internals to the outside
031
Matthieu Napoli @mnapoli.bsky.social · 09/09/2026
I opened my first PR to PHP itself to merge `php-fpm` into `php` 🤞 github.com/php/php-src...
github.com
Add `--enable-cli-fpm` to link the FPM SAPI into the CLI binary (`php --fpm`) by mnapoli · Pull Request #23558 · php/php-src
This adds an opt-in configure option, --enable-cli-fpm, that links the FPM SAPI into the php binary. The binary behaves exactly like the CLI unless its first argument is --fpm, in which case it run...
060
Matthieu Napoli @mnapoli.bsky.social · 08/09/2026
A big unlock for me was giving Claude a way to test end to end. I.e. instead of thinking what permissions to open, I gave it an empty AWS account, credentials, a dedicated branch (sandbox) and environment, and let it use it fully. Then I restricted (keys, cost limits, alerts, daily cleanup, etc).
130
Matthieu Napoli @mnapoli.bsky.social · 07/09/2026
New on Bref Cloud: a Performance page on each environment. Slowest database queries, latency of every route, slowest jobs. Aggregated from traces of the last 30 days. Needs X-Ray Transaction Search. bref.sh/docs/monito...
010
Matthieu Napoli @mnapoli.bsky.social · 04/09/2026
I finally moved all my newsletters to www.mailcoach.app by @freekmurze, I love it. It's super simple to use, and does all I need. Fantastic job there!
mailcoach.app
Mailcoach - Powerful email marketing tools
Everything you need to start sending newsletters, drip campaigns, transactional emails. Mailcoach is a fully featured email marketing platform built for growing creators, developers, and businesses.
010
Matthieu Napoli @mnapoli.bsky.social · 03/09/2026
The Bref Cloud free plan is open again for non-commercial projects. If you were already on it, nothing changed. I had closed new signups while I ironed things out. It’s running smoothly now, so I’m happy to reopen it!
010
Matthieu Napoli @mnapoli.bsky.social · 02/09/2026
You can now create serverless databases in Bref Cloud. Aurora Serverless v2, MySQL or PostgreSQL. They scale up instantly, scale down on their own, and can pause when idle.
100
Matthieu Napoli @mnapoli.bsky.social · 01/09/2026
I built my first website 20 years ago. The free hosting finally died. Recovered the PHP 4/5 code, moved it to AWS Lambda with Bref. Shared hosting and CGI never died, poetic ending. vbsystemlibrary.mnapoli.fr
020
Matthieu Napoli @mnapoli.bsky.social · 31/08/2026
"isn't just a configuration option; it's load-bearing" finally found a way to unslop claude: github.com/mnapoli/ski...
010
Matthieu Napoli @mnapoli.bsky.social · 21/08/2026
Spent the evening re-re-building query strings handling in Bref. It's been historically challenging cause of weird behaviors by API Gateway _and_ PHP. All that to realize that those 100 lines of code could maybe be deleted… TL/DR: many tool/lang/frawemork handle it differently
110
Matthieu Napoli @mnapoli.bsky.social · 20/08/2026
I haven't sent a "Bref newsletter" in years 😬 Finally getting back into it, expect it every month. And it will be hand edited. AI is really helpful for gathering content but I hate reading AI, so I'll be very careful with that. bref.mailcoach.app/webview/cam...
010
Matthieu Napoli @mnapoli.bsky.social · 19/08/2026
Laravel 13 added fonts-manifest.json. I updated the default serverless.yml stub for new Bref apps. Existing apps don't get that automatically. If fonts break after upgrading, add these under package.patterns: - 'public/build/fonts-manifest.json' - 'public/build/assets/fonts-*.css'
020
Matthieu Napoli @mnapoli.bsky.social · 18/08/2026
bref.sh is now on Nextra v4 (up from v2). Nothing visible should change. It was a long upgrade with a few failed attempts, the kind of invisible work that has to happen eventually. Glad it's done.
bref.sh
Bref – Simple and scalable PHP with serverless
Bref is a framework to write and deploy serverless PHP applications on AWS Lambda.
120
Matthieu Napoli @mnapoli.bsky.social · 11/08/2026
My DeepCopy package should cross 1 billion downloads in ~ 6 months 💃 github.com/myclabs/Dee...
010
Matthieu Napoli @mnapoli.bsky.social · 10/08/2026
I revamped the Bref Cloud changelog (in anticipation for larger changes coming soon \o/), it's now public, more complete, with a RSS feed bref.cloud/changelog
bref.cloud
Bref Cloud - Serverless PHP made simple, with everything included
Deploy PHP applications on AWS Lambda for unlimited scalability and enterprise-grade reliability. Get all the power of serverless without the complexity.
010
Matthieu Napoli @mnapoli.bsky.social · 05/08/2026
Introducing Prereview for @phpstorm Review local changes: - human review: add inline comments like on GitHub - AI review: Codex + Claude Code review Then copy as prompt for your agent github.com/mnapoli/php...
github.com
GitHub - mnapoli/phpstorm-prereview: PhpStorm AI review
PhpStorm AI review. Contribute to mnapoli/phpstorm-prereview development by creating an account on GitHub.
110
Matthieu Napoli @mnapoli.bsky.social · 31/07/2026
Got secrets in local `.env`? Afraid of a compromised dependency or agent reading your filesystem? I built dotlock: - store secrets encrypted in `.env.secrets` - decrypted on the fly via `php artisan dev` github.com/mnapoli/dot...
github.com
GitHub - mnapoli/dotlock: Secure secrets for local Laravel development
Secure secrets for local Laravel development. Contribute to mnapoli/dotlock development by creating an account on GitHub.
132
Matthieu Napoli @mnapoli.bsky.social · 27/07/2026
If this benchmark is to be trusted, current frontier is: - grok 4.5 (high): cheap + fast - opus 5 (medium): best - fable 5 (high): if you're feeling fancy and forget the rest. Now time to see if Opus 5 is really that good. Source: cognition.com/frontiercode
010
Matthieu Napoli @mnapoli.bsky.social · 17/07/2026
yessss
240
Matthieu Napoli @mnapoli.bsky.social · 08/07/2026
I tried Fable extensively, I am blown away. Daily tasks are handled well, better than Opus but nothing too crazy. Complex tasks, risky features, etc -> Fable is insanely good. It codes better than
130
Matthieu Napoli @mnapoli.bsky.social · 07/07/2026
3 nice Bref updates: - zero-downtime deploys for website assets - public storage on S3 made simple - osls 4.0: resolved deprecations, hardened, supports SSO
140
Matthieu Napoli @mnapoli.bsky.social · 06/07/2026
Best job in the world… I hope the reports of its death are greatly exaggerated
170
Matthieu Napoli @mnapoli.bsky.social · 27/06/2026
I'm starting to really like Cursor automations: - CI broken on main -> create PR - Sentry error -> create PR - Review 1 random file every night -> post bugs found in Slack - Watch for new PHP releases (for Bref upgrades) etc.
010
Matthieu Napoli @mnapoli.bsky.social · 25/06/2026
Introducing VibePHP, a next-gen PHP runtime that runs on vibes and supports generics, async/await and more 🌀 github.com/mnapoli/vib... 🌀
575
Matthieu Napoli @mnapoli.bsky.social · 23/06/2026
Graphed my AI spend since 2024 lately it's mostly Cursor (main) + Claude, with a bit of OpenAI for ChatGPT and Gemini for specialized OCR
230
Matthieu Napoli @mnapoli.bsky.social · 02/06/2026
I rewrote externals.io to Laravel! (runs with Octane on Bref) 50% of requests under 5ms, p90 is 40ms 🚀 2.5M req/mo, costs: ~$2.5/mo + $11 for the database, staging costs $0 Open source on GitHub: github.com/mnapoli/ext...
github.com
GitHub - mnapoli/externals: Opening PHP's #internals to the outside
Opening PHP's #internals to the outside. Contribute to mnapoli/externals development by creating an account on GitHub.
210
Matthieu Napoli @mnapoli.bsky.social · 01/06/2026
Pest browser tests are way more insane than I thought. Classic browser tests hit a real server. Instead, Pest starts an HTTP server on the fly (random port) in the _same_ process as the test, and points chrome headless to it - no server to start
121
Matthieu Napoli @mnapoli.bsky.social · 01/06/2026
Conferences: steal this idea from Laravel Live Japan 🙏 no lunch buffet, lunch is outside with optional "lunch pairing" (groups of 4 ppl) - solo attendees meet people instead of eating alone - simpler org and cheaper tickets - eat better food (and local food when traveling)
110
Matthieu Napoli @mnapoli.bsky.social · 24/05/2026
I’m afraid this is just getting started. Supply chain hygiene is needed more than ever.
030
Matthieu Napoli @mnapoli.bsky.social · 21/05/2026
I have a Laravel app running serverless with Bref and generating PDF via chrome on Lambda. I added X-Ray to visualize it: 1 - the HTTP route (Laravel controller) invokes the pdf function synchronously and passes it a URL to render
100
Matthieu Napoli @mnapoli.bsky.social · 15/05/2026
I just realized that Laravel doesn't recognize "prod" (env name) as _production_ New Bref docs to address it: bref.sh/docs/larave...
bref.sh
Laravel environments – Bref
Configure Laravel environments and deployment environments with Bref.
030
Matthieu Napoli @mnapoli.bsky.social · 14/05/2026
I'm rewriting externals.io to Laravel, it's long overdue: github.com/mnapoli/ext...
github.com
Rewrite to Laravel by mnapoli · Pull Request #225 · mnapoli/externals
Rewrite from the PHP-DI + Bref/Micro framework to Laravel 13 on PHP 8.5. UI unchanged. Production deploy steps SSM params (one-time): add /externals/app_key with a fresh base64:… value (php artisa...
120
Reposted by Matthieu Napoli
AFUP @afup.org · 13/05/2026
L'IA a débarqué dans le quotidien des devs, il est dont évident que le Forum PHP 2026 en aura au programme. Mais quels sont les axes qui vous intéressent le plus autour du sujet ? Partagez avec nous vos attentes, vos envies, vos idées tout comme vos craintes, dans ce sondage anonyme.
buff.ly
Sondage IA générative - Forum PHP 2026
L’intelligence artificielle (LLM, Agents, etc ) prend chaque jour de plus en plus d’importance dans le quotidien des devs. Visant toujours à mieux accompagner la communauté dans l’évolution du…
002
Matthieu Napoli @mnapoli.bsky.social · 24/04/2026
I may have picked the wrong time to try Cursor again but I'm very pleasantly surprised! - very good app - picked up my Claude Code skills/commands - one subscription, all models - local projects, worktrees, cloud agents, all in one
220
Matthieu Napoli @mnapoli.bsky.social · 24/04/2026
New UI in Bref Cloud to go through Laravel failed jobs: list, retry, clear… bref.sh/cloud
020
Matthieu Napoli @mnapoli.bsky.social · 21/04/2026
I've been deep into genealogy research for the past year. As I collect more info, I want to render each family in my tree as a nice diagram. I built a free website that builds family trees and exports as images: family-tree-maker.mnapoli.fr It also works with Claude/ChatGPT via MCP
family-tree-maker.mnapoli.fr
Family Tree Maker — minimalist family tree diagrams
Create and share minimalist family tree diagrams. Web UI, HTTP API, and MCP server for ChatGPT & Claude — free, no signup.
121
Matthieu Napoli @mnapoli.bsky.social · 20/04/2026
Updated to my /address-pr-review skill: - fixes are automatically pushed to the PR - threads are marked as resolved (unless Claude disagrees: it will explain why) Btw this skill is awesome to let Claude review and other Claude fix, highly recommend github.com/mnapoli/ski...
github.com
GitHub - mnapoli/skill-address-pr-review: Claude skill that fixes PR comments and CI failures
Claude skill that fixes PR comments and CI failures - mnapoli/skill-address-pr-review
000
Matthieu Napoli @mnapoli.bsky.social · 13/04/2026
Configuring Bref to deploy Laravel storage S3 buckets got much simpler. S3 is simple, but large file uploads straight to S3 requires: - enabling S3 ACLs (deprecated feature, but Laravel still uses it) - enabling cors The new settings make it much simpler, here's a before/after.
140
Matthieu Napoli @mnapoli.bsky.social · 09/04/2026
I wrote a detailed blog post: mnapoli.fr/running-gith...
mnapoli.fr
Running GitHub Actions on a Mac Mini
I've been hitting the 2,000 free minutes/month limit on GitHub Actions for my private repos. Instead of paying for more minutes, I set up self-hosted runners on my Mac Mini M4 running as a server at home. CI jobs are now 4x faster and I have unlimited minutes.
041
Matthieu Napoli @mnapoli.bsky.social · 08/04/2026
I moved my GitHub Actions to runners on my Mac Mini, my CI just got muuuch faster. That works for me as a solo dev, I have 4 runners (could probably add 4 more). For teams I wouldn't recommend it tbh, I'd look into Depot CI or Runs-On, that'd make much more sense.
Bar graph comparing CI times for GitHub-hosted versus self-hosted Mac Mini runners, highlighting significant speed improvements in tests.
080
Matthieu Napoli @mnapoli.bsky.social · 07/04/2026
good thing I posted, I'm changing to this:
100
Matthieu Napoli @mnapoli.bsky.social · 06/04/2026
Instead of bloating environment variables, I've created an `envMap()` helper in Laravel config. This is for values that : - are not secrets - have hardcoded values depending on the environment Thoughts?
110
Matthieu Napoli @mnapoli.bsky.social · 03/04/2026
When you create a private network (VPC) with Bref Cloud, you can now copy the IP addresses used for outgoing traffic. e.g. if you need to configure an API to only accept traffic from your app's IP address
010