Video is one of those things where Webflow just doesn't cut it natively. Sure, you can add a video through the VideoLink field in the CMS or embed YouTube, but the moment you want your own player, fast loading, or a clean look with no third-party branding, you hit a wall. That's where Bunny.net comes in.
Why you shouldn't put video straight into Webflow
Webflow stores assets on its own CDN. That works fine for images, but for video it's a bad choice. Large files slow the site down, you can't set up your own player, and you have no control over how the video loads and streams. The file either loads in full or doesn't load at all. The result: poor Core Web Vitals, frustrated users, and needlessly expensive hosting.
YouTube and Vimeo are better than a raw file in the CMS, but they come with their own trade-offs. YouTube means third-party branding, ads, and recommended videos from your competitors at the end of playback. Vimeo gets expensive the moment you need more space or bandwidth. Neither one gives you full control over the player.
What Bunny.net is and why I use it
Bunny.net is a CDN and video hosting platform focused purely on performance and price. It's not a YouTube alternative for building an audience — it's infrastructure for developers and sites that want their video under control.
Two products matter for Webflow projects:
Bunny Stream is dedicated video hosting with HLS streaming. The video loads progressively, so the user sees the first frame within a second even on a slow connection. It automatically encodes to multiple resolutions (360p, 720p, 1080p, 4K), gives you your own player via an embed code or API, and provides analytics for every video.
Bunny CDN is a global network with PoPs in hundreds of locations. Videos are served from the server nearest to the user, not from a single data center somewhere in the US.
Pricing is pay-as-you-go — you pay for the data actually transferred, not for storage or the number of videos. For most sites it works out significantly cheaper than Vimeo Pro or Wistia.
How to wire Bunny Stream into Webflow
The whole workflow takes an afternoon at most.
1. Create an account on Bunny.net. Signing up is free — you only pay for the data you actually transfer.
2. Create a Stream library in the Bunny dashboard under Stream. Pick a name and a region — for Czech clients I recommend Frankfurt or Amsterdam.
3. Upload a video by dragging it in or via API upload. Bunny automatically encodes it into every resolution; it takes a few minutes depending on file size.
4. Copy the embed code from the video's detail view. It looks like this:
<iframe src="https://iframe.mediadelivery.net/embed/LIBRARY_ID/VIDEO_ID" loading="lazy" allow="autoplay" allowfullscreen></iframe>
5. Drop it into Webflow. For static pages, put the embed code straight into an Embed element on the canvas. For CMS pages, add a Plain Text or Embed field to the collection, store the iframe code in it, and paste it onto the page through an Embed element.
Setting up the player
Bunny Stream lets you customize the player visually so it fits the site's design. In the dashboard under Stream → your library → Player Settings you can set the player color, a custom thumbnail, autoplay and loop behavior, the visibility of the controls, and chapters or subtitles.
The result is a player with no third-party branding that looks like part of the site, not an embedded YouTube.
Performance in practice
On the projects where I've deployed Bunny.net, Core Web Vitals improved mainly on LCP. The video stopped blocking the rest of the page from loading; Bunny Stream loads the player asynchronously and lazy-loads the video itself only once the user scrolls close to the element.
Compared with embedding an MP4 file straight from a Webflow asset, the difference is noticeable — especially on mobile and slower connections. And compared with a YouTube embed, you drop the unnecessary JavaScript and tracking pixel that YouTube injects into every page carrying an embed.
The cost — what you'll really pay
Bunny.net runs with no monthly flat fee. Storage costs $0.01/GB/month, bandwidth starts at $0.005/GB depending on the region, and encoding to the basic resolutions is free.
A site with 10 videos of average length (3 minutes) and 1,000 plays a month works out to roughly $2 to $5 a month. Vimeo Pro costs $20/month, Wistia starts at $19/month and caps the number of videos.
When to use Bunny.net and when not to
Bunny Stream makes sense if you need your own player with no third-party branding, have several videos or videos on CMS pages, care about performance and Core Web Vitals, or don't want to pay a Vimeo flat fee for bandwidth you won't use.
If you publish videos primarily for a YouTube audience and want organic reach through YouTube search, Bunny isn't a replacement. In that case, put your videos on YouTube and embed them on the site via YouTube — but hide the recommended videos by adding the ?rel=0 parameter to the end of the URL.
For every other case — your own showreel on the homepage, videos on product pages, or testimonial videos in the CMS — Bunny.net is the best option I've tried so far.

