π What Launched Today at Platform Week?
Presented by: Kristian Freeman, Paulo Costa, Zaid Farooqui
Originally aired on June 11, 2023 @ 12:00 PM - 12:30 PM EDT
Join our product and engineering teams as they discuss what products have shipped today during Platform Week!
Read the blog posts:
- Cloudflare Images Sourcing Kit
- Stream Creator Management for creator platforms
- Bring your own ingest domain to Stream live
- Stream with sub-second latency
- Route to Workers, automate your email processing
- Send email using Workers with MailChannels
Visit the Platform Week Hub for every announcement and CFTV episode β check back all week for more!
And join the community and members of the Cloudflare team at the Cloudflare Developer Discord
English
Platform Week
Transcript (Beta)
Hey, everyone. Welcome back to another edition of "What launched today at Platform Week". This is the final day of the segment.
Believe it or not, we've been doing this since Monday, every day talking about what's been going on and Platform Week.
Different announcements and hearing from the perspective of authors who wrote these blog posts.
Often product managers, engineers, etc. We have another great edition today in just a second.
Give the authors a chance to introduce themselves.
But just in case you're maybe catching this for the first time or don't know what Platform Week is, let me give you a quick rundown.
So Platform Week is a thing we do here, it's actually part of a larger initiative.
We do a Cloudflare called Innovation Weeks, where we really focus on announcing new products and new features that are, I guess, broadly available sometimes in like closed betas, open betas or just like general availability that really benefit our customers.
And a focus this week for Platform Week is really on developers and people building stuff, which is great.
We've had a lot of exciting announcements for improving our developer experience with Workers and Pages.
And today is going to be really interesting because we're going to hear from Images and Stream, which are two of my favorite products at Cloudflare because they do a bunch of stuff that I really would not want to do myself.
I'm really not the person you should trust to be managing video and video encoding or image hosting really, for that matter.
So let's do a quick round of introductions.
Did I introduce myself?
I don't think I did. I went on a whole spiel.
So I'm Christian.
I'm a developer advocate here or a manager of the developer advocate team, and we help manage our Discord and really help grow our developer community.
And then, like I said, I have Paolo and Zaid here.
Paolo, do you want to introduce yourself.
Yeah, sure.
Everyone, I'm Paolo.
I'm the product manager for the Cloudflare Images product.
Amongst others, like Image, Resizing and Polish, which are all part of the Image products that we have to improve your your life as a host for, for the images that you serve to your end users.
So thank you for having me.
Yeah.
Everyone, my name is Zaid Farooqui. I'm the product manager for the Cloudflare Stream product.
I've been at Cloudflare for about four years, the whole time on the Stream product.
So I'm really excited today to chat about the four announcements we made and the value that they provide for our customers.
Sweet.
Yeah, we are going to dive into those. There's a lot to talk about, both Images and Stream.
Real quick, though, I wanted to just talk a little bit about some we're missing a couple authors and there has been some exciting stuff going on with Workers, actually getting Workers in email, which is, I think a thing that people didn't really expect us to have announcements around.
So I am not the author.
I have like some basic understanding of it, but I'll just talk about it a little bit because I do think they're cool.
And so just so everyone knows, any of the announcements, including the ones we're going to talk about today, the ones that we've been talking about all this week, you can find more information on that, two places that I recommend people go.
The first is the platform landing page, which is cloudflare dot com slash platform week.
So platform dash week.
And we collect all of the blog posts there and kind of lay them out day by day so you can see everything that we've announced.
And then also they are blogs, obviously blog posts.
So blog dot cloudflare dot com you can go and kind of look through all of them chronologically.
So definitely go and check those out.
But yeah, real quick, I'll just talk about some of the Workers email stuff.
So we announced two different things today.
The first one is a really cool partnership that Irwin, who's a product manager on the Workers team, he published this blog post, send email using Workers with mail channels.
So this is pretty interesting.
It's a partnership that we're announcing that allows you to really easily send emails directly from your Worker.
So sending emails can actually be really hard.
And it's a really great use case, I think, for serverless functions because it's probably the easiest way to notify people of things going on.
We've done the sort of stuff with like Slack and Discord.
We've done these sort of like announcement or like notification trigger sort of things.
But email like it's one of the most ubiquitous things in the world.
Obviously, sending emails can be a really great way to notify your customers about what's going on in the application and stuff like that.
So this integration shows you the blog post shows you how to use this integration to literally in just a couple of lines of code, send HTTP request to mail channels, the partner that we're working with and send emails to basically whoever you want.
So it's a really cool integration and there's literally code you can just copy and paste from the blog post and drop it in and get started sending emails.
And I believe according to the blog post, it's like 100% free, which is kind of amazing.
Sending emails is pretty expensive usually. So I'm interested in this.
I'm going to dig into it more here in the next couple of weeks.
So that's that's one thing.
And then the other announcement is, is a new feature called Route to Workers, which is part of our email routing product.
And this one I think I've seen in our Discord before.
People are super excited about it.
It's very I don't think people were expecting this to come out.
It's pretty cool.
It's basically the ability to have your Workers service functions respond to new emails and process them.
So like if someone sends an email to a certain custom address, say like I don't know, [email protected] or something like that, you can have a Worker and specifically a function inside of that Worker like an email function handler.
They can do stuff with that email so you can inspect what the content of the email is.
Who's sending the email like the "from" field, I guess you could call that.
And then the "to" field who that email is going to, you can do whatever you want, right?
So Workers serverless function so you can forward that on to someone else. You can email it like a metric, say like using our new Workers analytics engine.
You can do whatever you want with it.
The possibilities are endless.
So it's a super cool and it really allows you to kind of do things, process emails in a way that I think a lot of products don't do.
It's it's really straightforward JavaScript.
So it's a super powerful and we're really excited about it.
So like I said, we're missing the authors for that one, those ones today.
So I was trying to kind of do my best impression of them here at the beginning.
But now I want to kick it over to Paulo to talk a little bit about the Images sourcing kit.
So this is one of the big announcements for the day maybe to start. Paulo, can you tell us a little bit just for people who don't know, like recap what Images is and then and then where images sourcing kit kind of fits into that.
Yeah.
So Images Cloudflare Images is a product where basically we want to have a pipeline that we deliver to customers and customers deposit their images, their source images on one end of the pipeline.
They can work how they want to transform their images.
To save bandwidth, to resize the image to fit better on the end user screen, save a lot of bandwidth in the process, and then we deliver it through a simplified method with all the benefits of using Cloudflare, which are pretty obvious.
So sourcing kit gets right into the beginning of this pipeline, because the pipeline itself has three main outcomes and I'm sorry, because I'm already using PM jargon talking about outcomes and stuff like that.
But you do want to achieve three things with Cloudflare Images.
You want to store the images in Cloudflare you want to manipulate the images in Cloudflare either by resizing or cropping or blurring, creating watermarks or whatever, and then you want to deliver as fast as possible to the end user.
We released Cloudflare Images for everyone, I guess, in September last year. And we've been hearing a ton of customers and prospects about what is still not the ideal process for them.
And one of the things that really stand out is we do allow to upload millions of images through an API.
We have improved the way to do it.
Like in the last month and a half, we've released a lot of stuff that you can actually read on the public developer documentation that we have, like the upload by URL.
We had customers that didn't have direct access to the data to upload.
They just had the URL that was somewhere else.
And we released the ability to use that URL and upload so you can create a script with the URLs that you want.
Call our APIs.
That's it, super fast, but it still requires coding.
We also allow to upload now using to define the custom path.
What is this?
It's when you do have like 10 million images that you want to bring to Cloudflare, if they are named in a certain way, the source, you really want to have that same name in the destination.
Otherwise you will have to have a huge mapping.
It's going to take a huge logistical burden on you.
So you want to keep the same origin name as you'll have on the destination.
We release that capability.
I think it was less than a month ago.
Still like we wrote in a blog post, there's still no simple way to go to the Cloudflare dashboard and say, you know what, I have my repository right there, just point to it and bring whatever I have there.
There are actual images.
So we started doing an analogy on how does this look like outside of our IT.
What does this mean outside of IT?
This was how the sourcing name was born because sourcing in an industry, in a particular industry, for instance, manufacturing implies you see like the vendor you are able to negotiate with your vendor when you want to import your your raw materials, you can vet those materials so you can say, yeah, these are not up to my quality standards.
And you can reuse those vendors whenever you want.
It's like you establish a contract with them.
That's exactly what we want to do here with sourcing kit.
So you have like first release, we will target S3, S3 repositories where customers have millions and millions of images.
What we want is something as simple as opening a UI, a dashboard.
So this is my S3 bucket.
Negotiate the authentication with it.
Define the rules of what I want to import.
How do I want to import it and click next.
And that's it.
Forget about it and it should be done. And you should bring millions of images into Cloudflare without the need to have a complex script or to have a full team looking at the outputs, the errors, etc.
It should be very visual.
We still want to deliver all of this through the command line.
We still want to serve all of these outcomes and all of these tasks by the command line, because we do have a lot of customers that use and script everything and that's great.
But we, we aim at delivering something extremely simple for everyone to use.
So with this particular tool, there are things like when you start to, to when you say, Yeah, this is my repository, start grabbing from there, you'll be asked a couple of things, like what if you already have an image with the same name here?
Do you want to refresh that image or should we skip it? There is a use case that we got a lot and a lot on the conversations that I've held with our own customers and even prospects out there.
They have like someone with an e-commerce website.
They have a lot of merchants, those merchants, they can deposit in different sources.
So you should be able to go to our tool and define source like one repo is exactly where my merchant A stores their images for their selling, I don't know, food.
So let's imagine that you're selling fish and chips, merchant sales, fish and chips.
Now they also have a merchant B that sells fish and chips and they deposit their images that will be placed on the website.
In a different repository, how to bring them all together, with no effort, to Cloudflare and make sure that they either don't conflict.
Or you can decide what is the image that you want to have serve to the end user.
We have all of that available here just by asking the customer, do you want to overwrite the images?
And if not, one of the things that really, really will make it simple is the ability to define a prefixed path for your image.
For instance, you define your source to a certain merchant, a repository, and you can now say, when you import my image, I want you to honor the complete path and file name, but still put a prefix that says Merchant A or whatever you want to call it.
From that moment on, all the images that we import from that source will have that particular path with that particular prefix.
So you prevent clashes.
This is how we want to prevent and how we expect to prevent a lot of logistical burden to, to, to our customers.
So from that moment, you can reduce the source that you had anytime you want because, you know, customers, they import 2 million images, but then one month later, they have 200,000 images to import again.
So they can go to that source and say, yeah, now bring those 200,000 images again to Cloudflare or the new images to Cloudflare.
You can define all that.
This is extremely important to something that product manager jargon we call the the first time to value.
Whenever you sign up for Cloudflare Images, you really want to be quick to achieve the value that the product will will bring to you, and the value is when you actually deliver the image.
We are extremely fast already with the naming of the variations, the resizing.
We have what we believe, and we are pretty sure about it, a fantastic product to resize the images, to deliver the images.
We did realize that we had a small gap there on the initial step of the pipeline to bring everything into Cloudflare.
So this is just a beta version and we expect to have all our customers giving us feedback, providing us feedback, letting us know because we know the problem is there.
Now we want your help to find the right solution for your for your health, for your problem.
That's awesome.
Yeah, it makes a ton of sense. I appreciate the context of where it kind of fits into the whole flow of people using Images.
Right. So yeah, that seems that seems tricky.
If you up until now, let's say, like if you wanted to use Images, it's like, yeah, that's all great.
I understand the features, but like I have, like you said, a million other images sitting somewhere else, right?
So that seems like it solves a huge problem.
And we do have a UI already where you can upload, you know, if you have 20 images, 50 images, 100 images you can drag and drop, that's perfectly fine.
But when you have an S3 repository or whatever storage you have and you say, Well, I have 10 million images here, you're not going to drag and drop into a browser, right?
So you will need to use an API and we're solving that or trying to at least that's, that's our goal to solve it.
And yeah.
And we'll, we'll need customer's help to understand if this actually solves that problem.
I'm sure I'm not the first person to ask this but is there R2 support planned in the future as well?
Cool.
I have to imagine I'm not the first person to ask that. Right.
So very cool. Yeah.
And it looks like it's like in the blog post, you can go on the Images dashboard and you can just join the waitlist there and that's awesome.
Very cool.
All righty. Well, let's let's switch gears now to Stream.
I know there are many, many things I was just looking at this morning.
I was like, oh, my gosh, Stream.
There's a lot going on here for blog posts today, right?
Yep.
Yeah.
So I don't know where. I'll.
I'll let you decide kind of where it makes sense to start. We can.
We can kind of walk through them or whatever, I guess order you see fit. Yeah.
So I think we're doing a lot of work around the live experience within the Stream product.
So we're the last one Stream launch. Four years ago we only had video on demand.
Stream was the first product where from Cloudflare we actually was storing data.
And, you know, we had thousands of customers adopted it.
The key value that Stream provided was that we don't we're not just taking a video that you're giving us and delivering it to the end user.
We're doing all kinds of optimizations on it, and we're making the products API first.
So if you have an app, you have tens of thousands of users.
I like to tell people, if you pull up any social media app, the heart of any social media app is you have some sort of a text box that's and a set of options about what do you want to post?
Do you want to post pictures, videos or do you want to go live? Whether you look at Facebook app or Twitter app, they all have this one thing in common and that's where I think follow.
And my product, we kind of intersect.
We want to enable people who have these dreams, these ideas to come to market a lot faster and also have the predictability around pricing.
So the first announcement I'm going to talk about is how we now support sub one second latency live streaming, using RTMP and SRT pull.
So RTMP is a protocol that was invented over two decades ago by Flash.
For those who are, I think I'm revealing kind of my age.
I was born and I was I found the Internet in the Flash era.
So Flash came up with this technology where you could go live, you could push RTMP streams, and the browser could actually render the RTMP screen if you are using Flash.
Now, I think Flash has long gone away, but RTMP remains to be the dominant protocol that is used to from broadcasters when they're broadcasting the stream for broadcast.
When it comes to viewing, viewing typically happens in HLS and Dash.
These are protocols that standards that go over HTTP and stream live support launch with support for HLS and Dash.
The trade off is, with HLS and Dash, that the latency is usually significantly higher.
You can optimize it and bring it down to seconds, but it's still it is hard to get anything close to sub one second latency with HLS and Dash.
So the announcement today, if you have a native app of iOS or Android, you can build live experiences that are almost real time.
Real time is generally defined as sub 100 milliseconds.
From our tests we could consistently see sub 500 millisecond latency when you are doing...
When you implement RTMP pull and SRT pull. What it really competes with as Web RTC, I would say the problem with web RTC is it is really hard to get scale, to make Web RTC or anything peer to peer work when you have thousands of people.
It's a lot like real life, right?
If you have to coordinate anything with five people in a room, not as challenging, but if you scale that to 500 people where everyone's experience depends on someone else, all of a sudden the challenge becomes a lot more significant.
So Web RTC does really well with real time, but if you have a video stream that is being watched by thousands or tens of thousands of people, you generally have had to make the tradeoff of, do I want to support large audiences or do I want to support low latency?
It has been hard to achieve both.
The announcement today with RTMP and RTMPS pull lets you achieve both, get super low latency as well as use a standard that scales to tens of thousands of viewers, concurrent viewers.
So really excited about it.
I think it's a slightly unconventional way of doing live, but but unconventional things are what excite us the most at Cloudflare.
We're not just about reinventing the wheel just because others are doing it.
We're really excited by it.
We would love feedback if you if you have a native app or if you use RTMP and you're struggling with the problem of scaling and latency, we encourage you to give it a shot and share your feedback with us.
The second announcement that I want to talk about is we now allow you to have your own domain name for ingesting live video streams.
So if you run a platform and you have tens of thousands of viewers that you allow to go live, generally on these platforms, you will give your users some URL to input into the video broadcasting app that they might have on their iPhone.
And you would give them a generally a key both for RTMP and SRT.
Until today.
The you are the server would have to be [email protected].
You couldn't customize it.
That was a tradeoff we made just so we could launch something and have customers using it.
But it makes a lot of sense, especially if you already have a platform that you operate and you already have infrastructure.
It doesn't make sense to tell thousands of your viewers that, hey, we moved our infrastructure to some other...
We made some changes to our infrastructure.
Now you have to change the URL to [email protected].
I mean, you know, as a user that would disturb me and make me wonder what is is [email protected]?
So beginning today, you can go and configure your own ingest domain and it really helps you with two things.
One is it lets you migrate to Stream live without breaking changes.
The second is it lets you avoid vendor lock in.
We'll be honest, vendor lock in, one of the core principles at Cloudflare is none of us enjoys vendor lock in, just on principle.
I think people should stay with Cloudflare because the product is succeeding, because we are delivering the value, not because you're kind of tied up and have nowhere else to go.
So first thing for me, this really excites me because at the end of the day, we want our customers to stick with us because we're delivering value, not because we've kind of, there's a gotcha and that makes it really hard for them to move off.
So if you're a platform that supports live streaming, I would highly encourage you to check out the Stream live product, especially with the ingest domain feature.
We have a few other features or similar to this that we have plans of rolling out in coming months.
The third announcement that I want to talk about is support for closed captions.
So right now, if you send us a life video stream through RTMP or SRT, it is possible for you to include the closed captions in the live feed.
It is.
And there are companies that will take your life, feed and sit in the middle and insert the captions and then send it to the tool that you're using that will do the encoding and the distribution.
Right now, Stream live, when it receives an SRT or RTMP feed with captions and drops the captions.
Beginning June, we will, sometime in June, we will begin including the captions in the final video that your end users see.
From our customers perspective, you have to make no change as long as your RTMP or SRT feed contains captions, the video feed that we deliver to the end users will also contain the captions.
Really excited about it, I think captions are so important, they have obvious accessibility upside.
But also we live in a world where people increasingly watch videos while the videos are muted.
Watching a sport game while you are using public transport, for example.
We see this all the time as we go.
We're going for a while.
There are people watching videos and often it's not because of the audio.
But it's possible to have very similar experience because there are captions that give you an idea about what is going on.
The final announcement that makes me really β it's probably one of my favorite ones that was on my list for a couple of years β is adding a creator property to the videos that exist in the in the Cloudflare Stream world.
Now, what does this mean?
So increasingly we have because we're an API first product, we have a lot of customers who have users that upload videos, right?
They might be learning platforms that let you monetize your knowledge of how to play a piano.
You might make videos and you might sell those videos. Now, if you're a platform and you want to manage your users, you want to know how much videos has user 123 uploaded.
Until now, you have to maintain that index on your own site.
So user uploads the video, we give your video ID back, you have to save that video.
It is somewhere in your database to really keep track that this video belongs to this user of mine.
What the creator property does is it eliminates the need for that.
You can send the Creator property to any arbitrary value.
And once you've set it, the real question is what can I do with it?
Because all the upside is in being able to leverage the creator properties.
So the, the thing that excites me is you can run queries like you can run a GraphQL query to say, give me a list of all of my creators and the number of minutes that their content has been delivered.
So we have a lot of customers that do this previously.
This would require many hours of scripting and managing.
Right now with the beta property, it just becomes a single API call.
That's awesome.
Yeah, I'm looking at the GraphQL requests here in the blog post. That's really neat.
Yeah, I know there's a GraphQL API for Stream, I'm sorry to say, but now I know it's very interesting.
So that's really cool. Hey, we believe or not, we only have 30 seconds left, so I do want to start to wrap up.
Those are both super interesting, both the Images and the Stream announcements.
So if anyone would like to read more about either of those announcements or really anything during platform week, just go to the blog.cloudflare.com or cloudflare.com/platform-week, you'll be able to catch up on all that stuff and I want to thank Paulo and Zaid for joining me.
Really exciting announcements and believe or not, we're out of time.
So thank you everyone.