Overview
Discover what makes Movim powerful
Movim is a federated blogging and chat platform that exposes the XMPP protocol through an intuitive web interface. It acts as a *gateway* between end‑users and the XMPP network, providing rich features such as real‑time chatrooms, video conferencing, community nodes, and a lightweight blogging engine. From a developer’s perspective, the core value lies in its open‑source architecture, modular design, and adherence to standards, allowing seamless integration with existing XMPP infrastructure.
Frontend
Backend
Database
XMPP Integration
Overview
Movim is a federated blogging and chat platform that exposes the XMPP protocol through an intuitive web interface. It acts as a gateway between end‑users and the XMPP network, providing rich features such as real‑time chatrooms, video conferencing, community nodes, and a lightweight blogging engine. From a developer’s perspective, the core value lies in its open‑source architecture, modular design, and adherence to standards, allowing seamless integration with existing XMPP infrastructure.
Technical Stack & Architecture
- Frontend: Built with modern JavaScript (ES6+), leveraging the React framework for component‑driven UI. State management is handled by Redux, and routing via React Router. The frontend communicates with the backend through a RESTful API and WebSocket for real‑time events.
- Backend: Implemented in PHP 8, using the Laravel framework. Laravel’s service container and Eloquent ORM provide a clean abstraction over the database layer.
- Database: Supports PostgreSQL and MySQL; migrations are managed through Laravel’s migration system. The schema is lightweight, focusing on user accounts, messages, and community nodes.
- XMPP Integration: The core of Movim is its XMPP bridge, written in PHP using the Strophe.js library on the client side and the php-jabber library on the server side. This dual‑stack ensures bidirectional communication with any compliant XMPP server (ejabberd, Prosody, Openfire, etc.).
- Real‑Time Engine: WebSocket connections are established via Laravel Echo and powered by Socket.IO, enabling instant message delivery and presence updates without polling.
Core Capabilities & APIs
- Federated Presence: Exposes user presence across multiple XMPP servers; developers can query or subscribe to presence changes through the WebSocket API.
- Multi‑Server Support: Configurable to connect to one or several XMPP servers simultaneously, with per‑server routing for messages and presence.
- Community Nodes: Implements XMPP PubSub nodes, allowing developers to create or consume community feeds programmatically via the REST API.
- Webhooks: External services can subscribe to events (e.g., new messages, node updates) via HTTP callbacks.
- Plugin System: A modular architecture where plugins are PHP classes registered in
config/plugins.php. Plugins can hook into events, expose new routes, or add UI components.
Deployment & Infrastructure
- Self‑Hosting: Runs on any LAMP stack (Linux, Apache/Nginx, MySQL/PostgreSQL, PHP). Docker images are available for quick deployment; containers expose ports 80/443 and can be orchestrated with Docker Compose or Podman.
- Scalability: Horizontal scaling is straightforward—stateless PHP workers behind a load balancer, with Redis for session storage and caching. The WebSocket layer can be scaled using a message broker (Redis Pub/Sub) to share state across instances.
- Containerization: Official Docker images are built from Alpine‑based PHP runtime, ensuring minimal footprint. The CI pipeline automatically builds and pushes images to Docker Hub.
Integration & Extensibility
- REST API: Full CRUD operations for users, messages, and nodes. OAuth2 support is available via Laravel Passport.
- WebSocket API: Real‑time events for chat, presence, and node updates. Clients can subscribe to specific rooms or user streams.
- Custom Themes: The UI is themeable through CSS overrides and optional SASS variables, allowing developers to brand the interface.
- Third‑Party Plugins: Community plugins cover functionalities like calendar integration, file sharing, and analytics. The plugin API exposes lifecycle hooks (
onMessage,onPresence) for deep customization.
Developer Experience
- Documentation: Comprehensive README, INSTALL.md, and a dedicated Wiki provide clear guidance on setup, configuration, and plugin development. API docs are auto‑generated using Swagger/OpenAPI.
- Community: Active GitHub discussions, a public Slack channel, and a Transifex project for translations. The AGPLv3 license encourages collaboration while ensuring the software remains open.
- Testing: Unit tests written in PHPUnit cover core logic; integration tests use Laravel’s testing utilities. CI pipelines run on GitHub Actions, ensuring code quality before releases.
Use Cases
- Enterprise Communication Hub: Organizations can deploy Movim on their own servers to provide a unified chat and blogging platform that stays within corporate firewalls while still interoperating with external XMPP clients.
- Community Platforms: Open‑source projects or NGOs can host a Movim instance to foster discussion, publish updates, and manage community nodes without relying on third‑party social networks.
- Educational Tools: Universities can use Movim as a teaching aid for distributed systems, demonstrating real‑time communication over XMPP while allowing students to develop plugins.
Advantages
- Standards‑Based: Full XMPP compliance ensures interoperability with thousands of existing clients and servers.
- Open Source & AGPLv3: Guarantees freedom to modify, extend, and host the software without licensing constraints.
- Modular & Extensible: Plugin architecture lets developers add bespoke features without touching core code.
- Scalable & Container‑Friendly: Ready for cloud deployments or on‑premise scaling with minimal effort.
- Rich Feature Set: Combines chat, video, blogs, and PubSub in a single stack—developers can build complex social applications without
Open SourceReady to get started?
Join the community and start self-hosting Movim today
Related Apps in apis-services
Mastodon
Decentralized, real‑time social networking
Discourse
Open‑source community forum platform with real‑time chat and AI
Rocket.Chat
Secure, open‑source team communication platform
Novu
Unified notification platform for multi‑channel delivery
Mattermost
Secure, self‑hosted team collaboration with chat, voice, and AI
Jitsi Meet
Free, encrypted video conferencing for everyone
Weekly Views
Repository Health
Information
Explore More Apps
Habitica
Gamify your habits and tasks

OneDev
All-in-one DevOps platform for code, CI/CD, and task management
wanderer
Create and search your trail catalog
Apache Superset
Open‑source BI for fast, no‑code data exploration
Zenphoto
Simple media CMS for personal websites
ThingsBoard
Open‑source IoT platform for device management and real‑time data visualization
