Overview
Discover what makes SPIP powerful
SPIP (Système de Publication pour l’Internet) is a free, GPL‑licensed content management system written primarily in PHP and designed to empower collaborative publishing. From a developer’s perspective, SPIP abstracts the typical CRUD workflow into a templating engine and a flexible metadata model that can be extended via plugins. The core of the system is a lightweight MVC‑ish architecture where the *article* model is stored in a relational database (MySQL/MariaDB, PostgreSQL or SQLite), while the rendering pipeline is driven by `spip.php` and a series of reusable templates (`.html`) that expose the data through PHP functions.
Metadata‑centric content
Template engine
Plugin ecosystem
Internationalisation
Overview
SPIP (Système de Publication pour l’Internet) is a free, GPL‑licensed content management system written primarily in PHP and designed to empower collaborative publishing. From a developer’s perspective, SPIP abstracts the typical CRUD workflow into a templating engine and a flexible metadata model that can be extended via plugins. The core of the system is a lightweight MVC‑ish architecture where the article model is stored in a relational database (MySQL/MariaDB, PostgreSQL or SQLite), while the rendering pipeline is driven by spip.php and a series of reusable templates (.html) that expose the data through PHP functions.
Key Features
- Metadata‑centric content: Every article, image or document is a record with arbitrary fields; developers can add custom attributes via the type system without touching the database schema.
- Template engine: SPIP’s own syntax (
{#article.titre}) is parsed into PHP at runtime, allowing theme authors to compose layouts without learning a new templating language. - Plugin ecosystem: Over 300 community plugins provide APIs for authentication, RSS/Atom feeds, social media integration, and e‑commerce hooks. Plugins are distributed as PHP packages that register callbacks in the core’s hook system.
- Internationalisation: A robust i18n framework automatically loads language files based on the user’s locale, making it trivial to ship multilingual sites.
Technical Stack
| Layer | Technology |
|---|---|
| Server | Apache/Nginx with PHP 8.x, FastCGI |
| Language | PHP (core + plugins) |
| Database | MySQL/MariaDB, PostgreSQL, or SQLite |
| Front‑end | Plain HTML/CSS with optional JavaScript; SPIP ships a responsive UI kit |
| Build/Deployment | Composer for dependency management, Docker images available from the community |
The architecture follows a service‑orientation pattern: core services (publishing, routing, caching) expose hooks (spip_before_article_save, spip_after_user_login) that plugins can subscribe to. The routing layer maps URLs to controller functions defined in index.php, which then render templates via the SPIP engine.
Deployment & Infrastructure
SPIP is designed for self‑hosting on LAMP/LEMP stacks. The minimum requirements are PHP 7.4+ and a supported database; however, for production environments we recommend PHP 8.x with OPcache enabled. The application is stateless aside from the database, making horizontal scaling straightforward: multiple web servers can share a single database instance behind a load balancer. Docker images simplify deployment, and the community provides ready‑made compose files that include a MySQL container and an Nginx reverse proxy.
Integration & Extensibility
- APIs: REST‑like endpoints are available for CRUD operations on articles, users, and metadata. Developers can also expose custom endpoints by writing a plugin that registers an
spip_apiroute. - Webhooks: Plugins can trigger external services (e.g., Slack notifications) on events such as
spip_article_created. - Custom Fields & Types: The type system allows adding new content types (e.g., “product”, “event”) with their own validation rules and templates.
- Theme Development: Themes are simply directories of template files; developers can override core templates or create new ones without modifying the core codebase.
Developer Experience
SPIP’s documentation, though primarily in French, is comprehensive and includes a developer section that explains the hook system, template syntax, and plugin API. The community is active on mailing lists and IRC, providing quick support for integration questions. Configuration is handled via a config.php file and an admin UI that exposes most options (database credentials, URL rewriting settings, cache strategy). The licensing model (GPL) ensures that any modifications remain open source, encouraging collaborative improvement.
Use Cases
- Association websites: Rapidly deploy a multilingual portal with member areas and event calendars.
- Institutional intranets: Use SPIP’s role‑based access control to manage internal documentation.
- Micro‑ecommerce: Combine the product type system with a payment plugin to sell digital goods.
- Content syndication: Expose RSS/Atom feeds and JSON APIs for downstream services.
Advantages
- Performance: PHP’s native execution plus OPcache yields fast response times; caching layers (APCu, Redis) can be added for high traffic.
- Flexibility: The metadata model means adding new fields never requires a database migration script; developers can prototype quickly.
- Licensing: GPL ensures that customizations cannot be sold as proprietary without releasing the source, fostering a healthy ecosystem.
- Community & Longevity: Over two decades of development have produced a mature, battle‑tested codebase with extensive plugins and theme libraries.
For developers seeking a lightweight yet extensible CMS that can be fully controlled in their own environment, SPIP offers a compelling blend of technical robustness, modularity, and open‑source freedom.
Open SourceReady to get started?
Join the community and start self-hosting SPIP today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Grimoire
Organize and enchant your bookmarks
Sonarr
Automated TV show downloader and organizer
WackoWiki
Lightweight multilingual wiki engine with WYSIWYG editing
piqueserver
Self-hosted other
Stash
Self‑hosted organizer for adult media
bewCloud
Simple, lightweight web cloud built with Deno and Fresh
