Welcome on version 2 of externals.io. The application has been extensively rewritten in order to make the whole experience better.

Externals goes serverless

Externals is now a serverless application deployed and hosted with Bref. That will help us keep cost down and scale with traffic without having to do anything. The hosting and maintenance is sponsored by null, and the search is sponsored by Algolia!

Email synchronization

Emails are now fetched directly from PHP's news server through the NNTP protocol. Emails were previously fetched through IMAP from an email address subscribed to the mailing list. It worked, but needless to say that it was not a very good solution. Any incident with the email address or the database would mean a very hard recovery. With NNTP, we fetch messages from the source and the whole database can be reconstructed anytime if needs be.

Another advantage is that working on a dev environment is easier: you don't need to setup an email and subscribe it to the mailing list. PHP's news server is public, you can run externals.io from your laptop easily.

Finally, and this is the most visible change, the whole history of PHP's #internals history is fetched and indexed. Message IDs are the same as PHP's official mailing list reader, which means that you can take any message there, extract the ID and find the same message formatted in a much better way on externals.io! Here is an example:

Search PHP's history

There are about 100,000 emails in PHP's #internals history. All of them are now indexed on externals.io, and all of them can be searched! Thanks to Algolia's very generous offer, externals.io is now on a premium plan that allows everyone to search and explore those messages.

A faster website

Since deploying is now much easier, a lot of hacks have been removed resulting in faster rendering. Less files used to be compiled on the fly, nothing was optimized… This was long overdue but assets are now compiled and optimized. Several SQL queries have also been improved and everything should be a bit faster.

Keeping track of what you've read

Tracking what users have read have been reworked too. I'm very sorry to say that you "read" history has been dropped during the migration (the whole database structure has changed and porting it was too complex). However from now your read history is stored in a better way and will be much easier to port if there is ever the need.

The good news with this change: it will be easier to implement features like buttons to "mark thread as read" from the home page.


Threads can now be voted up or down. Reddit users will probably find this familiar. The goal of the voting system is helping sorting out the noise from the most interesting discussions.

The most interesting threads can be seen on the "Top threads" page.