41554 blogs Β· [ { "id": "01a087a7-c43b-7343-a658-dff5648bfcd1", "title": "Running GitHub Actions on a Mac Mini", "url": "https://mnapoli.fr/running-github-actions-mac-mini/", "published_at": "2026-04-09T10:32:00+00:00" }, { "id": "01a0bb96-0283-73da-b5f3-1e837aaee983", "title": "Bref 3.0 is released πŸŽ‰", "url": "https://bref.sh/news/03-bref-3.0", "published_at": "2026-02-26T00:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff564b55984", "title": "Optimizing Laravel cold starts on AWS Lambda", "url": "https://mnapoli.fr/optimizing-laravel-aws-lambda/", "published_at": "2025-09-08T12:32:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff564e6eba1", "title": "Fixing error handling in Inertia.js", "url": "https://mnapoli.fr/fixing-inertia-error-handling/", "published_at": "2025-03-31T10:32:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff565253a0f", "title": "Using FFmpeg with PHP on AWS Lambda", "url": "https://mnapoli.fr/ffmpeg-with-php-on-aws-lambda/", "published_at": "2024-10-03T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff565743d62", "title": "Using PlanetScale with Serverless Framework Node applications on AWS", "url": "https://planetscale.com/blog/using-planetscale-with-serverless-framework-node-apps-on-aws", "published_at": "2023-06-13T00:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff566346ce4", "title": "Serverless Laravel applications with AWS Lambda and PlanetScale", "url": "https://planetscale.com/blog/serverless-laravel-app-aws-lambda-bref-planetscale", "published_at": "2023-05-03T00:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56699cb0f", "title": "Bref 2.0 is released πŸŽ‰", "url": "https://bref.sh/docs/news/02-bref-2.0.html", "published_at": "2023-03-03T00:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff566c86bef", "title": "Simpler single-file AWS CDK deployments", "url": "https://mnapoli.fr/single-file-cdk/", "published_at": "2023-01-02T16:32:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff569a29f47", "title": "Serverless queues and workers β€” Designing Lift", "url": "https://medium.com/serverless-transformation/serverless-queues-and-workers-designing-lift-d870afdba867", "published_at": "2021-04-30T00:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff569d885dc", "title": "Static websites on AWS β€” Designing Lift", "url": "https://medium.com/serverless-transformation/static-websites-on-aws-designing-lift-1db94574ba3b", "published_at": "2021-04-16T00:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56ad69fb8", "title": "Open-source funding in 2020", "url": "https://mnapoli.fr/2020-open-source-funding/", "published_at": "2021-01-21T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56ad8805c", "title": "AWS Lambda can now run PHP using Docker Containers", "url": "https://mnapoli.fr/aws-lambda-php-docker-containers/", "published_at": "2020-12-01T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56add0f64", "title": "Bref 1.0 is released πŸŽ‰", "url": "https://bref.sh/docs/news/01-bref-1.0.html", "published_at": "2020-11-16T00:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56bb9b5bc", "title": "Email alerts on SQS dead letter queues", "url": "https://mnapoli.fr/sqs-dead-letter-queue-alarm/", "published_at": "2020-10-07T13:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56c4c8506", "title": "Open-source funding in 2019", "url": "https://mnapoli.fr/2019-open-source-funding/", "published_at": "2020-03-03T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56d2f928d", "title": "Serverless PHP: frequently asked questions", "url": "https://mnapoli.fr/serverless-php-faq/", "published_at": "2019-11-21T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56d53ea52", "title": "From LAMP to serverless: case study of externals.io", "url": "https://mnapoli.fr/serverless-case-study-externals/", "published_at": "2019-08-11T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56dd332b0", "title": "Bref is backed by null, the company", "url": "https://mnapoli.fr/bref-is-backed-by-null/", "published_at": "2019-06-06T12:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56eb4fb35", "title": "Serverless case study: PrettyCI and Laravel Queues", "url": "https://mnapoli.fr/serverless-case-study-prettyci/", "published_at": "2019-03-21T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56f7ae1ad", "title": "HTTP performances with Bref v0.3", "url": "https://mnapoli.fr/http-performance-bref-0-3/", "published_at": "2019-02-10T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff56f954ed8", "title": "Launching the Serverless PHP newsletter", "url": "https://mnapoli.fr/serverless-php-newsletter/", "published_at": "2019-01-07T12:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff570858298", "title": "Serverless case study: returntrue.win", "url": "https://mnapoli.fr/serverless-case-study-returntrue/", "published_at": "2018-10-29T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff5712adf3b", "title": "Serverless Laravel", "url": "https://mnapoli.fr/serverless-laravel/", "published_at": "2018-05-25T12:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff571a9b915", "title": "Serverless and PHP: Performances", "url": "https://mnapoli.fr/serverless-php-performances/", "published_at": "2018-05-24T12:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff571face9e", "title": "Serverless and PHP: introducing Bref", "url": "https://mnapoli.fr/serverless-php/", "published_at": "2018-05-17T12:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff57249800d", "title": "Organizing code into domain modules", "url": "https://mnapoli.fr/organizing-code-into-domain-modules/", "published_at": "2017-11-26T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff5727fbf0b", "title": "My \"speaker checklist\"", "url": "https://mnapoli.fr/speaker-checklist/", "published_at": "2017-11-02T10:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff5733335ab", "title": "Using non-breakable spaces in test method names", "url": "https://mnapoli.fr/using-non-breakable-spaces-in-test-method-names/", "published_at": "2017-06-19T10:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff57367b619", "title": "Using anonymous classes to write simpler tests", "url": "https://mnapoli.fr/anonymous-classes-in-tests/", "published_at": "2017-01-15T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff57451db5f", "title": "Approaching coding style rationally", "url": "https://mnapoli.fr/approaching-coding-style-rationally/", "published_at": "2015-11-12T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff5748d038e", "title": "Silly CLI 1.1 comes with dependency injection", "url": "https://mnapoli.fr/silly-cli/", "published_at": "2015-04-12T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff5755b8f42", "title": "Test against the lowest Composer dependencies on Travis", "url": "https://mnapoli.fr/test-lowest-dependencies/", "published_at": "2014-12-17T18:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff575f01d30", "title": "Decoupling packages", "url": "https://mnapoli.fr/decoupling-packages/", "published_at": "2014-09-21T23:00:00+00:00" }, { "id": "01a087a7-c43b-7343-a658-dff57650df72", "title": "A retrospective on open sourcing projects at MyΒ C-Sense", "url": "https://mnapoli.fr/retrospective-mycsense-open-source/", "published_at": "2014-07-01T18:00:00+00:00" }, { "id": "01a087a7-c450-71e1-91d3-8a3ab507157d", "title": "The Collection interface and Database abstraction", "url": "https://mnapoli.fr/collection-interface-and-database-abstraction/", "published_at": "2014-03-27T18:00:00+00:00" }, { "id": "01a087a7-c452-71ac-933c-947d87e857a7", "title": "The Repository interface", "url": "https://mnapoli.fr/repository-interface/", "published_at": "2014-03-10T18:00:00+00:00" }, { "id": "01a087a7-c455-7204-b6bc-f5f5d315bf2c", "title": "Working with mails in dev environment", "url": "https://mnapoli.fr/working-with-mails-in-dev-environment/", "published_at": "2013-09-23T16:32:00+00:00" }, { "id": "01a087a7-c455-7204-b6bc-f5f5d3e4e5b3", "title": "Using MetaModel and MetaConsole to debug your application", "url": "https://mnapoli.fr/using-metamodel-and-metaconsole-to-debug-your-application/", "published_at": "2013-09-13T16:08:00+00:00" }, { "id": "01a087a7-c455-7204-b6bc-f5f5d4aecdf2", "title": "Running composer install when you switch branch", "url": "https://mnapoli.fr/run-composer-install-when-you-switch-branch/", "published_at": "2013-09-09T17:03:00+00:00" }, { "id": "01a087a7-c455-7204-b6bc-f5f5d51c54ae", "title": "I herd you like tests", "url": "https://mnapoli.fr/i-herd-you-like-tests/", "published_at": "2013-08-22T16:17:00+00:00" }, { "id": "01a087a7-c455-7204-b6bc-f5f5d5514cfa", "title": "Friend services?", "url": "https://mnapoli.fr/friend-services/", "published_at": "2013-08-09T17:03:00+00:00" }, { "id": "01a087a7-c455-7204-b6bc-f5f5d5cc5ecc", "title": "Controllers as services?", "url": "https://mnapoli.fr/controllers-as-services/", "published_at": "2013-07-01T20:00:00+00:00" }, { "id": "01a087a7-c455-7204-b6bc-f5f5d5ea45fb", "title": "Should you really write ugly code? Spoiler: no", "url": "https://mnapoli.fr/should-you-really-write-ugly-code-no/", "published_at": "2013-06-09T20:00:00+00:00" }, { "id": "01a087a7-c455-7204-b6bc-f5f5d647870e", "title": "Code coverage reports with GitHub, Travis and Coveralls", "url": "https://mnapoli.fr/code-coverage-reports-with-github-travis-and/", "published_at": "2013-06-08T20:00:00+00:00" }, { "id": "01a087a7-c456-7350-8ab3-3f5e206364b7", "title": "Overriding dependencies with Composer", "url": "https://mnapoli.fr/overriding-dependencies-with-composer/", "published_at": "2013-04-16T20:00:00+00:00" }, { "id": "01a087a7-c457-70a2-96da-8e7fa0cf5d95", "title": "The β€œOptional Singleton” pattern", "url": "https://mnapoli.fr/the-optional-singleton-pattern/", "published_at": "2013-03-22T20:00:00+00:00" }, { "id": "01a087a7-c457-70a2-96da-8e7fa1c22418", "title": "jQuery plugin: Confirm dialogs for HTML links and buttons", "url": "https://mnapoli.fr/confirm-dialogs-for-html-links-and-buttons/", "published_at": "2013-03-05T20:00:00+00:00" }, { "id": "01a087a7-c457-70a2-96da-8e7fa291ecb3", "title": "Be a better programmer: take a step back", "url": "https://mnapoli.fr/be-a-better-programmer-take-a-step-back/", "published_at": "2013-02-04T20:00:00+00:00" }, { "id": "01a087a7-c457-70a2-96da-8e7fa2a17636", "title": "Doctrine schema validation in a PHPUnit test", "url": "https://mnapoli.fr/doctrine-schema-validation-in-a-phpunit-test/", "published_at": "2012-12-10T20:00:00+00:00" }, { "id": "01a087a7-c457-70a2-96da-8e7fa2c68c0f", "title": "Introduction to Dependency Injection with a real life example", "url": "https://mnapoli.fr/introduction-dependency-injection-with-real-life-example/", "published_at": "2012-12-06T20:00:00+00:00" }, { "id": "01a087a7-c457-70a2-96da-8e7fa2cce21a", "title": "The PHP-FIG should define PHP interfaces", "url": "https://mnapoli.fr/php-fig-should-define-php-interfaces/", "published_at": "2012-11-23T20:00:00+00:00" }, { "id": "01a087a7-c457-70a2-96da-8e7fa398f3fe", "title": "Doctrine 2 YAML reference", "url": "https://mnapoli.fr/doctrine-2-yaml-reference/", "published_at": "2012-10-05T20:00:00+00:00" }, { "id": "01a087a7-c457-70a2-96da-8e7fa3aa9072", "title": "Dependency Injection with PHP", "url": "https://mnapoli.fr/dependency-injection-with-php/", "published_at": "2012-09-20T20:00:00+00:00" } ] posts Claim your blog
Back to mnapoli.fr
Blog Β· corpus.blog/blogs/mnapoli.fr/posts

mnapoli.fr

mnapoli.fr

2026

2025

2024

2023

2021

2020

2019

2018

2017

2015

2014

2013

2012