[{"data":1,"prerenderedAt":381},["ShallowReactive",2],{"blog":3,"blog-posts":16},{"id":4,"title":5,"body":6,"description":7,"extension":8,"meta":9,"navigation":10,"path":12,"seo":13,"stem":14,"__hash__":15},"blog\u002F3.blog.yml","Notes from the build",null,"Field notes from the team building Polycast. What we're shipping, what we changed our minds about, and the technical decisions behind a self-hosted broadcast studio.","yml",{},{"icon":11},"i-lucide-newspaper","\u002Fblog",{"title":5,"description":7},"3.blog","HhA8j2Vu_bUUA4USv8h4woEczCvRCqI8n88DrSD8LL4",[17,120,208,297],{"id":18,"title":19,"authors":20,"badge":22,"body":24,"date":111,"description":112,"extension":113,"image":6,"meta":114,"navigation":115,"path":116,"seo":117,"stem":118,"__hash__":119},"posts\u002F3.blog\u002Fself-hosted-restream-alternative.md","A self-hosted alternative to Restream",[21],"jaydrogers",{"label":23},"Guide",{"type":25,"value":26,"toc":103},"minimark",[27,31,36,39,48,52,55,68,71,74,78,81,84,88,95],[28,29,30],"p",{},"Restream is the default answer for going live on a few platforms at once. It works, and it's easy. But if you've looked at the monthly bill, or noticed your stream getting capped, and wondered whether you could just run this yourself — you can. Here's the case for a self-hosted alternative.",[32,33,35],"h2",{"id":34},"what-youre-actually-paying-for","What you're actually paying for",[28,37,38],{},"Restream, StreamYard, and the rest run in the cloud. You send them one stream, their servers re-encode it, and they fan it out to each platform. You pay every month whether you went live or not.",[28,40,41,42,47],{},"There's a second cost that's easier to miss. Because they're re-encoding one input into several outputs, they keep that input modest and send roughly the same quality everywhere. You end up capped at whatever your weakest platform supports. I wrote about why that happens in ",[43,44,46],"a",{"href":45},"\u002Fblog\u002Fstream-youtube-twitch-best-quality","Stream to YouTube and Twitch at the same time",".",[32,49,51],{"id":50},"what-self-hosting-changes","What self-hosting changes",[28,53,54],{},"The whole arrangement flips. The encode happens on your machine, with a dedicated encoder per destination, and each stream goes straight to its platform.",[56,57,58,62,65],"ul",{},[59,60,61],"li",{},"1440p60 to YouTube",[59,63,64],{},"1080p60 to Twitch",[59,66,67],{},"1080p30 to LinkedIn or X",[28,69,70],{},"No cloud in the path, no monthly bill, and nothing throttled to fit the cheapest output. You own the software instead of renting access to a service.",[28,72,73],{},"The honest trade-off: every destination gets its own full stream from your machine, so your upload carries the combined bitrate of all of them. For two or three platforms on a decent connection, that's fine. On a slow uplink with a dozen destinations, it isn't.",[32,75,77],{"id":76},"when-the-cloud-still-makes-sense","When the cloud still makes sense",[28,79,80],{},"I'm not going to pretend self-hosting wins for everyone. If you're streaming to ten places at once, or your upload can't carry the total, or you want zero setup and don't care about the quality ceiling, a hosted service earns its fee. That's a real answer.",[28,82,83],{},"Self-hosting is for the person who'd rather own their stack, push each platform the quality it can actually take, and stop paying rent to do it.",[32,85,87],{"id":86},"thats-what-polycast-is","That's what Polycast is",[28,89,90,91,47],{},"Polycast is a desktop app built for exactly this. You point OBS (or any RTMP, SRT, or WHIP source) at it, and it runs a dedicated encoder per destination on your own machine. It's a one-time purchase, not a subscription, and there's no cloud relay between you and your audience. If you're coming from a plugin setup, I'd also read ",[43,92,94],{"href":93},"\u002Fblog\u002Fobs-multistream-without-a-plugin","Multistreaming from OBS without a plugin",[28,96,97,98,102],{},"Polycast is in pre-launch. ",[43,99,101],{"href":100},"\u002F#waitlist","Join the waitlist →"," and I'll send you the launch email.",{"title":104,"searchDepth":105,"depth":105,"links":106},"",2,[107,108,109,110],{"id":34,"depth":105,"text":35},{"id":50,"depth":105,"text":51},{"id":76,"depth":105,"text":77},{"id":86,"depth":105,"text":87},"2026-06-05","Restream is the easy default for multistreaming. If the monthly bill or the quality cap has you wondering about running it yourself, here's the case for it.","md",{},true,"\u002Fblog\u002Fself-hosted-restream-alternative",{"title":19,"description":112},"3.blog\u002Fself-hosted-restream-alternative","eyk_dspSnugprfRmP3KDImUom4LzteP869FqYy0Qboc",{"id":121,"title":94,"authors":122,"badge":123,"body":124,"date":202,"description":203,"extension":113,"image":6,"meta":204,"navigation":115,"path":93,"seo":205,"stem":206,"__hash__":207},"posts\u002F3.blog\u002Fobs-multistream-without-a-plugin.md",[21],{"label":23},{"type":25,"value":125,"toc":197},[126,129,133,136,139,142,146,149,152,162,165,168,183,187,190,193],[28,127,128],{},"The usual way to send your OBS stream to a bunch of platforms at once is a multistream plugin. I'd skip it. Here's why, and what I do instead.",[32,130,132],{"id":131},"the-problem-with-multistream-plugins","The problem with multistream plugins",[28,134,135],{},"A plugin loads inside OBS and runs in the same process as your scenes, your sources, and your encoder. So when the plugin has a bad day, it doesn't fail off to the side somewhere. It can take OBS down with it, right in the middle of your stream.",[28,137,138],{},"Anyone who's stacked a few OBS plugins knows the feeling. A scene switch hangs for no reason, at the worst possible moment.",[28,140,141],{},"There's a quieter problem too. A plugin ties your whole multistream setup to OBS. Move to vMix or a hardware encoder later and none of it comes with you. And plenty of people don't use OBS at all.",[32,143,145],{"id":144},"point-obs-at-something-else","Point OBS at something else",[28,147,148],{},"The setup I like keeps the fan-out completely outside OBS.",[28,150,151],{},"OBS already knows how to send a stream to an RTMP server. That's how it talks to YouTube or Twitch directly. So instead of pointing it at a platform, point it at a server running on your own machine. That server takes your one feed, re-encodes it once per destination, and forwards each one on.",[153,154,159],"pre",{"className":155,"code":157,"language":158},[156],"language-text","OBS  ──►  rtmp:\u002F\u002Flocalhost  ──►  ┌─ encoder ──► YouTube\n                                 ├─ encoder ──► Twitch\n                                 └─ encoder ──► LinkedIn\n","text",[160,161,157],"code",{"__ignoreMap":104},[28,163,164],{},"Nothing loads into OBS. As far as OBS knows, it's streaming to one place.",[28,166,167],{},"That separation does two things for you:",[56,169,170,177],{},[59,171,172,176],{},[173,174,175],"strong",{},"It can't crash OBS."," The fan-out runs in its own process, so a problem there never reaches your scenes.",[59,178,179,182],{},[173,180,181],{},"It isn't married to OBS."," Anything that speaks RTMP, SRT, or WHIP works the same way: vMix, a hardware encoder, a camera, your own script.",[32,184,186],{"id":185},"where-polycast-fits","Where Polycast fits",[28,188,189],{},"Polycast is that separate process, built for exactly this. You point OBS (or any RTMP, SRT, or WHIP source) at it, and it runs a dedicated encoder per destination on your machine, each one tuned to what its platform accepts. It's a desktop app you own, not a plugin and not a cloud relay.",[28,191,192],{},"Keep producing in whatever you already use. Let something independent handle getting it everywhere.",[28,194,97,195,102],{},[43,196,101],{"href":100},{"title":104,"searchDepth":105,"depth":105,"links":198},[199,200,201],{"id":131,"depth":105,"text":132},{"id":144,"depth":105,"text":145},{"id":185,"depth":105,"text":186},"2026-06-02","OBS multistream plugins run inside OBS, which is exactly why they're risky. Here's the approach I use instead.",{},{"title":94,"description":203},"3.blog\u002Fobs-multistream-without-a-plugin","TKwEcgY4cRtxEUORJwwwoRgu0XoFg4nNXALWlYcWvyY",{"id":209,"title":210,"authors":211,"badge":212,"body":213,"date":291,"description":292,"extension":113,"image":6,"meta":293,"navigation":115,"path":45,"seo":294,"stem":295,"__hash__":296},"posts\u002F3.blog\u002Fstream-youtube-twitch-best-quality.md","Stream to YouTube and Twitch at the same time, at each platform's best quality",[21],{"label":23},{"type":25,"value":214,"toc":286},[215,218,221,224,228,231,234,237,241,244,264,267,271,274,277,280],[28,216,217],{},"If you go live on YouTube and Twitch at the same time, you've probably made a compromise that never sat right: you pick one set of settings and use it for both.",[28,219,220],{},"The trouble is those two platforms aren't equal. Twitch caps out a lot lower than YouTube. So when you pick one setting for both, you're really picking Twitch's ceiling, and YouTube ends up with a stream that's worse than it could have been.",[28,222,223],{},"Let's fix that.",[32,225,227],{"id":226},"why-your-multistream-tool-makes-you-choose","Why your multistream tool makes you choose",[28,229,230],{},"Most multistream services run in the cloud. You upload one stream, and they re-encode it into one output per platform on their servers.",[28,232,233],{},"Doing that at scale costs them real money, so they keep your input modest and send close to the same quality everywhere. Your actual ceiling becomes whatever the cheapest output supports.",[28,235,236],{},"That's why you set 6000 kbps for Twitch and YouTube quietly gets 6000 too, even though it would take far more.",[32,238,240],{"id":239},"give-every-platform-its-own-encoder","Give every platform its own encoder",[28,242,243],{},"The fix is the way broadcast has always done it: a separate encoder for each destination, each one set up for the platform it's feeding.",[56,245,246,252,258],{},[59,247,248,251],{},[173,249,250],{},"YouTube"," gets 1440p60 at a high bitrate",[59,253,254,257],{},[173,255,256],{},"Twitch"," gets 1080p60 at the bitrate it accepts",[59,259,260,263],{},[173,261,262],{},"LinkedIn or X"," get 1080p30",[28,265,266],{},"They all run at once on your machine, and nothing is shared between them. No single platform drags the rest down to its level.",[32,268,270],{"id":269},"the-catch-your-upload","The catch: your upload",[28,272,273],{},"There's an important concept to understand here. When every destination gets its own full stream straight from your machine, your upload has to carry all of them at the same time. That's roughly the combined bitrate of everything you're sending.",[28,275,276],{},"Cloud services hide this by having you upload once and splitting it on their end. The price you pay for that convenience is the quality cap and the monthly bill.",[28,278,279],{},"So check that your upstream can cover the total. For two or three destinations on a decent connection, it usually can, and you stop handing YouTube a stream that got squeezed down to fit Twitch.",[28,281,282,283,285],{},"That's the whole idea behind Polycast: give each platform its best, not its worst. ",[43,284,101],{"href":100}," and I'll let you know when it's ready.",{"title":104,"searchDepth":105,"depth":105,"links":287},[288,289,290],{"id":226,"depth":105,"text":227},{"id":239,"depth":105,"text":240},{"id":269,"depth":105,"text":270},"2026-05-28","Most multistream tools make you send every platform the same quality, which means your best platform gets your worst stream. Here's how to stop doing that.",{},{"title":210,"description":292},"3.blog\u002Fstream-youtube-twitch-best-quality","46J_jt5zUDJLPCl2_Ro8Ykmmrak1kiDl8z4mz3f2sYk",{"id":298,"title":299,"authors":300,"badge":301,"body":303,"date":374,"description":375,"extension":113,"image":6,"meta":376,"navigation":115,"path":377,"seo":378,"stem":379,"__hash__":380},"posts\u002F3.blog\u002Fwhy-we-built-polycast.md","Why we built Polycast",[21],{"label":302},"Founding",{"type":25,"value":304,"toc":368},[305,308,311,314,318,321,324,327,331,334,337,340,344,347,350,354,357,360,365],[28,306,307],{},"Every multistream tool I tried put a server between me and the people watching. I got tired of renting that server, so we built the opposite.",[28,309,310],{},"Here's the setup all of them ship: you send your stream to their cloud, their cloud re-encodes it, and their cloud fans it out to YouTube, Twitch, and wherever else. You pay every month whether you went live once or thirty times. And the quality you get to push is whatever your weakest platform can handle.",[28,312,313],{},"That last part is the one that got me.",[32,315,317],{"id":316},"the-thing-cloud-multistream-gets-wrong","The thing cloud multistream gets wrong",[28,319,320],{},"When a hosted service takes your one stream and splits it to five platforms, it's re-encoding on its own servers. That gets expensive fast, so they keep your input modest and send roughly the same thing everywhere.",[28,322,323],{},"You end up capped at the lowest common denominator. Twitch tops out around 6000 kbps, so you set 6000 and YouTube quietly gets 6000 too, even though it would happily take a lot more. You're paying a monthly bill to send YouTube a worse stream than it can handle.",[28,325,326],{},"I didn't want a cheaper version of that. I wanted to delete the middle entirely.",[32,328,330],{"id":329},"one-encoder-per-destination","One encoder per destination",[28,332,333],{},"Polycast runs a dedicated encoder for every place you're streaming to. 1440p60 to YouTube. 1080p60 to Twitch. 1080p30 to LinkedIn. Each one is set up for the platform it's feeding, and they all run at the same time on your machine.",[28,335,336],{},"There's nothing clever about it. It's how broadcast has worked for forty years: one encoder per output, one path per destination. Cloud multistream tried to hide that, and the quality leaks out every time you actually care about it.",[28,338,339],{},"If your hardware can produce it and the platform can take it, you send it.",[32,341,343],{"id":342},"it-runs-on-your-machine-not-ours","It runs on your machine, not ours",[28,345,346],{},"Polycast is starting out as a desktop app, but we're building a version where you can run it on your own VPS too. Your stream keys live on your computer and get used on your computer. None of it touches our infrastructure, because we don't have any infrastructure sitting in the path of your stream.",[28,348,349],{},"You own it, too. It's a one-time purchase with a year of updates, not a subscription that bills you for existing. If we disappeared tomorrow, your copy keeps pushing to YouTube and Twitch until you decide to stop.",[32,351,353],{"id":352},"where-were-at","Where we're at",[28,355,356],{},"The macOS and Windows builds are working. Six destinations, a dedicated encoder per stream, presets you can configure. A headless version you can run on your own server is on the roadmap. We ship an LGPL-only build of FFmpeg so the licensing stays clean for everyone.",[28,358,359],{},"We're pre-launch, which is why this site exists before the product does. If you want one email the day Polycast ships (not a newsletter, just the one announcement), join the waitlist.",[28,361,362,363],{},"That's the whole reason it exists. ",[43,364,101],{"href":100},[28,366,367],{},"— Jay",{"title":104,"searchDepth":105,"depth":105,"links":369},[370,371,372,373],{"id":316,"depth":105,"text":317},{"id":329,"depth":105,"text":330},{"id":342,"depth":105,"text":343},{"id":352,"depth":105,"text":353},"2026-05-22","Every multistream tool I tried put a server between me and the people watching. So we built one that doesn't.",{},"\u002Fblog\u002Fwhy-we-built-polycast",{"title":299,"description":375},"3.blog\u002Fwhy-we-built-polycast","dyxn0jZ9PAddrSaI_RvlW0PTFGky1FW_YIuDUbbeJXA",1780799136764]