I Built a Streaming Hub on WordPress: Here’s How
Last updated: June 25, 2026
It was almost 2 a.m. when I realized the pay-per-view boxing match I was watching wasn’t running on Twitch or some big platform. It was a plain WordPress site, and the promoter was keeping every dollar. So that night I started building my own streaming hub. (Disclosure: this article is published by WpStream, the plugin used in this build, so read it with that context.) The stack I ended up with runs on a managed WordPress host (Cloudways, from about $14 a month), the free Hello WpStream theme, the free WpStream plugin, WooCommerce, and OBS Studio. From a blank WordPress install to my first live test stream took under two hours that evening. A production-ready pay-per-view setup took a few more days. The detail that makes this work on cheap hosting: WpStream delivers the video through its own multi-CDN infrastructure, so the WordPress server only ever serves the page.
Why I Left YouTube and Twitch
I didn’t leave because the platforms are bad. I left because I was tired of building on rented land for events where I already knew who was coming.
Four things wore me down. Algorithm changes that cut my reach overnight, with no warning. Revenue share: Twitch’s baseline subscription split is 50/50, and YouTube keeps 45 percent of ad revenue on long-form. Forced ads I couldn’t control, dropped into the middle of my own content. And the quiet risk that an account gets suspended over something the platform later reclassifies, taking the audience with it.
Platforms still matter for discovery, and plenty of creators run both. What changed for me was deciding to stop depending only on someone else’s infrastructure for recurring events with a known audience.
The tipping point was the math. A $9.99 pay-per-view ticket on my own site leaves me roughly $9.40 after Stripe takes about 2.9 percent plus $0.30. On a comparable Twitch subscription, I’d have kept around $5.00. Those splits are widely reported and easy to confirm in each platform’s own creator terms. Same viewer, same price, almost double the money.
Everything I Needed Before Starting
Here’s the full list, so you can gather it before you start instead of mid-build like I did.
- Managed WordPress hosting. I used Cloudways, from about $14 a month (confirm current pricing before you buy). The DigitalOcean Small plan is $28 a month if you want more RAM.
- A domain name you already own or can register anywhere.
- WordPress, installed one-click from the Cloudways dashboard.
- The Hello WpStream theme, free on WordPress.org, with five demo designs to import.
- The WpStream plugin, free to start on WordPress.org (4,000+ active installs and a 4.8 out of 5 rating from 78 reviews, as of June 2026). The free plan supports up to 50 concurrent viewers on 1 channel.
- WooCommerce, free, needed only for pay-per-view or subscription gating.
- OBS Studio, free and open-source for Windows, macOS, and Linux, from obsproject.com.
One architecture note that saved me from overbuying hosting: WpStream’s multi-CDN infrastructure handles all the video delivery, so the WordPress host never touches the video data. That’s exactly why a standard managed plan is enough.
Getting the Site to Look Like a Streaming Hub
In the WordPress admin, I went to Appearance, then Themes, then Add New, searched “Hello WpStream,” and clicked Install and Activate. WordPress prompted me to install the plugins the theme depends on, which you accept so the theme pulls in what it needs.
Then I imported the main streaming demo, the Netflix-style layout with the category sliders. The Hello WpStream theme ships five demos: main streaming, eSports, Live Shopping, Church and Faith, and Believe. I picked the main one for its slider layout.
And here’s the surprise: after the import finished, the site looked like a real streaming service. Category sliders, channel thumbnail cards, a dark UI, and I hadn’t touched a single line of CSS. The whole thing, from theme search to imported demo, took about 10 minutes.
Connecting WpStream: Faster Than I Expected
I’d braced myself for the part where streaming setup usually gets ugly. It didn’t.
If the theme prompt didn’t already install the plugin, you go to Plugins, then Add New, search “WpStream,” and click Install and Activate. Then, in the admin sidebar, you open WpStream, enter your WpStream.net account credentials, and save. A confirmation message pops up, and the plugin is connected to the WpStream infrastructure.
Here’s the one thing I’d do differently: create your WpStream.net account before you start this step. I switched tabs mid-wizard to sign up, lost my place, and had to backtrack. (I’m apparently the kind of person who reads the instructions after assembling the furniture.) Account first, then the wizard. If the account already exists, this step takes about 5 minutes.
The First Free-to-View Channel
I wanted to prove the whole stack worked before any money was involved. A free-to-view channel is the test stage for that.
In the WpStream dashboard, I went to Free-to-View Live Channels, then Add New. I filled in a title, description, featured image, and categories, then hit Publish. The channel page appeared right away with an “off air” message, viewable by anyone, no login required. No payment gate, no WooCommerce yet. It’s the cleanest way to confirm the plumbing works before you put a price on anything.
One check that caught a real issue: open the channel URL in an Incognito window. I was logged into WordPress admin, so of course the page looked fine to me. The Incognito view confirmed it was genuinely public to a logged-out visitor, which is the only view your audience actually gets. Creating and publishing took about 2 minutes.
How Do You Actually Connect OBS to a WordPress Streaming Site?
Here’s the exact sequence that worked, before the explanation:
- Turn the channel on first. In the WpStream channel dashboard, click Turn On, then Go Live with External Streaming App, then select OBS Studio.
- Copy the two strings. Copy the Server URL and the Stream Key. RTMP is really just “where to send the stream” plus “a password.”
- Paste them into OBS. In OBS: Settings, then Stream, set Service to Custom, paste the Server URL into the Server field, paste the Stream Key, and click OK.
- Set the encoding. For 1080p at 30 fps: video bitrate 4,000 kbps CBR, keyframe interval 2 seconds, audio 160 kbps. Drop to 720p at 2,500 kbps if your upload is below 6 Mbps with headroom.
- Click Start Streaming. The feed shows up on the channel page within a few seconds.
Those settings aren’t guesses. They’re the long-standing industry baseline for 1080p30 broadcasting. On upload speed, the rough guideline is 4 to 8 Mbps for 1080p at 30 fps and 6 to 12 Mbps at 60 fps. Aim for about 20 to 40 percent headroom above your video bitrate so a dip in your connection doesn’t break the stream. Test before you go live: the WpStream speed tester checks against the actual streaming ingest infrastructure, which tells you far more than a generic test does.
What tripped me up: on the first attempt, OBS connected fine but the channel page stayed “off air.” The fix was step one above. (I’d skipped it, then spent ten minutes blaming my internet.) You have to click Turn On Channel in the dashboard before you start OBS. Order matters, channel first, OBS second. And remember, the WordPress server isn’t touching any of this. WpStream’s CDN receives the RTMP feed from OBS and delivers it to viewers.
Charging for a Live Event With WooCommerce
This is the step where the whole project finally paid for itself.
I installed WooCommerce (free) and ran its setup wizard, skipping most of it since I only needed pay-per-view. Then, in WooCommerce, I went to Products, Add New, and set the Product Data dropdown to “Live Channel.” I named the product (“Workshop: Live Q&A Session”), set the price, added a featured image and description, and published. To go live to it, you click Broadcast to Channel from the product edit page. Viewers buy the product, then watch through the channel page, with the gate enforced by the WpStream and WooCommerce integration. No custom code.
The revenue from my actual test run: a $9.99 ticket, with Stripe at about 2.9 percent plus $0.30, returned roughly $9.40 per sale. Twitch would have left me around $5.00 on a comparable subscription.
Pay-per-view needs a paid WpStream plan. The one-time Lite license ($36, single event, no recurring billing) is a clean way to run a first paid event before committing to anything monthly. The Lite monthly plan ($24 a month) supports up to 200 concurrent viewers across 5 channels.
One warning that isn’t in any documentation I found: if your host runs an aggressive caching plugin (WP Super Cache, W3 Total Cache), it can serve a cached “off air” page even after your stream starts. Either exclude your streaming pages from the cache or clear it right before you go live.
What the First Three Weeks Actually Looked Like
The setup is the easy part. Here’s the part the how-to guides skip.
I built a small content library: a recurring free-to-view weekly channel to build an audience, one monthly pay-per-view workshop, and a VOD archive of past recordings (WpStream can convert a recording to on-demand after the stream ends, which needs a paid plan). The theme’s category sliders handled the browse-by-type experience with no custom coding.
Then reality hit. A streaming site with no audience isn’t discoverable the way YouTube or Twitch is. My first 10 viewers came from an email list and one post in a niche Facebook community, not from search and not from any algorithm. Discovery is your job now. Converting even a handful of those early viewers into paying subscribers was enough to prove the model before I paid for upgraded hosting.
The one thing I’d genuinely do differently: run an upload speed test before the first real stream. Mine showed I was right at the edge of reliable 1080p, and dropping to 720p at 2,500 kbps killed the frame drops completely.
What This Setup Does Not Replace
I’d rather you make this decision with clear eyes than with my enthusiasm.
It does not replace YouTube or Twitch for discoverability. Those platforms put your content in front of cold audiences; a WordPress streaming site serves an audience you already have. It also doesn’t make sense as a pure VOD library. If your use case is hosting pre-recorded courses or films with no live component at all, Presto Player is the better tool for that job.
And it doesn’t scale infinitely for free. The free WpStream plan caps at 50 concurrent viewers on 1 channel. A 200-viewer event needs the Lite plan ($24 a month), a 1,000-viewer event needs Plus ($59 a month), and a one-off event can run on the $36 one-time license. One more thing: OBS encodes on your own machine, so a weak laptop CPU will drop frames on long streams. A hardware encoder fixes that and is worth it for recurring professional events.
Key Takeaways
- WpStream delivers video through its own multi-CDN infrastructure, so a standard managed host from about $14 a month handles only the page load.
- OBS connects to a channel with two fields, the Server URL and Stream Key; set 4,000 kbps CBR and a 2-second keyframe interval for 1080p at 30 fps.
- A $9.99 pay-per-view ticket on your own site returns roughly $9.40 after Stripe, versus roughly $5.00 after Twitch’s 50/50 subscription split.
- The WpStream free plan supports up to 50 concurrent viewers; Lite ($24/month) scales to 200, and a single-event license costs $36.
- Self-hosted streaming has no built-in discovery, so your first viewers come from an email list or community post, not an algorithm.
Frequently Asked Questions
How long does it take to build a streaming website on WordPress?
A first live test stream takes under two hours from a blank WordPress install, covering the theme, plugin, a channel, and OBS. A production-ready site with pay-per-view gates, branded design, and a content library takes a few more days. Once WpStream is connected, running a recurring event afterward only needs about 15 minutes of prep, so the time cost is front-loaded onto setup.
Can I stream live video on a basic WordPress hosting plan?
Yes. WpStream delivers the video through its own multi-CDN infrastructure, so your WordPress server only serves the page wrapper, not the video data. A managed plan from about $14 a month (Cloudways entry tier; confirm current pricing) handles the web layer fine. The only reason to upgrade your hosting is if the site pages themselves are loading slowly, which is unrelated to streaming load.
What upload speed do I need for 1080p live streaming?
1080p at 30 fps needs roughly 4 to 8 Mbps of upload, and 60 fps needs 6 to 12 Mbps. Aim for about 20 to 40 percent headroom above your video bitrate to absorb connection fluctuations. If you’re below 6 Mbps with headroom, drop to 720p at 2,500 kbps for reliability. Run the WpStream speed tester before your first real event, since it checks against the actual streaming ingest servers rather than a generic endpoint.
How many viewers can watch a free WpStream stream at once?
The free plan supports up to 50 concurrent viewers on one channel, with no recording and no pay-per-view. The Lite plan at $24 a month raises that to 200 concurrent viewers across 5 channels, and Plus at $59 a month reaches 1,000. For a single event, the one-time WpStream Lite license is $36 with no recurring billing.
This is one account of one build, not the systematic version. If you want the methodical walkthrough with every install step in order, follow the step-by-step streaming website guide. My advice: start on the free plan, run a real test stream tonight, and only then decide which paid tier fits the size of your event. The first time a paying viewer watches a stream on a site you own, the whole equation shifts. You set the price, you keep the relationship, and you can run the next event without asking anyone for permission.
Table of Content

