/Remi Corson

In 2001, two French developers each built a CMS. One became WordPress.

This is the story of the other one. "Goodbye, World!": PHP Forge, a CMS I found on an old hard drive twenty-five years later, and whose story I pieced back together from the Wayback Machine.

Prologue: a folder named PHPFORGE

There is a folder on my hard drive named PHPFORGE. The backup dates say November 2010, but the files inside are much older. The earliest ones are from the summer of 2001. It has survived more machine migrations than I can count, copied from one disk to the next without ever being opened, like the boxes you stop unpacking but cannot bring yourself to throw away.

Inside, six directories: FORGE 2, phpforge_V3, phpforge_V3b2, phpforge_version_v273, phpforge_Version_3, php-forge_RELOAD. Around 3,000 files. The near-complete body of work of a French CMS that the internet has almost entirely forgotten, and of which I was, for two years, the main developer.

My name is Rémi Corson. Between 2003 and 2006, on the web, my name was i@tus. This story starts with a simple question I asked myself recently: what is left of PHP Forge?

The short answer is almost nothing. The long answer is this article.

As for the other CMS in the title, you may have recognised it already. It is b2/cafelog, Michel Valdrighi's blogging engine, whose May 2003 fork is called WordPress. The two stories are unsettlingly symmetrical, right down to the dates. We will let them meet when the time comes.

Part 1: What the web remembers (spoiler: three sentences)

Let us start with what someone finds today when they type "phpforge CMS" into a search engine. In practice, a single substantial page survives: an entry on PHP Sources, a French archive of PHP scripts, dated December 2005.

Phpforge is an old portal whose project was abandoned some years ago. The advantage of this portal is how simple it is to write scripts for it, and the number of modules it contains: news, guestbook, articles, polls. Quite an achievement for its time.

The phpforge entry on phpsources.net, dated December 2005, with a downloadable 163 KB zip

Three sentences, a 163 KB zip still available for download, and that is roughly it. Developpez.com's comparison of PHP portals still lists the name, with a dead link. The domains of that era are gone or recycled. That is what the web kept of a project that occupied dozens of volunteers for five years.

So I did what web archaeologists do. I opened the Wayback Machine and started digging. First strike: phpforge.multimania.com.

Part 2: PHP Forge ONLINE, 2001

Multimania, for those who were not there

Multimania needs explaining to anyone who did not live through the web before. In 2001, hosting a website cost real money, so the whole of France squatted on free hosts: Multimania (formerly Mygale, bought by Lycos), Chez.com, iFrance, and Free with its personal pages. In exchange for a mandatory ad banner at the top of your site, you got a few megabytes, PHP, and sometimes a MySQL database. You reached it over FTP. Version control was a folder named old_site_v2_FINAL on your hard drive. When a host shut down or wiped an account, the site simply disappeared.

That is what the French amateur web ran on. And that is where, in June 2001, a high school student opened a site called PHP Forge ONLINE.

The PHP Forge ONLINE news page from July 2001 on the Wayback Machine, showing the site's first theme

Atchoum's site

The Wayback Machine archived phpforge.multimania.com remarkably well: dozens of pages between July 2001 and the autumn of 2002. The webmaster signs his posts "Atchoum". His contact page is a period document in its own right: an email address at chez.com, an ICQ number ("add me to your contact list"), and this plea: "Please do not make excessive use of my email address."

The Administrators and Contributors page of PHP Forge ONLINE, showing Atchoum's profile with his chez.com email and ICQ number

PHP Forge is his CMS. A PHP/MySQL portal in the lineage of PHP-Nuke, the overwhelming reference of the time. The community did not shy away from asking the obvious question either: as early as July 2001, a news post signed BustY was titled "PhpForge // PhPnuke: the differences between the model and the copy". But the module list commands respect for a script written by one person: news with comments, articles, multiple forums, a guestbook, a newsletter, polls, photo and video galleries, an events calendar, downloads, a link directory, statistics, internal search, and a customisable theme system.

The archives let you follow the project news post by news post, like a serial. July 2001: "Link and download counting fixed :-D". Late June 2001: "The PHP Forge documentation is online." And this bug report from a user named DOCKY99, which sums up the atmosphere: "In the liens.php section the counter seems to stay at 0 despite the clicks (of the mouse...)".

The PHP Forge ONLINE news archive from September 2002, listing the second beta of version 3, the June 2002 post about the Bac exams, and the ForgeMaker announcement

And because no page from that era is complete without it, here is the genuine Multimania ad popup, archived alongside the site. This is what you paid with, instead of money.

An authentic Multimania advertising popup from 2001, archived along with the site

A community forms

What strikes you when reading these pages back is how fast a community gathered. In August 2001, a user named Benob left this comment:

php-forge is really the business. It took me half an hour to build a site with it (including signing up to Multimania and designing a theme). It is really easy to use, really complete, really fast and everything.

Half an hour to put up a site. In 2001. That was exactly the promise.

Around Atchoum orbit handles that recur throughout this story: BustY, Gandalf, AllanTheKiller, kheops. That last one even built ForgeMaker, a Windows application for creating PHP Forge themes without touching any code. Chris backported the entire script to PHP3 for people hosted on Free ("you have to rename every file to .php3"). Eric Blas published an English translation ("careful, I did not translate the admin section!"). A webring linked the sites running the script.

The November 2001 news post announcing ForgeMaker, kheops's Windows theme builder for PHP Forge

The archived comments are a goldmine of 2001 web anthropology. Under a post where Atchoum recommended protecting your site with Apache, someone asked, in complete seriousness:

what is apache???? Explain to me, PLEASE...

And the patient answer from the high school student: "It is the server used by the majority of websites."

The October 2001 hack

On 2 October 2001, disaster:

The site was unreachable all day, because all my files were deleted (hacking, a Multimania error...) anyway, painful. My apologies to everyone who wanted PHP Forge 2.0.

The October 2001 news post about the Multimania account being wiped, with the 'what is apache????' exchange in the comments

Someone had most likely found the password to the Multimania account. Version 2.0, expected that weekend, shipped a few days late. The versions then came steadily: 2.0.1, 2.1, 2.2, 2.3 in December 2001. The changelog for 2.2 runs to two lines: "Newsletter sending now possible. A report is displayed after sending a newsletter." We were a long way from generated release notes.

Who is Atchoum?

This is where the investigation turned. Looking for traces of the project on period sites, I found Boomtchak, a CMS news site running on SPIP, which had reproduced in March 2003 an interview from June 2002. The interviewer: Luc, of "Luc's site", a PHP Forge user. The interviewee: Atchoum. First question, historic answer:

Luc: Hello Atchoum, could you introduce yourself a bit first, I assume you have a first name!!!!

Atchoum: Behind my handle Atchoum hides Pierre Gentile! I am a young amateur webmaster, 17 years old, and also a high school student. My first steps in building websites started with Nitro Skateboarding, my first site, about skateboarding. Always wanting to build pleasant sites, I gradually learned HTML, then JavaScript and finally PHP. When I moved my site to Multimania, I got the idea of building a script that would let anyone create a site: PHP Forge!

The June 2002 interview of Pierre Gentile by Luc, reproduced on Boomtchak in March 2003

Seventeen years old. The creator of the CMS I would go on to take over was in the equivalent of eleventh grade. And the interview contains a second revelation, one I had completely forgotten, if I ever knew it at all:

Actually, my first idea for building a portal goes back more than a year. A friend wanted to make a site about boats, and I had written him a small script to help him publish his ideas simply (he knew nothing about any of it). Shortly after, Phortail was born, a small portal which was the first not to use a database to store information, but simple text files... I abandoned the project to start PHP Forge in June 2001.

PHP Forge was not his first CMS. It was his second.

The Phortail parenthesis, or the invisible legacy

Phortail, then: a mini CMS with no database, where everything (articles, news, configuration) lives in text files. For the beginner webmaster of 2000, that is a revolution in simplicity. No MySQL to configure, no phpMyAdmin to tame. You upload the files over FTP and the site runs.

Pierre abandoned it in 2001 for PHP Forge. But Phortail refused to die, twice over.

First, a community picked it up, maintained it and kept it evolving for years, up to a version 2.0.12 still downloadable today on phortail.free.fr. Its documentation pays explicit tribute to the creator, promising to "keep passing on this gift from Pierre Gentile to novice webmasters", and quotes his statement of intent:

PHORTAIL must let anyone create their own site! That is the whole reason this script exists. You do not need to be a PHP developer to install it. You just drop it on your host and enjoy it!

The first page of the Phortail documentation, quoting Pierre Gentile's statement of intent

Second, and this is the vertiginous part: Phortail inspired GuppY, which became one of the most widely installed database-free CMSes on the French-speaking web of the 2000s. This is not speculation. It is GuppY's own official FAQ that says so:

Of all the small web portals I could find in my search for the ideal portal, Phortail is by far the one with the user interface I found the most pleasant. What is more, Phortail's concept and architecture were good. [...] Here is a summary of the sources of inspiration: Phortail, for the general concept (including not using an external database) and the general look.

The GuppY FAQ from 2004, crediting Phortail as its main source of inspiration alongside Portix and Minicontent

A high school student articulated, in a script everyone has now forgotten, the promise that every mainstream CMS would spend the next twenty years trying to keep: publish without knowing how to program. The idea survived inside other people's code.

Part 3: 2002, the year it tipped

The rewrite

In early 2002, Pierre did what every self-respecting developer eventually does. He decided everything had to be rebuilt. PHP Forge 3 would be a complete rewrite. His announcements on the site give the measure of the ambition, for a solo developer of 17:

For PHP Forge 3.0, my idea is to strengthen site customisation, by separating the programming from the display with a template system. To make the site faster, I would like to add a cache system.

Then, a few weeks later:

Template system: I developed it myself [...] AN SQL QUERY CACHE: I have just finished the cache for MySQL queries. [...] It is a system along the same lines as Smarty, for those who know it.

A homegrown template engine, a query cache, display loops inspired by SPIP, a modular admin. In December 2001, the release of PHP 4.1.0 and its new superglobals even made him start over a second time, to get ahead of the end of register_globals: "I am restarting PHP Forge 3.0 from scratch (or nearly) to make sure it is compatible with upcoming PHP versions. Good thing I had not got very far ;-)". The kid was reading PHP changelogs and drawing the right conclusions from them before a lot of professionals did.

The Bac

But 2002 is also the year real life came to collect. On 4 June 2002:

I have not had much free time these past weeks. I have my Bac to prepare for and the site will not be very active this month (I have to WORK)...

The French exam, taken in the penultimate year of high school. In the interview from the same period, he describes his situation as a solo maintainer without any varnish:

I develop PHP Forge alone (and want to keep it that way!), and it takes a lot of my time [...] I also get a lot of email (and a lot of spam too), which stops me answering everyone [...] And then there is my lack of time: I am in the science stream, which is quite a lot of work.

He even lists, with rare clarity, the flaws in his own software: "Admin interface a bit annoying to use, and not very pretty... Developer not very responsive to emails ;-)". Twenty-five years later we would call that an open source maintainer heading for burnout. At the time it did not have a name.

On 23 July 2002, he published the second beta of PHP Forge 3: "I would advise you to only test it if you have some knowledge of PHP." That was his last news post. In the autumn of 2002, Multimania wiped the site, and the Wayback Machine captures nothing but a Lycos 404 page.

Part 4: Goodbye, World!

The official epilogue arrived on 13 March 2003, on Boomtchak, under the headline "phpForge is stopping":

PHP Forge stops here, this Thursday 13 March 2003. This shutdown follows a lack of will and of time to keep the site going with any real effort, and also a lack of ideas for evolving PHP Forge. [...] I am not stopping PHP programming. In a while I will probably start a new project, one that will not repeat PHP Forge's mistakes: not maintaining the site, not fixing bugs, not answering emails, and so on. I thank the whole PHP Forge community for the support and kindness throughout the adventure, and apologise for the lack of communication.

Often, the first PHP script a beginner runs is <?php echo "Hello, World !"; ?>. For me, it is time to say <?php echo "Goodbye, World !"; ?>.

Pierre Gentile, creator of PHP Forge

The 'phpForge is stopping' announcement on Boomtchak, March 2003, with the five comments including Pierre Gentile's two replies

In the comments, users say goodbye ("it is always sad to see projects stop... thank you to you and everyone who works for us for free"), and then someone asks: what happens to PHP Forge now? And it is Pierre himself who answers, pointing at his successors:

You can look at the work done by the programmers of the Boutique PHP Forge, who have created other, more complete versions of PHP Forge, with new modules. [...] The "Boutique PHP Forge" is simply a users' site that has published modified versions of PHP Forge!

La Boutique PHP Forge. This is where I stop being the narrator of other people's history.

Part 5: La Boutique, or the community that refused the ending

phpforge.oirac.com

La Boutique had been born in the autumn of 2002, during Pierre's silence, at phpforge.oirac.com. A small detail I had forgotten and that the archives handed back to me: "oirac" is its founder's name spelled backwards. Gandalf, real name Stéphane Cario, a contributor from the very beginning, the one who had built PHP FORGE INSTALL, the automatic installer. With Yvan, he ran this mutual aid site: courses for beginners, an FAQ, a glossary, a chat room, forums.

The home page of La Boutique Php Forge in August 2003, with the editorial crediting Atchoum, i@tus and Gandalf, and the 'Copyright i@tus web design 2002' footer

And drinks. I insist on this detail: the archived site contains a page called apero.php, and news posts like "Recap of the drinks on 28 September 2002 (in Paris)". A CMS community meeting up over a drink to talk about PHP scripts. That was the volunteer web of 2002.

i@tus enters

The handle deserves no clever explanation. Iatus was my parents' dog. I swapped the "a" for an "@", the way everyone mangled their own name in 2003, and that was that. I have been told worse origin stories for a developer alias, and I have never had a better one.

How I found PHP Forge in the first place, I genuinely do not remember. All I have left is the shape of it. I worked out early that code came easily to me, without ever having properly learned the first thing about it, and when I wanted to do something more than HTML I ended up on the reference PHP site of the day, whose name I have also lost. Someone must have mentioned PHP Forge on one of its forums. That is the entire origin story: a name read on a forum, and off it went.

There is something fitting about that being the hole in this article. I can tell you the exact minute a test forum called "khkhkh" was created in December 2001, down to 8:54pm, because a log file wrote it down. I cannot tell you how I found the project that would take up the next three years of my life, because nothing wrote that down. Memory keeps the dog's name and loses the rest.

What the hard drive does confirm is that I came to PHP Forge the way everyone at La Boutique did, as a user long before being a maintainer. My own site of the period, Nitrokaïne Web Concept, ran on it. That is not a memory either, it is a file: the working copy I found is that exact site, configuration and visitor statistics included.

On La Boutique, under the handle i@tus, I took over the 2.x branch, the one Pierre had left fallow while he worked on his V3. On 23 February 2003, three weeks before his "Goodbye, World!", I published a version 2.6: "I have just grouped several modules together and fixed some of them, so basically I am offering you a version 2.6 of PHP Forge."

Then everything accelerated. Version 2.7.1, five days later, in tandem with ChBoc:

Here is version 2.6 optimised by myself and ChBoc... which becomes version 2.7.1. On the menu: by ChBoc: jbrowser 2.4 adapted, open tribune, voting system for articles, wallpaper of the day. By i@tus: stats bar and poll in colour, new theme, shout box, display of the number of connected visitors, glossary fixed, chat fixed (yes, you could hack it far too easily but I will not tell you how!), added a database backup system [...] give us some feedback because the work put in is serious!

I am quoting my 19-year-old self verbatim, including the spelling, which in the original French was as approximate as you would expect at that hour of the night.

The news page of PHP Forge v2.7.3 running again on a local server, with the original 2003 content

Then 2.7.2 in March ("I tried to secure the site because the earlier versions are very easily hacked!"), a WYSIWYG editor, a new forum, streaming video, all the way to a version 2.9 in late 2003. The site's editorial summed up the chain of custody in three sentences that I no longer knew by heart, but that the Wayback Machine had not forgotten:

The project was started by Atchoum (Pierre Gentile) and then taken over by the community. The current version (2.9) is developed by i@tus (R. Corson) and uses modules from community developers (see the "developers" page). A version 3 of the portal should see the light of day in a few months under the direction of Gandalf (S. Cario) and will be written in PHP5.

The web of 2003, seen from the code

To measure what building a CMS in 2003 was actually like, you only have to read the problems the community spent its time solving in the Boutique's news posts.

Register_globals, first. PHP had long injected every URL parameter directly into a global variable: ?id=12 created $id. All of PHP Forge rested on that. When hosts started turning it off, everything broke, and a user named sbegh published patches: "hosts setting register_global to Off in PHP.INI was causing a few problems on Forge. Admin access becomes impossible, downloads break..."

EasyPHP, next. The all-in-one local server of the era. November 2003, ChBoc: "Many of you have installed the latest build of EasyPHP, and to your great regret phpforge no longer works, like many other CMSes and scripts."

The hosts, always: the mail() function disabled at Free (goodbye newsletter), Ulimit redirects that broke cookies unless you ticked "no cloaking", Multimania capping upload sizes.

A 25-year-old developer reading this today has to wonder how they managed. The answer is in all those news posts: they helped each other, one zip file and one forum thread at a time.

Part 6: What the hard drives contain

Everything so far could be reconstructed from public archives. What follows cannot. It is time to open the PHPFORGE folder.

FORGE 2: Pierre's code, with his fingerprints on it

The first directory holds the original 2.x branch: 127 files, around 5,800 lines of PHP, 18 MySQL tables. The licence file is unambiguous: "PHP Forge: Copyrights Pierre Gentile". The documentation contains a todo file three lines long, whose last item is a cry from the heart: "Create themes!!!".

The three-line todo file from the FORGE 2 documentation, ending with 'Créer des thèmes !!!'

But the most precious thing is elsewhere. The admin/ folder contains changements.log, the admin journal of Pierre's actual site, from September to December 2001. Every admin action was logged automatically:

[Atchoum - 05/10/01 @ 17:38] Ajout d'un article : Créer un thème pour PHP Forge 2.0
[Atchoum - 07/10/01 @ 09:29] Une newsletter a été envoyée
[Atchoum - 17/10/01 @ 14:25] Suppression de messages dans le forum ID : 1
[Atchoum - 03/12/01 @ 20:54] Un nouveau forum a été créé : khkhkh

An article added, a newsletter sent, forum messages deleted, and a new forum created named "khkhkh". You are watching a teenager run his site, evening after evening, right down to a test forum created on a Monday night in December at 8:54pm. Software archaeology is unsettling that way. It preserves the gestures, not only the work.

An extract of changements.log, the admin journal from Pierre Gentile's own PHP Forge site in 2001

The two V3 betas: Pierre's last code

The phpforge_V3 directory contains beta 1 from January 2002: 32 PHP files, 1,650 lines, 7 tables. A rewrite starting from nothing, with the readme signed: "Author: Pierre Gentile. Site: http://phpforge.multimania.com. Email: nskate@chez.com."

The readme file of PHP Forge 3 beta 1, signed 'Auteur : Pierre Gentile'

phpforge_V3b2 is beta 2. The file modification dates say July 2002, which is exactly the code announced in his final news post of 23 July. The installation guide reveals that the site had moved to membres.lycos.fr/phpforge, and gives the default credentials, login "webmaster", password "admin". It is, as far as I know, the last code Pierre Gentile ever published. Thirty files, left there the way you leave a letter on a table.

v2.7.3: my working copy

The phpforge_version_v273 directory was the biggest personal shock of this dig. It is not a distribution archive. It is my working copy. 914 files, 25,000 lines of PHP, 30 tables. The configuration file points at my own site of the time. The data/ folder still holds my visitor statistics. And admin/changements.log is my own admin journal, from April 2003 to December 2004:

[i@tus - 27/04/03 @ 13:18] Un nouveau annonce a été créé : Vente
[i@tus - 28/10/03 @ 17:40] Modification du texte d'accueil
[i@tus - 02/12/04 @ 15:24] Modifications dans la configuration du site

That last line, 2 December 2004, is in all likelihood one of the last times I ever touched a PHP Forge installation in production. I had no memory of it whatsoever.

The changements.log admin journal from the i@tus site, running from April 2003 to December 2004

Yes, "running again": to illustrate this article I put v2.7.3 back online on PHP 5.6 with a register_globals emulation. The 2003 site lit up, with its period content intact. The Shout Box still shows my messages from February 2003, and the admin opens on my own modification journal.

PHP Forge v2.7.3 running again locally in 2026, showing the Nitrokaine Web Concept home page with the original Shout Box messages from February 2003 The PHP Forge v2.7.3 admin login screen, with the 'PHP forge' watermark background The PHP Forge v2.7.3 admin dashboard, opening on the i@tus modification journal and the access summary

An admin panel that went further than it had to

Screenshots can be reconstructed. So here is forty-five seconds of the thing actually running, in 2026, on a container: the 2003 front end first, then the login, then the admin.

Walking around that resurrected admin is a way of measuring how far this amateur portal went for its era. Four dropdown menus organise about twenty modules: Configuration, Interactivity (articles, comments, downloads, events, forums, links, guestbook, news, newsletter, polls, intro text), Modules, Members.

Administrator management offers granular per-module permissions: an admin can have access to news but not the newsletter, to the guestbook but not to downloads, with a "super administrator" status above it all. In the database, the rights matrix is stored as a plain 1,1,1,1,... string, but conceptually these are capabilities. For context: WordPress, released two months later, would handle rights with simple "user levels" numbered 0 to 10, and would not get real roles and capabilities until version 2.0 at the end of 2005. The ICQ field sitting between the email and the description, meanwhile, dates the era better than carbon-14.

The "btcode" module (short for bouts de code, code snippets) manages a snippet library by category, with a view counter. Its "format automatically" checkbox inserts <p> and <br> tags on the author's behalf, which is, feature for feature, what WordPress still does today with wpautop. The photo gallery is finely configurable: thumbnail quality, photos per row and rows per page, maximum image width, and above all comments and voting that can be enabled image by image, years before that became standard.

The database backup, finally, tells you about the ecosystem: it is a third-party tool integrated wholesale, "XT-Dump v 0.6" by DreaXTeaM, copyright 2001-2002, original credits carefully preserved in the interface. French amateur scripts of that era assembled themselves this way, by successive grafts, each one crediting the last. Add the chat room (the one I had to "fix because you could hack it far too easily"), the WYSIWYG editor, private messaging between members and streaming video, and what you get, in 2003, on shared hosting, is a portal that had little to envy in the feature lists of the CMSes that would dominate the following decade.

The ghost V3, and version control by text file

phpforge_Version_3 is the most historically important directory, because nothing it contains was ever published. This is the community V3, the one the editorial announced as being "under the direction of Gandalf", developed between October 2003 and February 2004 on top of the 2.x branch. Ten modules packaged as zips in a zipinstall folder (articles, downloads, links, guestbook, events, classified ads, FAQ, glossary, FTP, and a "dev" module that introduced the team), four themes, the beginnings of cross-cutting category management, an integrated database backup.

And above all, a file named INFO A LIRE IMPORTANT.txt. Our development journal, kept by hand:

30 oct: (i@tus) mise en ligne de version de base, theme arrangé
02 nov: (m@nu) ajout dans le repertoire zipinstall du zip downloads (modifié par yuri)
02 nov: (yuri) correction de probleme de creation de base sql
22 Novembre: (ChBoc) Les modifs suivantes ont été effectuées pour que ça passe
            sous easyphp1.7 (param par défaut des versions php4.3.X)
11 déc : (ChBoc) : ménage effectué avec succès, s'il reste des résidus de
            poussière merci de me prévenir.
14 déc : (i@tus) : j'ai mis l'espace membre et le nouvo theme et modifié quelques
            petites choses. je vous conseille de tt récupérer paske y'a pas mal de modifs
The INFO A LIRE IMPORTANT.txt file, the hand-written development journal of the community version 3

There were four of us: i@tus, ChBoc, Yuri, m@nu. No CVS, no SVN, and Git would not exist for another two years. Our version control system was that text file and zips passed around. That last line translates roughly as "I put in the members area and the new theme and changed a few little things, I suggest you grab everything again cos there's a fair few changes". That was a pull request in 2003.

So why did this V3 never ship? A news post by Stéphane Cario, published on La Boutique on 18 August 2003, gives the most honest answer anyone could give, and it will sound familiar to every volunteer maintainer:

With version 5 of PHP due out in October [...] I am going to need some time to adapt. After more than two months of thinking about possible release dates for php forge v3.0 dev, I have come to the conclusion that it will most likely come out in late 2004 or early 2005. Why so long? On the one hand the time needed to adapt to PHP 5, and on the other my studies, which will force me to program during the school holidays.

Programming during the school holidays. The story of PHP Forge, from the first day to the last, was the story of students writing code between classes.

The journal stops on 14 December 2003, without a conclusion. The php-forge.com domain, registered in November 2003 to host this V3, was still displaying in April 2004: "VERSION 3. CONTEST: LOGO DESIGN. You are the 5997th impatient person to come here... be patient... opening very soon..."

php-forge.com in April 2004, announcing version 3, a logo design contest and an opening 'very soon' that never came

It never opened. By early 2005 the domain had become an ad page. Volunteer projects do not die on a decision. They die on a text file that stops on a 14 December.

Reload: the chapter even the Wayback Machine missed

That leaves php-forge_RELOAD. 1,361 files, 37,000 lines, dated May 2005 to July 2006. A solo attempt at a rebirth: "PHP Forge Reload", copyright "2000-2005 @ PHPForge Reload V1", with a seven-step graphical installer and an admin panel in the taste of the day. There is even JavaScript borrowed from Mambo, the ancestor of Joomla, proof that I was watching what the grown-ups were doing.

Step one of the PHP Forge Reload V1.0 installer from 2005, with its logo and the R. Corson credits

The intended domain, phpforge-reload.com, appears nowhere in the web archives. No capture, no trace. That project only ever existed on my hard drive. The installer credits list two names: R. Corson, and P. Gentile. Three years after he left, I was still crediting Pierre. Reload never shipped. By 2006, WordPress, Joomla and Drupal were taking the whole board, and the era of PHP-Nuke-style portals was over.

The inventory, for the record

Six directories, three eras, a trajectory you can read in the numbers:

VersionMain authorPeriodLines of PHPSQL tables
FORGE 2 (2.1-2.3)Pierre Gentile2001~5,80018
V3 beta 1Pierre GentileJan. 2002~1,6507
V3 beta 2Pierre GentileJul. 2002~2,3006
v2.7.3i@tus and the community2003~25,00030
Community V3 (never released)i@tus, ChBoc, Yuri, m@nu2003-2004~26,50021
Reload (never released)R. Corson2005-2006~37,00018

Part 7: Two months

One last time, let us go back to 13 March 2003 and the "Goodbye, World!". To measure what is historic about that moment, you have to tell another story in parallel, one that unfolds at exactly the same time, and that also begins with an abandoned French CMS.

In 2001, while Pierre was building PHP Forge, another French developer, Michel Valdrighi, was building b2/cafelog, a blogging engine in PHP and MySQL. In late 2002, the year Pierre started drifting away, Valdrighi also stopped maintaining his software and dropped out of sight, for personal reasons he would talk about on his return. Two French CMSes, two solo authors, two silences, at the same moment.

What follows diverges. In January 2003, a b2 user, a 19-year-old Texan named Matt Mullenweg, published a post on his blog titled "The Blogging Software Dilemma": his favourite tool was no longer maintained, so what now? An English developer, Mike Little, replied in the comments: what if we forked it? On 27 May 2003, two and a half months after Pierre's "Goodbye, World!", version 0.7 of a b2 fork renamed WordPress was released. The same year, a third French developer, François Planque, forked b2 on his own side to create b2evolution. As for Valdrighi, he gave WordPress his blessing, it was named the official successor to b2, and he went on to contribute to the project himself.

Now read the full chronology back, on both sides of the Atlantic. Spring 2003: two French CMSes are orphaned. Both communities refuse the ending. The b2 community forks and renames. The PHP Forge community carries on at La Boutique, ships versions 2.6 through 2.9, starts a V3. The human mechanics are rigorously identical: an exhausted creator, freely available code, 19-year-old users rolling up their sleeves. On one side that becomes WordPress, which would go on to power more than forty percent of the web. On the other it becomes an INFO A LIRE IMPORTANT.txt that stops on a 14 December.

I will draw no conclusion from this symmetry. History does not get replayed, and the fate of a piece of software does not rest on its author's talent alone, nor on the goodwill of the people who take it over. It rests on a licence, on timing, on the size of the English-speaking market, on a co-founder arriving at the right moment, on whether or not anyone wanted to build a company out of it, on a thousand factors nobody controls. Pierre had said himself why he was stopping: no more time, no more desire, no more ideas. That is a sufficient reason, and it is his.

What remains is a fact, and it stands on its own: in the very early 2000s, a French high school student built, alone, two publishing systems that other people judged valuable enough to keep alive without him. Phortail inspired GuppY and was maintained for years by its community. PHP Forge had its successors, its fork (Yome-Forge, "a slightly improved version of the late PHP-Forge"), its Paris drinks and its webring. Not many developers can say as much about the work they did before turning 18.

Part 8: Finding the creator

One question remained, in fact the first of all of them: what became of Pierre Gentile?

In 2003 he had written: "I am not stopping PHP programming. In a while I will probably start a new project." Then nothing. No public trace under that name anywhere in open source. The chez.com email has been dead for a long time. Nitro Skateboarding disappeared along with Multimania.

I eventually found a profile that matches the chronology feature for feature: a French software engineer whose engineering studies begin in the autumn of 2003, six months after the "Goodbye, World!" written in the middle of his final year of high school. A discreet profile, with no visible connection to CMSes. I sent him a message, capped by LinkedIn at 200 characters:

Hello Pierre. Are you "Atchoum", creator of PHP Forge in the early 2000s? If so, I am i@tus. I found all the project archives. I would like to talk with you. Take care.

As I write these lines, I am waiting for the answer. There is something fitting in that wait. In 2003 I inherited his code without ever having spoken to him. Twenty-five years later, the first thing I get to tell him is that his work is not lost.

Epilogue

On my side, PHP Forge was the start of a long history with CMSes. After PHP Forge came WordPress, WooCommerce, eleven years at Automattic, and today SEOPress and Milo. Reading this code again twenty-five years later, I realise I am doing the same job I was doing at 20: building tools to help other developers and site creators.


Appendix: timeline

  • ~2000: Pierre Gentile ("Atchoum"), a French school student, builds Nitro Skateboarding, then Phortail, a mini CMS with no database.
  • June 2001: Phortail abandoned, PHP Forge launched on phpforge.multimania.com. Phortail is later taken over by a community and inspires GuppY.
  • October 2001: the Multimania account is compromised, delaying the release of PHP Forge 2.0.
  • December 2001: PHP Forge 2.3. The V3 rewrite begins (templates, SQL cache).
  • June 2002: Pierre is interviewed by Luc (lesitaluc.com); French Bac exam.
  • 23 July 2002: beta 2 of PHP Forge 3, Pierre's last release.
  • Autumn 2002: the Multimania site disappears; La Boutique PHP Forge (phpforge.oirac.com) is founded by Gandalf (S. Cario) and Yvan.
  • February and March 2003: versions 2.6, 2.7, 2.7.1, 2.7.2 by i@tus (R. Corson) and ChBoc.
  • 13 March 2003: Pierre Gentile's "Goodbye, World!" on Boomtchak.
  • April 2003: Yome-Forge fork by yome3000.
  • Late 2003: version 2.9; development of the community V3 (i@tus, ChBoc, Yuri, m@nu); php-forge.com registered.
  • 2004: php-forge.com never opens; the dev journal stops on 14 December 2003.
  • 2005-2006: PHP Forge Reload (R. Corson), never released.
  • In parallel, on the b2 side: 2001, Michel Valdrighi (France) creates b2/cafelog; 2002, he stops maintaining it; 24 January 2003, Matt Mullenweg's "The Blogging Software Dilemma" post; 27 May 2003, WordPress 0.7 is released as a fork of b2; the same year, François Planque (France) forks b2 into b2evolution.

Appendix: sources

Personal archives: source code for PHP Forge 2.x, 3.0 beta 1 and 2, v2.7.3, the community V3 and Reload, with changelogs, admin journals and the development journal. Public archives: the Wayback Machine (phpforge.multimania.com, phpforge.oirac.com, php-forge.com, boomtchak.net, phortail.org), Luc's interview of Pierre Gentile (lesitaluc.com, June 2002, reproduced on Boomtchak in March 2003), the "phpForge is stopping" announcement (Boomtchak, 14 March 2003), the Phortail documentation (phortail.free.fr), the GuppY FAQ (freeguppy.org), the phpforge entry (phpsources.net, December 2005), and the PHP portals comparison (developpez.com).

All quotes originally in French have been translated. Log files and the development journal are reproduced verbatim in the original.