Matthieu Napoli

@mnapoli.bsky.social

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

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

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.

Bild

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

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)

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

Bild

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.

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…

buff.ly

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

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 — minimalist family tree diagrams

Create and share minimalist family tree diagrams. Web UI, HTTP API, and MCP server for ChatGPT & Claude — free, no signup.

family-tree-maker.mnapoli.fr

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 - 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

github.com

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.

Bild

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.

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?

Bild

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

Bild