HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Qbix
webserver
PHP2026–2026
Qbix / webserver

webserver

Pure-PHP Web Server. No NGinX or PHP-FPM needed. Handle over 100x more traffic instead!

4Distinct people
16Mentions
0Explicit recommenders
193GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Pure-PHP Web Server. No NGinX or PHP-FPM needed. Handle over 100x more traffic instead!

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week16 dated mentions

Observed mentions: 2026-07-20 14:29:44 UTC to 2026-10-12 16:52:19 UTC. Weeks start Monday, UTC.

0123452026-07-20 00:00:00 UTC to 2026-07-27 00:00:00 UTC (exclusive): 5 mentions; 3 submissions, 2 commentsJul 202026-07-27 00:00:00 UTC to 2026-08-03 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2026-08-03 00:00:00 UTC to 2026-08-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-08-10 00:00:00 UTC to 2026-08-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-08-17 00:00:00 UTC to 2026-08-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-08-24 00:00:00 UTC to 2026-08-31 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2026-08-31 00:00:00 UTC to 2026-09-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsAug 312026-09-07 00:00:00 UTC to 2026-09-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-14 00:00:00 UTC to 2026-09-21 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2026-09-21 00:00:00 UTC to 2026-09-28 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2026-09-28 00:00:00 UTC to 2026-10-05 00:00:00 UTC (exclusive): 3 mentions; 2 submissions, 1 comments2026-10-05 00:00:00 UTC to 2026-10-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-10-12 00:00:00 UTC to 2026-10-19 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsOct 12

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jul 202026-07-20 00:00:00 UTC2026-07-27 00:00:00 UTC532
Jul 272026-07-27 00:00:00 UTC2026-08-03 00:00:00 UTC110
Aug 32026-08-03 00:00:00 UTC2026-08-10 00:00:00 UTC000
Aug 102026-08-10 00:00:00 UTC2026-08-17 00:00:00 UTC000
Aug 172026-08-17 00:00:00 UTC2026-08-24 00:00:00 UTC000
Aug 242026-08-24 00:00:00 UTC2026-08-31 00:00:00 UTC110
Aug 312026-08-31 00:00:00 UTC2026-09-07 00:00:00 UTC000
Sep 72026-09-07 00:00:00 UTC2026-09-14 00:00:00 UTC000
Sep 142026-09-14 00:00:00 UTC2026-09-21 00:00:00 UTC413
Sep 212026-09-21 00:00:00 UTC2026-09-28 00:00:00 UTC110
Sep 282026-09-28 00:00:00 UTC2026-10-05 00:00:00 UTC321
Oct 52026-10-05 00:00:00 UTC2026-10-12 00:00:00 UTC000
Oct 122026-10-12 00:00:00 UTC2026-10-19 00:00:00 UTC101

What Hacker News says

16 sources
"Every request spawns a fresh process. Deploying a new version is replacing one file. That means no server restart and no downtime. New requests simply pick up the new binary." I think that's why FastCGI exists. It is the equivalent of PHP's "Swoole" or "FrankenPHP" or "amphp" or Laravel's "octane", etc. Each process is long-lived and tries to clean up its state as much as possible between requests. Forking a new process can take around 8ms (https://news.ycombinator.com/item?id=19005586) When I was building https://github.com/Qbix/webserver in PHP, I was faced with forking a new process per request. I implemented fork-per-request at first, similar to PHP-FPM and then implemented the "FastCGI" approach of long-lived processes that clean up after each request. (Modern PHP has introspection so the engine can know what to clean up, before cal
Read the rest
ling the php files to handle things.) However, some things are not really possible to completely reset in PHP, and you have to be careful with database connection pools, etc. Typically those are left open even by preforking processes like php-fpm. Anyway, I ended up flipping it: use the "FastCGI" approach as a default, and if the original PHP code doesn't work (rare), then for that app, you can choose the regular CGI approach of forking a process per request. That way you get maximum speed by default, and manually opt into safety (this is an exception to my usual priorities). PHP is actually quite fast. But I was also interested in transpiling it to C. So I built the transpiler at: https://ulanguage.org/playground ... used Claude to transform about 1000 PHP functions to their native equivalents, but if you use any of the others, it would hook into the Zend runtime and link with it. (There are some nuances with zvals and objects, and resources in previous PHP versions, but I managed to overcome them.) By the way, it also works with Node and Python FFI the same way. You can basically now take PHP, Python or Javascript/Typescript code, and speed up the CPU-bound parts about 10-50x. A lot of that is because of string and JSON handling. Many web apps use strings and JSON a lot. So underneath, I had the compiler use "ropes" for the strings, and avoid concatenation. It also parallelizes the JSON encode and decode into code that can run on multiple cores at once, i.e. large JSON payloads are encoded and decoded in parallel. Those are just huge speedups. Anyway... all of this is mostly focused on speed optimization, so you can solve the literally C100K problem (forget C10K) today, on a regular box. If you don't need speed or FastCGI, your approach is fast enough for the vast majority of applications. PS: By the way, if you fork after your program already loaded the framework and initialized the configuration, then you can run a lot more workers, literally 10x-100x more of them, because Linux and Mac will share all the loaded memory between processes, and do Copy-On-Write only on dirty pages. And when your request is done, and the process exits, that custom memory is efficiently cleaned up by the OS. It is this feature that allowed me to finally get the best of both worlds... run all existing PHP code, that makes blocking I/O requests all over the place to the database, filesystem, network etc. while at the same time being able to handle 100,000 requests in flight at the same time! Swoole and FrankenPHP can't do that.
In A Modern Web App in C
I seriously encounter this hand-wringing on HN. You are pointing out a real problem in the world. A problem that, if not solved, will keep most of the people in the world helpless and at the mercy of governments, billionaires and the platforms they control. But I don’t like to just bitch. I like to build. So then I show the free and battle tested software I built lovingly over a decade, that solves exactly this, and that I use in my own companies, but also give away for free https://github.com/Qbix/Platform What more can I do? I’m just some guy in Brooklyn, who never got funded by VCs (except Balaji’s fund) but persisted for over a decade and published nearly everything as open source for the benefit of others who might know how to deploy it. I keep sharing better and better versions over the years. What initially surprised me over the ye
Read the rest
ars is that the result when I share all this for free on HN is… I get downvoted by other HNers who vehemently hate someone “self promoting” a solution to this very problem. They donmt just “not care”, they care very much that others on HN should not be exposed to such free and open source solutions Having faced the same problem (of people not running their own servers), I went ahead and built an all-in-one server that you can use to create binaries, copy them, manage public web files like in redbean, as well as php files to run inside the server, then distribute those too. Took me months of iteration with Claude. When I posted it on HN got… 3 upvotes. Then it was resurrected and reposted by the mods, got 40 upvotes, lots of snark about me having dared to use AI to build it, and “TL;DR” comments, and then… the post resurrected and reposted by the HN moderators themselves was… flagged: https://news.ycombinator.com/item?id=49749789 In the days since, I have improved the server a lot and v2 even lets regular PHP script kiddies build a Jack-Dorsey-style app on iOS and Android. Many people on HN will immediately have a reaction: “why PHP, it’s so old”. So I updated the github to answer that: https://github.com/Qbix/webserver Again, this is MIT licensed, and open source. On Reddit, the situation was even worse. Lots of upvotes at first, then anyone saying nice things about it got heavily downvoted and various trolls started posting snarky comments. Oh well, at least it attracted 150 stars and some people are actually forking it and using it. But let’s be real, not everyone wants to run a webserver. That’s why we had “commodity hosting” in the past. But how to make it so that people can “just use” software they can trust, without anyone being able to tamper with it? In 2017, I got enamored with Blockchain for that reason. I saw tens ofnthousands of people running nodes, and letting normies “just post” transactions. I saw a way that high-calue transactions and balances could be protected. I launched Intercoin Inc, raised half a million dollars (and more since), built the software, deployed it on 7+ EVM blockchains, and made it freely accessibls: https://intercoin.org/applications: https://www.sec.gov/Archives/edgar/data/1733567/000173356718... Unlike most projects in 2018, we treated the fundraise like a security, and tried to do everything by the book. But, just sharing anything with the word “blockchain” in it should earn me the wrath and downvotes of a certain very active subset of HN. I feel like they almost see the word “blockchain” and insta downvote. Maybe these mechanisms are not even human? Who knows. It cost a lot of money to get right at the time, and released as free and open source. This is Hacker News. One would think they’d celebrate this, let others discover it and use it, even if they themselves don’t like web3. <— (there, I put that “keyword” in there, watch what happen to this comment now). But no. But blockchain was expensive, slow, and couldn’t hold secrets. And that brings me to… my solution in 2026, which I spent over a year designing and building with AI: https://safebots.ai/safebox.html For now HN is split between AI fans and AI lamenters (I saw this arc in web3 too). So this should get a mixed reaction. Even though Safebox isn’t even only for AI. It’s a new security primitive, like blockchain itself was. The key is this: normies don’t have to run it. You can run it, by cloning an EC2 instance, getting clients, and autonomously earning in safebux, which you can cash out on the… blockchains. Oh am I going to be downvoted now. There is nothing to configure, manage, etc. It is like running your own “commodity hosting”, except you never get to access client data, and you get paid through the decentralized system automatically, and clients get security, failover, etc. There is much more to this, and soon you’ll hear more about it. But I expect to find - not just people “not caring” - but violent opposition from a very vocal and activist subset for some reason. I mean, I build it, refine it for a decade and give it away for free, for others to serve each other and make money. If you don’t want to, that’s fine, my company will run most of the servers (like Matt Mullenweg’s Wordpress.com did). Or you will be able to run some too, by just cloning an EC2 in your account on AWS, GCP, Azure, OCI, etc. Once again, it’s not “most of the people out there”. Watch what happens right here on HN. PS: Safebots + Safebox + Safebux is coming out in a couple months. Until then, I have released Safecloud for encrypted and decentralized storage, absolutely for free, and a alightly technical person can run a backend (Jet). And literally anyone can contribute storage and earn safebux by simply opening a tab and keeping it open. Or don’t earn safebux - the default is absolutely free, for everyone. Use it for some stakeholders or users of your own websites to contribute redundant storage. Or don’t. But at least maybe upvote to let others discover it? Anyway. Here are the links: https://safebots.github.io/Safecloud/ Academic writeup: https://arxiv.org/abs/2606.09870 And initial coverage by security magazines: https://www.helpnetsecurity.com/2026/06/19/safecloud-browser...
In Malleable software: Restoring user agency in a world of locked-down apps (2025)
Oh, it is far more useful than some “psychosis”, this is real, and battle-tested. Have you tried to download and run it yourself? It comes with its own tests and even several example apps out of the box. These examples include support for socket.io and rooms, which I highly doubt existed in the 90s. So the webserver can be used not just to serve HTTP requests to 40,000 simultaneous online users, but also have an entirely in-memory real-time chat server for 40,000 users (or anything more complex). After over a decade of writing apps in PHP, I always wondered why we needed all that extra tooling around it just to serve websites. I suspected PHP alone could be faster. I didn’t realize how right I was. This is an entire webserver and socket server written in pure PHP, meaning you can run web applications without nginx for serving files and we
Read the rest
bsites, certbot for certificates, cron for periodic tasks, node for realtime sockets, etc. It comes out of the box with a user friendly dashboard and control panel, too. There are even standalone binaries you can download for Linux and MacOS that can contain your entire web application: https://github.com/Qbix/webserver Originally it was much faster than php-fpm, but now it is also faster than even the fastest PHP runtimes. And unlike those runtimes, it is able to run existing PHP apps without modification! It’s not slop. It has been tested to be faster than every other PHP webserver. Here is HOW it can be this fast: The vast majority of PHP apps make blocking I/O calls (to the database, files, network calls etc) While that happens, the thread is blocked. FrankenPHP, Swoole, amphp and others take the “evented” approach which is much faster, but require all I/O calls to be rewritten to use their async libraries. But most existing PHP code would need a lot of work to be ported to async style, and even if it was, sometimes the async libraries don’t handle everything the mainstream ones do. Qbix Webserver takes a different approach: it spawns hundreds, sometimes thousands of processes on Linux, Mac etc. When a process is blocked waiting on I/O, the rest of the application can handle thousands of concurrent users. The reason this works is that that Qbix server allows apps to preload files and classes before it forks the worker processes. It can do this while being written in pure PHP. While php-fpm can prefork workers, this causes each worker to take up a lot of memory, eg 40MB, duplicating all the bytecode from your entire framework and app. By contrast, Qbix Webserver is able to spawn workers that are around 140KB each for a typical Wordpress app. This is because pcntl_fork on Linux and MacOS only copies on write, so 4-16KB memory pages are only copied when you make a change to a variable. If all the variables are on one page (eg in one array) you can even have workers weighing 4-16KB total, allowing you to run TENS OF THOUSANDS of workers on a 4GB machine. If you use composer install amphp, your code will use epoll instead, causing your app on Qbix Server to be even more efficient. This is 2026. It would be great if your PHP was able to work with the latest socket.io and handle rooms and socket connections. Imagine a chat server that’s entirely in memory, and also able to handle 40,000 simultaneous users and connections. Well, now you can. Qbix Webserver handles HTTP Requests, Websockets and rooms, even HTTP Push (for streaming AI tokens etc). It also can manage your TLS certificates, run cron jobs, and more. It supports headers like X-Accel-Redirect which lets you serve files with access control done by your app. (Though these aren’t as fast as nginx because PHP lacks support for sendfile, so if you want additional 2x boost in speed for protected static files, you should proxy these headers to NGINX. For public static files, just use a CDN.) It even supports something new I invented, X-Cache-Tree allowing your code to cache parts of a webpage. Yes, that’s right — you are no longer required to render an entire page again if only a couple parts of it got invalidated. The X-Cache-Invalidate header can intelligently invalidate many pages at the same time! Instead of hating on it, why not try it? Visit github and grab the actual server. Launch it with PHP, and use the visual dashboard in your browser to manage your apps. Enjoy! It’s MIT licensed
In I built the fastest PHP webserver in the world
The original source is here: https://github.com/Qbix/Platform/tree/main/platform/classes/... Yes, these days I work with AI (Claude chat, usually) to do all the "last mile" things, like packaging, writing READMEs, etc. I iterate, do quality control, and I asked it specifically to put emojis in titles. But the actual architecture, and the 10+ years of code in the framework, were hand-rolled. I just realized I can extract the web-server under an MIT license and gift it to everyone. So I put it up on github and then told HN about it. That's all! PS: I very much appreciate constructive feedback. Your suggestions have been incorporated: https://github.com/Qbix/webserver/commit/618638ecdc9097722fd...
In Standalone webserver written in pure PHP. No more need for nginx, php-fpm, etc.
> echo " │ Qbix Server v" . QBIX_SERVER_VERSION . str_repeat(' ', 22 - strlen(QBIX_SERVER_VERSION)) . "│\n"; Instead of this str_repeat, use str_pad [1]. I assume this is highly AI generated based on the emoji and the typical structure of README.md? At the very least have it break apart WebServer.php, this is insanely too long, and what's it with all the static stuff? And the Revolt driver [2] is missing a composer.json with the required dependency, and the code would benefit from a use statement instead of 5 fully qualified references. [1] https://www.php.net/manual/en/function.str-pad.php [2] https://github.com/Qbix/webserver/blob/main/src/Q/Evented/Re...
In Standalone webserver written in pure PHP. No more need for nginx, php-fpm, etc.

Showing the 15 most recent of 16 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.