MOSA Plugin Ecosystem
Discover how MOSA transforms from a messenger into a powerful offline platform through its dual-layer plugin system.
1. Dual-Layer Architecture
Unlike traditional messaging apps, MOSA is designed as an extensible platform. Its plugin system operates on two distinct layers, working in harmony to provide rich features even without internet access.
Client-Side Plugins
Written in Flutter/Dart.
Run directly inside the MOSA Messenger app. They add new UI screens, handle new message types, and interact with the user.
Server-Side Plugins
Written in PHP.
Run on the Internet Gateway. They act as bridges to external services (WhatsApp, Telegram) or host heavy logic/databases.
2. Client-Side Capabilities
Extend the app's functionality beyond messaging. These plugins turn MOSA into a swiss-army knife for field operations and entertainment.
Featured Examples
Manga Reader Plugin
A full-featured offline content reader.
- Offline Sync: Download chapters via the mesh network from a local Gateway.
- No Internet Needed: Perfect for entertainment in isolated locations.
- Integrated directly into the app interface.
ConnectLog (Data Collection)
Field data collection and reporting tool.
- Structured Forms: Create custom forms for surveys or incident reports.
- Geo-Tagged: Automatically attaches GPS location to entries.
- Mesh Upload: Data is packetized and sent to the HQ Gateway via the mesh.
3. Server-Side Capabilities
The Gateway isn't just a router; it's an application server. Server-side plugins enable integration with the outside world.
Bridge Plugins
WhatsApp & Telegram Bridges
Allows MOSA users to send and receive messages from these popular networks without direct internet access on their device.
class WhatsAppPlugin implements GatewayPlugin {
public function onMessage(Message $msg) {
// Defines how a MOSA message is converted
// to a WhatsApp API call
$this->api->sendMessage($msg->to, $msg->content);
}
}
Web Interaction
Plugins can also scrape websites, fetch weather data, or interact with any HTTP API, returning the result as a compressed message to the offline user.
4. For Developers
MOSA is open platform. You can build your own plugins to solve specific problems.
Getting Started
Check the documentation in the core repository:
/docs/16_Plugins/
/plugins/README.md