How Pixelmatic shipped a video product on xform
When the Pixelmatic team set out to build a browser-based screen recorder, they had a long list of things to figure out. A recording UI that worked across browsers. A team library. An editor for trimming and captions. Sharing. Branding. Plenty to keep them busy.
What they decided early on was that none of that list should include "build a video transcoding pipeline from scratch." So they didn't.
The whole video side of Pixelmatic runs on xform. They shipped to paying customers months sooner than they would have otherwise, with a feature set that on day one already included things most screen recorders take much longer to add.
A small disclosure before we go further: Pixelmatic and xform are built by the same team, so this isn't an arms-length case study. The build-vs-buy decision was real though, and the story below is what actually happened. We're sharing it because the integration is, I think, a useful template for any SaaS that needs video as part of the product, not the whole product.
The trouble with building video infrastructure
If you've ever priced out what it takes to ship a polished video product, you'll know the list is long. A few of the things on it:
- Transcoding. A worker pool that takes raw uploads and produces adaptive renditions, reliably and at a sensible cost.
- Adaptive streaming. Packaging those renditions as HLS so they play on every device and every connection.
- A player. A custom video player is a multi-month project on its own. Captions, fullscreen, picture-in-picture, keyboard shortcuts, mobile fallbacks, the inevitable Safari quirks. There's always one more thing.
- Captions. Live captions are one problem. Auto-generated transcripts are another. Storing them and surfacing them in the player is a third.
- Analytics. Counting views is easy. Producing an engagement curve that tells you where a viewer dropped off, second by second, is not.
- UTM tracking. Attributing views to the campaign that drove them is a small feature with a lot of plumbing behind it.
Each of those is solvable. But solving all of them, well, before you've earned your first customer is how SaaS products end up months behind schedule. The Pixelmatic team decided early on that none of these were the things they wanted to be famous for.
What we handle for Pixelmatic
When a Pixelmatic user finishes recording in their browser, the file is handed over via a single SDK call. Everything below this line happens without the Pixelmatic team having to maintain it.
Transcoding and adaptive streaming
The raw recording is turned into a ladder of renditions (1080p, 720p, 480p, depending on the source), packaged as HLS. Viewers get the right quality for their connection, and a downloadable MP4 sits alongside the stream for anyone who'd rather have the file.
The Pixelmatic team didn't build a transcoding worker pool. They didn't size up encoding ladders, write segmenters, or tune cache headers for HLS manifests. One call goes out, and minutes later they have a video ready to play.
A branded player
Every Pixelmatic video plays in the xform embed player. It handles adaptive quality switching, captions, picture-in-picture, fullscreen, keyboard shortcuts, and the usual mobile fallbacks out of the box. The Pixelmatic team carries their customer's brand through by passing an accent colour and a logo as embed parameters. That's the whole integration.
Pixelmatic doesn't ship a single line of video player code. The player works on Safari, Chrome, Firefox, on mobile, embedded in customer sites, dropped into a Notion doc, used inside a marketing page. None of that is the Pixelmatic team's problem.
Captions and transcripts
If a user records with captions on, the WebVTT file is bundled into the upload. If they don't, captions are generated automatically from the audio after the upload completes. Either way, the captions are served alongside the video, and the transcript text is available for Pixelmatic to feed into their searchable video library.
The "make your team's whole library searchable" feature, which is one of Pixelmatic's headline pieces, is built on transcripts that came out of xform.
Per-view analytics
Views, watch time, engagement curves, drop-off points, geography, device, referrer. Pixelmatic's analytics tab is largely a read-through of what xform tracks on every view. No separate analytics database, no event collection pipeline, no aggregation jobs to maintain.
For a Pixelmatic customer trying to work out why a prospect didn't watch a demo to the end, an engagement curve is the difference between "they viewed it" and "they tuned out at the 47-second mark."
UTM tracking
Pixelmatic customers can tag their share links with UTM parameters to attribute views to specific campaigns, channels, or sales sequences. Every view through a tagged link is attributed back, and the analytics dashboard breaks it down. The Pixelmatic team didn't have to build attribution. They used what was already there.
What that meant for time to market
Building all of the above from scratch is, conservatively, multiple months of focused engineering work. And that's just to get to launch. Maintenance, edge cases, browser quirks, codec drift, and player updates are an ongoing tax that never goes away.
Running on xform compressed that to a few weeks of integration work. The team went from "we want to build a screen recorder" to "we have a paid product in customers' hands" in a fraction of the time it would have taken otherwise. They got to spend their effort on the things only they could build: the recording UI, the team workspace, the editing tools, the brand.
Which is, I think, the build-vs-buy story most often. The "build" path looks tempting because video feels like it should be a tractable problem. It's only when you start counting the things that have to go right that the picture changes.
If you're building something with video
Pixelmatic is a clear example, but the same set-up works whether you're building a customer onboarding tool, a sales enablement product, an internal knowledge base, or a learning platform. Anywhere video is part of the product but not the whole product, the same building blocks apply.
If that's you, the pricing page is a good place to start, or get in touch if you'd like to talk through the fit.
And if you want to see what someone shipping on xform looks like in practice, Pixelmatic is right there.
Curious about Pixelmatic's journey and decisions? Their own write-up of the integration is here: How Pixelmatic uses xform for video transcoding, HLS streaming, and analytics.
New to xform? Check out our plans and get started today.