For a long time, building a real video platform on WordPress meant one thing: plugin soup.
A video player plugin here. A monetization add-on there. A separate live streaming tool. Another plugin for user profiles.
Then you spend two weeks trying to make them all talk to each other — half of them conflict, the other half need custom glue code, and the whole thing becomes a maintenance nightmare before you even launch.
Most developers who tried building a serious video platform on WordPress have been through this cycle.
So when we started building Polanger VideoHub, the core decision was made very early:
One plugin. One architecture. Everything integrated natively.
Instead of stitching together 6–8 plugins, we wanted to design something closer to what a backend developer would architect from scratch — modular, predictable, and extensible.
This is how we approached it.
The Core Problem
Most WordPress video plugins fall into two categories:
1. Embed Wrappers
They take a YouTube URL and render a player. That's it.
You still need additional plugins for:
- monetization
- user channels
- playlists
- live chat
- subscriptions
- uploads
Which leads straight back to the plugin soup problem.
2. Bloated All-in-One Plugins
These try to solve everything at once.
The downside is that they usually:
- load every feature whether you use it or not
- add unnecessary database queries
- increase page weight
- become hard to maintain
And ironically, they still end up needing add-ons.
We wanted a different approach — something closer to a platform architecture than a typical plugin.
Architecture: A Modular Add-on System
The biggest architectural decision was going fully modular from day one.
Every major feature in VideoHub is built as a separate module.
Examples include:
- Live streaming
- Monetization
- Shorts
- Creator marketplace
- Ads system
- Video optimizer
- PWA support
- Search engine
- Comments & reactions
Each module:
- has its own settings panel
- loads only when activated
- communicates with the core using WordPress hooks and filters
- can be disabled without breaking other modules
The core plugin provides the shared infrastructure while modules register themselves through a central add-on manager.
For example, modules can hook into core events like this:
do_action( 'pvh_video_uploaded', $video_id, $file_path );
This allows modules to extend functionality without modifying the core plugin.
Platform Components
Video Engine
The core video engine supports multiple sources:
- Self-hosted videos
- YouTube
- Vimeo
- Dailymotion
Features include playlists, autoplay support, responsive player layouts and channel-based video organization.
Shorts System
Inspired by TikTok and YouTube Shorts, this module provides a vertical swipeable video feed designed primarily for mobile users.
Live Streaming & Chat
Live streaming support includes an integrated real-time chat system that works both for live streams and regular video content.
Creator Channels
Each creator can have their own public channel page including profile information, video libraries and subscriber counts.
This layer effectively turns WordPress users into platform creators.
Monetization (WooCommerce Integration)
Instead of reinventing payments, the platform integrates deeply with WooCommerce.
Pay-per-view videos are simply WooCommerce products.
This provides access to the full WooCommerce ecosystem:
- payment gateways
- order management
- refund system
- customer accounts
Access control happens automatically when orders are completed or refunded.
Creator Marketplace
On top of WooCommerce sits the creator marketplace layer which provides:
- revenue split calculation
- creator earnings dashboards
- withdrawal requests
- payout profiles
- commission management
Data Layer
Videos are stored using a custom post type.
However, high-volume data such as analytics and view counters use dedicated database tables to avoid performance problems.
Storing these inside wp_postmeta would cause serious scalability issues for larger video platforms.
Self-Hosted Video Optimization (FFmpeg)
For self-hosted videos, the platform includes a background optimization pipeline powered by FFmpeg.
Videos are uploaded immediately while optimization happens asynchronously via a processing queue.
Processing includes:
- codec normalization
- mobile compatible pixel format
- fast-start playback optimization
- optional resolution limits
Fast-start playback allows videos to begin playing before the entire file is downloaded.
One important note: FFmpeg is typically unavailable on shared hosting environments, so this feature is primarily intended for VPS or dedicated server setups.
Developer Extension Points
The platform exposes multiple hooks allowing developers to extend functionality.
Examples include:
- video upload events
- processing pipeline hooks
- player source filters
- monetization access control
- creator payout logic
Everything follows standard WordPress action/filter patterns, so developers can extend the system without learning a proprietary SDK.
What We Learned
The most valuable outcome wasn't any single feature — it was the consistency of the architecture.
A site can start as a simple video library and later enable monetization, creator channels, marketplace functionality or live streaming without restructuring the installation.
That flexibility was the primary design goal from the beginning.
Resources
Built with WordPress, WooCommerce, FFmpeg and a lot of refactoring.
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.