🧟Official native Windows support for FrankenPHP is here. 🪟🚀
✅ Rely on official PHP Windows binaries
✅ Support all FrankenPHP features, including worker mode and hot reloading
✅ Full PHP extension support
⚡️ Up to 3.6x faster than Nginx/PHP-FPM on Windows!
Try it and read the full story on how we made it happen: dunglas.dev/2026/03/windows-…
Thanks to @Info_IntelX and @coopTilleuls for having sponsored this feature!
#PHP#golang#Windows
FrankenPHP, a modern app server for PHP written in Go: worker mode, Early Hints support, real-time capabilities, automatic HTTPS & HTTP/3
frankenphp.dev
⚡️TL/DR: you don't need #GraphQL anymore!
I'm very excited to introduce #Vulcain: a protocol to create fast client-driven REST APIs relying on HTTP/2 Server Push. An open source Gateway Server to use with any existing API is also available.
🔥 github.com/dunglas/vulcain
I'm delighted to announce that FrankenPHP is now officially supported by the @ThePHPF, that the project repository will be moved to the @official_php organization on GitHub, and that the collaboration between the PHP project, @caddyserver, and @coopTilleuls will intensify even further!
PHP is kicking!
les-tilleuls.coop/en/blog/fr…
My overengineering red flags:
🚩 Microservices
🚩 DDD-like structures and patterns
🚩 Standalone Git repositories for internal libs
🚩 Makefile (if not using C/C++)
🚩 Non-mainstream languages
All of these have perfectly valid use cases... but they are too often misused.
🚤 @withinboredom has improved the performance of #FrankenPHP by 1700% (!) in standard (non-worker) mode 🤯
According to a benchmark in the comments, FrankenPHP is now faster than FPM (in normal mode) and performs similarly to Swoole (in worker mode).
github.com/dunglas/frankenph…
Hey @elonmusk, so you want to free the bird?
1. Re-open the API
2. Decentralize the network, implement #ActivityPub and related open standards
3. Remove ads
4. Use fair and open algorithms
5. Unban anti-fascist, progressive, and revolutionary accounts
6. Open the code
🔥🔥🔥 FrankenPHP 1.3 has just been released: this version is 54% (!!) more efficient than the previous one and contains a bunch of new features and fixes, including file watchers support and new Prometheus metrics.
Read the announcement: dunglas.dev/2024/11/frankenp…
Developers using Firefox, localhost is now always considered secure! You don’t have to generate self-signed certificates anymore. developer.mozilla.org/en-US/…
FrankenPHP has just reached 10,000 ⭐️ on @github!
This important milestone was reached just a few months after the project joined the @ThePHPF, thanks to the hard work of the maintainers and contributors, those who spread the word about the project, and everyone who tested it and reported bugs. A big thank you to all of you!
As promised, to celebrate, we have launched the production of stuffed ele(Franken)PHPants. The first specimen will be available exclusively at the @ApiPlatform conference, which will take place in September in my city of Lille.
A big party for the 10K stars and the 10th anniversary of API Platform will also take place there.
Places are filling up fast, but there are still a few available. Hurry up and grab yours if you want to be part of it and get your little monster plush toy 🧟
🤠 @ApiPlatform Admin is now officially integrated into #Symfony! Type `composer req api-admin` and you instantly get a beautiful #reactjs/react-admin based interface for your entities: github.com/symfony/recipes/p…
Under the hood this new integration uses Webpack Encore. Try it now!
To achieve this, we teamed up with the maintainers of @laravelphp, @caddyserver, and even C-Thread-Pool, a C library that FrankenPHP uses under the hood (github.com/Pithikos/C-Thread…).
Open-source collaboration FTW!
L’État français, un modèle de respect des droits humains et de la liberté démocratique : « 144 blessés graves parmi les gilets jaunes et les journalistes, dont 92 par des tirs de lanceur de balle de défense. Au moins 14 victimes ont perdu un oeil. » liberation.fr/checknews/2019…
"#PHP most certainly is not a tool that anyone should be ashamed of and doesn't deserve the still strong ridicule. The history of PHP is the one of the greatest redemption arcs in Software Development History." kode-krunch.com/2021/12/tryi…
Vous voulez vous faire vacciner contre le #COVID19 ? Vous en avez marre d'actualiser Doctolib toute la journée pour espérer trouver un créneau ?
Testez vaccin.click, une extension @firefox qui réserve automatiquement pour vous dès qu'une dispo dans les 24H apparaît !
FrankenPHP 1.6 is out!
Thread autoscaling, glibc-based static binaries, Debian/Ubuntu and RedHat Packages, @caddyserver 2.10…
Learn what's new in the announcement: dunglas.dev/2025/05/frankenp…
🧟 I've just released FrankenPHP 1.1! This version adds a bunch of new features including:
- Brotli compression
- apache_* PHP functions
- custom php.ini and Caddyfile for standalone apps
Stability, performance, and documentation have also been greatly improved.
I'll showcase some of these features tomorrow during my talk at @LaraconEU ⚡️
github.com/dunglas/frankenph…
FrankenPHP 1.2.3 is now available! Thanks to the incredible work of @withinboredom, the "standard" (non-worker) mode is now 1,700 times faster (!!) under heavy loads.
github.com/dunglas/frankenph…
Ryan makes huge contributions to the API Platform, Symfony, and PHP ecosystems, as well as to the free software movement as a whole. It's time for the community to return the favor. Please support Ryan.
I'm pushing the #FrankenPHP developer experience even further: run `./frankenphp php-server` in a directory containing PHP scripts and you've got a production-level server for your applications.
Powered by @caddyserver!
github.com/dunglas/frankenph…
🎄🧟🎅 Here's my Christmas present: FrankenPHP 1.0.2 is out!
Most of the changes are related to static binaries:
* A Linux ARM build is available
* sodium and igbinary PHP extensions are now included
* Redis extension now supports LZ4 compression
🎁 github.com/dunglas/frankenph…
I'm a big fan of Go and Rust. But if I were to create a startup, most of the code would probably be written in PHP (with TypeScript as a 2nd choice). #PragmaticProgrammerscribe.rip/using-rust-at-a-s…
🧟 FrankenPHP 1.2.5 is now available!
This version once again significantly improves performance (~20% improvement since 1.2.4). We've also published a detailed performance guide to get the most out of your favorite monster (in English and French).
github.com/dunglas/frankenph…
More than 10 years after my first contribution to @official_php (a typo in a comment), I was able to merge my first patch into the repository myself! This is, I hope, the first of many.
This one is far more complex and will greatly improve the packaging of FrankenPHP (and other tools using libphp) on Mac: github.com/php/php-src/commi…
Thanks to Jakub Zelenka, @derickr, and the rest of the PHP team for their help and trust!
FrankenPHP 1.2 is out 🎉
- @caddyserver 2.8
- X-Sendfile/X-Accel-Redirect support
- full-duplex support for HTTP/1
- simplified config
- countless bug fixes and docs improvements
Upgrade now!
github.com/dunglas/frankenph…
🐳 Here's a compilation of tips and tricks about PHP application dockerization that I've compiled over a few years of maintaining open-source projects!
Slides from my talk at @afup Day Lille.
dunglas.dev/2024/05/containe…
FrankenPHP 1.3.1 is now available and improves performance by around 10% if you use the default configuration ⚡️. We have teamed up with @caddyserver and a similar patch landed in Caddy itself. Expect further performance improvements for both FrankenPHP and Caddy soon! buff.ly/4hMk457
FrankenPHP will soon be able to automatically detect the extension to build for PHP apps packaged as standalone binaries! To do so, we use Composer of course! github.com/dunglas/frankenph…
It’s alive!
After months of meticulous stitching, we’re thrilled to announce the official release of the #FrankenPHP elePHPant plushie! This isn’t your average plushie—it’s a grotesque yet charming creature, a patchwork of code and fluff, and the perfect companion for those late-night coding sessions.
Dare to adopt this creature of the night? Here’s how to get your very own FrankenPHP elePHPant:
@ApiPlatform Conference Attendees
The first batch of FrankenPHP elePHPants will be unleashed at the API Platform Conference in Lille. Come find us at our booth to claim one before they return to the shadows forever!
Online Attendees
For those attending the conference virtually, a limited number will be available to purchase online immediately following the in-person event. Check your conference attendee emails for the link to our crypt.
General Availability
If any of our monstrous creations remain after the conference, they will haunt our online shop a few weeks later. Stay tuned for updates.
⚡️📦 To make your sites faster, I've just released a new module for @caddyserver that compresses HTTP responses with Brotli!
This module uses a super-efficient implementation written in C, and will soon be available in #FrankenPHP.
github.com/dunglas/caddy-cbr…
FrankenPHP is almost ready for PHP 8.4 🥳
We're just waiting for the official Docker images and we'll public Docker images and static binaries using 8.4.
github.com/dunglas/frankenph…
🔥I'm so excited to announce a project I'm working on for a few months: mercure.rocks
It's a protocol and a #golang implem to push live updates from servers to clients. It is designed for #hypermedia and #GraphQL APIs and works everywhere (browsers, #serverless, #PHP)!
FrankenPHP 1.4 is out 🔥
Thanks to the performance optimizations we made in @caddyserver 1.9 and in FrankenPHP itself, version 1.4 is 15.5% faster than version 1.3 with a standard configuration ⚡️
github.com/dunglas/frankenph…
FrankenPHP Docker images with PHP 8.4 are now available! Bug fixes and performance improvement are also included in the just-released version 1.3.2. buff.ly/4fFutOB
FrankenPHP 1.7 is out. The global frankenphp directive is now optional in most cases, making it easier to write a Caddyfile!
github.com/dunglas/frankenph…
⚡️ With FrankenPHP, it's possible to execute code (e.g. access control) and then stream large static files efficiently.
We now have a documentation page dedicated to this subject: frankenphp.dev/docs/x-sendfi…
🔥 A feature I wanted since #Symfony 2.0 has finally landed in 4.3! The validator now reuses @doctrineproject ORM metadata to automatically add basic validation constraints (required, max length, type, unicity...).
Better DX, UX and security.
github.com/symfony/symfony/p…
FrankenPHP has become extremely popular, reaching 10,000 stars on GitHub and is now supported by the @ThePHPF, but unlike other PHP SAPIs, it still doesn't have its own Wikipedia page. Any volunteers to create one?
One weekend after the launch of its version 1.0, #FrankenPHP has already reached 4,000 stars on GitHub 🤩🐘.
Want to help the project? Give it a star (contributions, feedback and sponsorships are also welcome 😅)!
github.com/dunglas/frankenph…
I've just released FrankenPHP 1.2.2. Thanks to a new thread management system, this version improves normal (non-worker) mode performance under heavy loads by 33% 🏃🏃🏃 github.com/dunglas/frankenph…
A real-time chat app in 23 lines of #Python and 35 lines of #JavaScript (0 dependencies)? #HTTP2/#HTTP3 compatibility, automatic reconnection with re-fetching of missed messages, authentication... 100% #FOSS
Discover the Mercure protocol! github.com/dunglas/mercure/p…
FrankenPHP 1.2.5 is now available! Many new extensions such as parallel, imagick, gmp, ssh2, protobuf, and many others are now included in the static binary. And, as usual, a few bugs have been fixed! github.com/dunglas/frankenph…
#FrankenPHP 1.1.1 is now available! This version significantly improves memory usage and uses fewer resources. It also fixes numerous bugs (including crashes). github.com/dunglas/frankenph…
Let's add modern compression formats to PHP!
The new RFC for natively integrating Zstandard and Brotli proposed by @seldaek and myself would significantly improve Composer and asset pre-compression by @symfony AssetMapper.
externals.io/message/126439
The latest versions of Chromium-based browsers now support Zstandard compression by default. This means that all your websites using @caddyserver or FrankenPHP are served using this state-of-the-art compression format for users of Chrome, Edge, and Opera 🎉.
🕷️@ApiPlatform version 2.5.7 is out!
⭐️ Shipped with @symfony 5.1
⭐️ PHP class preloading enabled by defaul
⭐️ Countless bug fixes
If you don't know what to do this weekend, give it a try!
github.com/api-platform/api-…
🚨 @LumonIndustries reports: 🚨
FrankenPHP just hit 8,000 GitHub Stars! 🌟 Our innies are THRILLED! You clearly remember the brilliance of modern PHP. Thanks for the support – no severance needed! 🐘
FrankenPHP is now able to execute PHP CLI tools such as Composer or commands built with Symfony Console. All in a single binary! github.com/dunglas/frankenph…
I'm super excited to announce the immediate availability of the new @MercureRealTime#Symfony Bundle!
Curated changelog:
🪄 a new super handy Twig function to connect to a hub and manage authorizations
🐳 automatic hub install via Docker Compose
Docs: github.com/dunglas/symfony-d…
🪲 I just released a Docker image specifically crafted for debugging and developing the @official_php interpreter. A PHP script causes a segfault? You want to develop a PHP extension? This image is for you, it contains all tools you'll need!
github.com/dunglas/php-dev-d…#PHP#C