Jonathan Kongolo

Fullstack developer · AI & MCP

← Projects

Muinda Collab — multi-tenant business platform with a shared inbox

, , , ,
Role
Architect & sole developer
Period
2026 →
Client / context
Muida Tech AS — own product
Tech stack
Node.js, Express, Sequelize, MySQL, React, Vite, React Native, Expo, TypeScript, Socket.io, Firebase Cloud Messaging, S3, Docker, AWS Lightsail, RDS, ECR
Outcome
In use by several companies. Approved as a Meta Tech Provider.

Muinda Collab is a multi-tenant business platform for small and medium companies. As architect and sole developer I have been responsible for the backend, the web client, the mobile app, the infrastructure and operations.

The platform brings over twelve modules into one system: accounting with a general ledger, invoicing, loans and payroll, inventory and product catalogue, customer and lead registers, task management, attendance and device registration, events with public sharing, a shop and a marketplace, plus modules aimed at specific industries. The architecture is multi-tenant with tenant isolation of data and role-based access across every module, and features are gated per subscription plan. It handles several currencies — USD, EUR, CDF and NOK — with automatic conversion and Mobile Money support.

The hardest part was the messaging layer. WhatsApp Business, Telegram and the company’s email are gathered into one shared inbox, so any employee can reply while the customer only sees the business. That meant integrating directly against the Meta Graph API and the Telegram Bot API, handling Meta’s 24-hour messaging window and the approval flow for templates, connecting arbitrary IMAP and SMTP mailboxes, and transcoding voice messages.

Meta’s 24-hour window blocks outbound messages to customers who have not been in conversation recently. I solved it with a queued sending mechanism: the system first sends a pre-approved opening template, holds the actual message in a queue, and sends it automatically the moment the recipient replies and the window opens. Quick-reply buttons on the templates are recorded back as structured responses, including event RSVPs.

I also implemented Meta’s full compliance requirements: the OAuth redirect plus callbacks for deauthorisation and data deletion that verify Meta’s HMAC-signed requests and delete the user’s data on request.

The platform has two systems for reusable text. Canned responses are stored per business with title, content and author tracking, so staff can insert standard phrasing directly into a conversation. On top of that I built a template library for message templates with category, language and structured components, synchronised against Meta’s template catalogue with approval status. Both are tenant-isolated with role-based write access.

On the server side a set of scheduled background jobs run in production: daily push notifications, task reminders, scheduled publishing to social media, queued broadcasts, uptime monitoring and cleanup of email and status data. The accounting side has separate ledgers per business area with cost price and pricing calculation, and receipt generation on sale. The system logs user actions as an audit trail and can send outbound webhooks to third-party systems. The API is versioned.

Other central parts are real-time updates over Socket.io, keyword-based sentiment analysis that flags unhappy customers, a response-time scoreboard, a product catalogue that can be sent as rich cards in chat, social media and LinkedIn integration with ad management, server-side generation of sharing images for events, a marketplace with AI-assisted content, and optional OpenAI assistance to rephrase a reply, suggest a response or summarise a conversation.

More projects