Quickstart
Get MediaWiki running locally and write your first extension in minutes.
Architecture Overview
Understand how MediaWiki’s components fit together.
Extension Development
Build extensions using hooks, services, and the extension registry.
API Reference
Integrate with the REST API and Action API.
What is MediaWiki?
MediaWiki is a free and open-source wiki framework written in PHP. It powers Wikipedia and thousands of other wikis across the web. As a framework, it provides:- A hook system that allows extensions to modify nearly every aspect of the application
- A service container (
MediaWikiServices) for dependency injection across all subsystems - A REST API and Action API for programmatic access to wiki content
- A ResourceLoader for optimized JavaScript and CSS delivery
- A parser that converts wikitext markup to HTML, with support for custom content models
- A skin system for fully customizing the rendered HTML output
MediaWiki requires PHP 8.2 or later and supports MySQL/MariaDB, PostgreSQL, and SQLite databases.
Key developer entry points
Hooks
Respond to events throughout the request lifecycle
Services
Use dependency injection via MediaWikiServices
Extensions
Package your code as a distributable extension
Database
Query and update wiki data with the database layer
REST API
Modern REST endpoints for pages, revisions, and search
Action API
The classic MediaWiki API for all wiki operations
Getting started paths
- Extension Developer
- API Integrator
- Skin Developer
Install MediaWiki
Follow the installation guide to set up a local development environment.
Understand the architecture
Read the architecture overview to understand request flow, the service container, and the hook system.
Create an extension
Follow the extension overview to create your first extension with
extension.json.Register hooks
Learn how to register and implement hooks to respond to MediaWiki events.
Add services
Use dependency injection to make your extension testable and maintainable.
Learn more
Installation requirements
System requirements: PHP, database, and web server setup
Configuration reference
All
LocalSettings.php configuration variablesMaintenance scripts
CLI scripts for database updates, cache purging, and more
Security
User permissions, content security, and safe extension practices
