Wordpress Text, Audio, and Video Communications Plugin
A full-stack communication platform in the form of a plugin. Used for Wordpress sites, with added video and audio capabilities. Role-aware, customizable, and secure.
Click individual sections for images, or view the Gallery!
What it is
What I built here is essentially a full-stack, real-time communication system designed to work inside a web environment. The core of the project combines a custom Node.js signaling server, a WebRTC-based SFU powered by Jitsi, and a WordPress-integrated frontend plugin that handles chat, presence, and user interaction. The system supports persistent messaging, direct messaging rooms, and live audio/video sessions, all tied together through a unified interface. Architecturally, this required separating concerns cleanly: WordPress handles user identity and UI, Node.js manages real-time communication and signaling, and Jitsi handles media routing at scale.
Key Constraints
One of the biggest constraints was infrastructure. Initially, I used a cloud VM environment that introduced limitations in networking and performance. The setup was time consuming and it couldn’t reliably host more than 2 users without significant performance issues. I had to develop a deeper understanding of how networking actually works end-to-end: DNS resolution, TCP handshakes, reverse proxy behavior, and how cloud providers enforce security rules. Moving from a VM to a physical Ubuntu server was a deliberate decision to gain more control over the environment, reduce latency, and remove hidden constraints imposed by managed infrastructure.
Engineering Challenges - 1
A major engineering challenge was orchestrating multiple services to behave as a single system. Nginx became the central routing layer, terminating SSL and directing traffic to either the Jitsi SFU or the Node.js signaling server based on subdomains and paths. Getting this right required careful handling of WebSocket upgrades, proxy headers, and service isolation. Debugging 502 errors, failed TLS handshakes, and unreachable ports forced me to rely on tools such as tcpdump, ss, and iptables to trace packet flow and identify where communication was breaking down. This required a gained understanding of how each layer of the stack interacts under real-world conditions.
Engineering Challenges - 2
Another challenge was ensuring real-time reliability and scalability. WebRTC systems are sensitive to latency, bandwidth, and connection stability, so I had to choose an SFU approach rather than peer-to-peer. Integrating Jitsi via Docker introduced its own complexity, especially around port mapping, UDP traffic for media, and aligning it with my reverse proxy setup. At the same time, I had to make sure the Node.js server could handle concurrent connections efficiently, manage sessions securely, and support features like direct messaging rooms without degrading performance. This required thoughtful separation of responsibilities and an awareness of how each component scales under load.
What this project demonstrates
What this project ultimately demonstrates is not just the ability to write code, but the ability to design and operate a complete real-time system. While working on this project, I gained an understanding of backend architecture, networking, DevOps practices, and frontend integration working together toward a cohesive product. More importantly, it reflects the ability to diagnose complex, multi-layered problems and systematically resolve them. This is the kind of work that moves beyond tutorials or isolated features and into building production-capable systems, where reliability, performance, and maintainability all matter.
Next steps
This project will eventually be available for commercial sale on the Wordpress and Peepso plugin platforms. The remaining features that I wish to work on include:
• Using AI to add child-safety attachment analysis.
• Adding individual video/audio streaming to Direct Message rooms.
• Adding stream quality option selection.
• Adding platform-specific integrations to make the experience more seamless.
• Taking suggestions from real users on additional features.