The software is written in PHP, and relies on one or more SQL databases: MySQL / MariaDB, SQLite or PostgreSQL. The pages of the site are generated 'on the fly': the contents stored in the database are formatted through presentation 'skeletons' that merge HTML and SPIP's own markup language. A caching system avoids the generation of pages at each request: when a page is requested, SPIP checks if it doesn't exist in its cache and if it isn't too old, it will be displayed. The life-span of a page is adjustable in its presentation skeleton.
History
SPIP was originally conceived for the uzine.net site, after which its designers released it under GPL License. Since its launch 2001, it has also been used for Le Monde diplomatique newspaper and www.vacarme.eu.org; the webmaster of Le Monde diplomatique is one of the initiators of SPIP, SPIP integrates a cache mechanism, an authentication system, an automatic setup module and an interface for administration and input of articles. SPIP can create dynamic pages without any PHP knowledge, using a web template system known as 'skeletons''. In early 2003, the 1.6 version made it possible to display the private back-end interface in several languages. A space for translators is set up in order to multiply the number of available versions. In January 2004, the 1.7 version of SPIP enables the management of multilingual websites, and implements a search and content indexing module; It also enables syndication of other sites' contents. In April 2005, the private interface of version 1.8 was reworked in order to take into account an analysis of ergonomic processes. An important modification for developers is SPIP's core that now benefits from a new compiler. It then becomes possible to elaborate skeletons with more complex functionalities without requiring any coding work in PHP. Other re-workings are currently under way, such as the reworking of the private interface in the form of skeletons. The 1.9 version introduced a plug-in system and numerous changes, notably in the organisation of component files. These data may be found locally or directly on an URL. So the web itself may be used as a database. The 3.1 version was released on. It provides updates of JavaScript libraries, default CSS styles, enhances the editorial space, provides new tools for writing skeletons, performance and writing code improvements. The 3.2 version was released on. It includes an update of embedded JavaScript libraries, better ergonomics of the private space as well as other improvements.