Les prémices de SPIP remontent au courant de l’année 1998 : Pierre Lazuly souhaite développer un système de publication pour faciliter la gestion de son site « Les chroniques du Menteur ». ARNO* a réalisé en Server Side Includes (une technologie très rudimentaire) un petit outil pour gérer les éditos du Scarabée et, de son côté, Erwan a développé un outil pour gérer L’Ornitho.
Erwan est alors le seul à savoir gérer une base de données, Pierre est en train de s’initier à PHP, et ARNO* ne connait ni PHP ni les bases de données. Mais Pierre passe ses vacances sur un bateau baptisé « SPIP » ; et comme « SPIP » est l’acronyme de « Système de Publication pour l’Internet », cela suffit à lancer le projet : on a le titre, le reste devrait être facile...
Cependant, malgré quelques essais (un premier système gère un site à base de PHP, mais pas de base de données, les informations étant stockées dans des fichiers selon un format spécifique - une sorte de XML qui s’ignorait -, avec un premier système d’identification des rédacteurs), le projet ne progresse guère. Il faudrait en effet :
- pouvoir réaliser n’importe quel type de site avec un même outil ;
- gérer ce site avec une interface accessible à tous.
Lors d’une soirée, Erwan dessine sur un bout de la nappe en papier du restaurant la structure d’une base de données qui permettrait de réaliser n’importe quelle structure de site. L’esthétique de la chose effraie ses deux compères, et SPIP en reste à ce stade de la nappe de restaurant tâchée de café.
Pierre définit l’utilisation de touches rarement utilisées dans un texte (les accolades notamment) pour créer rapidement de l’italique et du gras, ce qu’il nomme les « raccourcis SPIP ». Le système de publication des éditoriaux en Server Side Includes est traduit en PHP, mais pas d’utilisation de la base de données mySQL.
Juste avant l’été 2000, ARNO* réalise le site des éditions Vuibert, dont le principe est un système PHP/mySQL, une interface privée où les personnels de l’entreprise enrichissent eux-mêmes le site, et un système de droits qui permet à certaines personnes (les « administrateurs » du site) de valider certains éléments avant leur mise en ligne. À partir des éléments fournis par les éditeurs, le système permet en outre de fabriquer des documents de gestion interne à partir de fichiers HTML contenant des éléments conditionnels, auxquels on peut attribuer des filtres, ce qui deviendra un des principes des squelettes de SPIP.
Parallèlement, avec Fil, il créé un système de publication simplifié pour gérer les « Cahiers documentaires » du Monde diplomatique pour lesquels, notamment, le système de raccourcis typographiques est plus développé. La fonction qui gère la typographie française et les raccourcis est diffusée à partir de la fin mai 2000 sous la forme d’un fichier intitulé « spiplib.inc ».
Durant l’été 2000, le Minirézo décide de relancer son site uZine, sous la forme d’un site dynamique auquel n’importe qui pourrait participer. ARNO* développe un outil à base de PHP et de MySQL, dont la particularité est la simplicité de l’interface de gestion du site. L’ensemble est affreusement mal programmé, mais fonctionne...
En septembre 2000, le lancement d’uZine 2 avec ce système valide l’idée qu’on peut utiliser une interface graphique très simple pour gérer un site relativement complexe, afin que n’importe qui puisse y participer sans connaissances techniques.
L’objectif de pouvoir réaliser n’importe quel type de site est écarté (le système correspond, à la base, aux besoins d’uZine 2), mais il est décidé que le système allait servir de base au système SPIP lui-même.
Cette première version comprend un correcteur orthographique basé sur le dictionnaire des mots communs de l’ABU. Ce correcteur sera finalement abandonné : impossible à diffuser à cause de la taille du dictionnaire (plusieurs mégaoctets, plus de 300 000 mots) et, appliqué à un texte très long, il mettait n’importe quel serveur sur les genoux... On trouve également une exportation automatique de l’intégralité d’une rubrique vers un autre site (fonctionnalité elle aussi abandonnée, et remplacée par un système de syndication de contenus) ; ainsi, les sites Insurgence et Radiophare proposaient-ils des textes tirés de rubriques d’uZine, récupérés automatiquement et reformatés selon leur propre interface graphique.
Antoine participe à partir de ce moment au développement de SPIP, Fil soutient le projet, et le développement continue dans l’optique d’offrir un système complet sous licence libre.
Une procédure d’installation automatisée est intégrée, le principe des squelettes permettant de réaliser des interfaces graphiques sans utiliser PHP est élaboré, un système de cache est installé, et surtout des modifications importantes du système d’authentification des rédacteurs permettent de faire fonctionner SPIP chez un grand nombre d’hébergeurs.
Quelques semaines avant le lancement officiel de SPIP, les sites uZine, du Monde diplomatique et de Vacarme testent le système en conditions réelles d’utilisation, et permettent de valider le système de cache, la gestion d’une grande quantité d’information et le principe de l’interface de gestion d’un site.
Le 1er juillet 2001 : SPIP 1.0 est lancé officiellement. L’intervalle de temps important entre l’ouverture d’uZine 2 (avec une préversion de SPIP) et le lancement de SPIP est dû à plusieurs éléments :
- développer de nouvelles fonctionnalités, stabiliser le produit (éliminer des bugs), nettoyer une partie du code (qui était particulièrement sale), assurer une plus grande compatibilité avec de nombreux hébergeurs ;
- redessiner une interface graphique pour l’espace privé, qui permette d’inclure et hiérarchiser les 200 000 nouvelles fonctionnalités ajoutées au produit initial ;
- tester les choix du système sur plusieurs sites aux contenus et aux fréquentations très différents ;
- rédiger une documentation complète du système (une véritable plaie !).
Octobre 2001 : SPIP 1.2 (il n’y a pas eu de version officielle 1.1). Le processus de développement a évolué : en effet, depuis le lancement officiel, il y a d’autres utilisateurs de SPIP que ses développeurs ! Ainsi, les nouvelles fonctionnalités répondent beaucoup plus aux besoins réels exprimés par les webmestres (et non plus aux besoins d’uZine), plusieurs informaticiens compétents apportent ponctuellement des solutions pour le développement, et le débuggage se fait quasiment en temps réel.
Janvier 2002 : SPIP 1.3. Le développement continue, avec son lot de nouveautés. Un changement dans le développement : de nombreux utilisateurs sont désormais très compétents avec SPIP. De ce fait :
- les réponses aux questions des utilisateurs débutants sont largement prises en charge par d’autres utilisateurs, ce qui libère énormément de temps pour le développement du système (le lancement officiel de SPIP avait provoqué une charge de travail énorme pour les développeurs, dans l’explication de l’utilisation du système) ;
- ces utilisateurs devenant plus compétents, les nouvelles fonctionnalités de SPIP sont moins spectaculaires, et concernent largement une utilisation poussée du système.
Septembre 2002 : SPIP 1.4. Refonte radicale de l’interface de l’espace privé ; le nombre de fonctionnalités devenait trop important pour l’ancienne interface, la nouvelle permet de mieux structurer et hiérarchiser les fonctions de SPIP. Fontion très attendue : SPIP permet désormais d’incorporer des documents joints (notamment multimédia) à son site.
Décembre 2002 : SPIP 1.5. Cette version propose de nouveaux squelettes par défaut, nettement plus compatibles avec la norme xhtml. Les autres modifications sont beaucoup plus discrètes pour l’utilisation quotidienne de SPIP, mais renforcent nettement la stabilité et la cohérence du système.
Mai 2003 : SPIP 1.6. L’énorme nouveauté de cette version est la possibilité de changer la langue de l’espace privé : on peut désormais utiliser SPIP anglais, italien, espagnol, danois, allemand, arabe, créole réunionais, vietnamien... Un outil spécifique facilitant la traduction de l’interface est créé. Les volontaires pour proposer des traductions se regroupent sur la liste spip-trad.
Novembre 2003 : journée SPIP au Médialab. Pascale organise une journée de rencontres entre les développeurs, les traducteurs et les créateurs de sites.
Janvier 2004 : SPIP 1.7. La principale nouveauté de cette version est d’introduire le multilinguisme : un site sous SPIP peut contenir des articles dans plusieurs langues, gérer des règles typographiques et des affichages automatiques (dates, formulaires...) dans plusieurs langues, et présenter les liens entre les différentes traductions d’un article.
Avril 2005 : SPIP 1.8. Une année de travaux. L’interface graphique est remaniée, l’ergonomie évolue notablement. Sous le capot, un nouveau moteur de « compilation » des squelettes ouvre des perspectives de développements inédites. SPIP introduit de plus des mécanismes client-serveur (certaines fonctions, difficiles à livrer « installées » avec SPIP — comme le correcteur d’orthographe ou la production de formules mathématiques —, sont effectuées par des serveurs, chaque site utilisant ainsi une ressource centralisée).
Le noyau des développeurs accueille Emmanuel, qui avait publié sur SPIP Contrib’ le nouveau moteur, ensuite adopté et finalisé pour cette version. Le projet de mastère de Diala, graphiste, sert de base à la nouvelle interface. On note que les contributions « extérieures » sont de plus en plus « touffues » (comprendre : de haut niveau).
Premier juillet 2006, pour le cinquième anniversaire de la première version officielle, sortie de SPIP 1.9. Un système de plugins permet d’enrichir SPIP sans devoir modifier le noyau. Une large variété de filtres graphiques permet de créer des images typographiques, d’extraire et manipuler des couleurs des images, et de retravailler les images. Les squelettes de base passent en XHTML strict. Les fichiers sont réorganisés et nettement mieux structurés.
L’équipe des développeurs s’enrichit de trois nouveaux membres : James, Romy et Cédric.