In episode 77 of JAMstack Radio, Brian speaks with Rita Kozlov of Cloudflare. They discuss how the success of Cloudflare Workers led to Cloudflare Pages, the new JAMstack platform that allows developers to deploy static sites easily.
About the Guests
Rita Kozlov is a product manager at Cloudflare, focused on building the roadmap and product development of Cloudflare Workers based on developer needs. She was previously Principal Solutions Engineer at Cloudflare and a Program Manager Intern at Microsoft.
Brian Douglas: Welcome to another installment of JAMstack Radio. On the line we've got Rita Kozlov. Hey Rita.
Rita Kozlov: Hi Brian.
Brian: And Rita you work for Cloudflare, which Cloudflare has been on this podcast before, episode 31.
So welcome back Cloudflare, but you have a new feature, a new product really more than a feature that you want to talk about.
So do you want to introduce yourself and tell us what's new at Cloudflare?
Rita: Yes, absolutely.
First of all thank you for having me on.
So that's what I've been working on for the past three years.
But one of the things that we noticed was that developers were using it to build JAMstack websites and we wanted to make it easier for them. So luckily with that already in place we recently were able to announce Cloudflare Pages, which is our new JAMstack platform that allows developers to deploy static site really easily.
It's self built on Cloudflare Workers.
Brian: Excellent. I mean, I had an awesome conversation with Kenton three years ago like you mentioned, and understanding the edge network, which--
At the time I think Cloudflare might've been the first people I was aware of and perhaps there's other people who are doing stuff and on servers on the edge network, but as far as the Workers how powerful was that to be able to change things and have unique data for different regions, which was the use case I had in my mind and what I've been using it for.
But it's interesting to hear that Cloudflare Workers is what powers Cloudflare Pages as well.
So what features are you getting out of the product which is Cloudflare Pages that makes this enticing for listeners?
So having Cloudflare Workers has definitely been a super power for us because once you're able to write code on this massive network, building new features or new products like that is just a matter of writing that code and deploying it.
Actually a year or so ago the thing that we originally announced was I would say the prequel to Cloudflare pages which was the Worker Sites.
We have this CLI for workers which is the tool that you use to deploy them called Wrangler.
And what we did was we took things one step further and created a template that you could use where you would run Wrangler generates, and it would scaffold out the worker code for you to serve something like a static site.
And also in the time period between the last time you talked to us.
And now the other thing that we released was Workers KV which is our distributed key value store.
So building on the power of being able to write code in the edge the next step to being able to build something meaningful was state on the edge.
And what we found was that another really great use of it was to use it to basically mock a file system and shove a bunch of static assets in there.
And boom you have a server for static sites, but we thought we can make this even easier for developers or you really spend most of your time as an engineer is in your code and the way that you generally commit it is by committing it to GitHub or source control.
And what we're seeing more and more is that what developer experience means to people is that they're able to do that directly through an integration.
And so what Cloudflare Pages really makes easy is that seamless flow between, okay, I've written my code, I commit it and then we will take it from there and deploy it for you.
And we take care of things like having a bunch of preview environments so you can test it out before it goes live. I think one of the really interesting things is the collaborative aspect of it, where you're rarely writing code on your own.
Most projects involve multiple people so you can send a link to someone and go, "Hey, does this look good? And take it from there and iterate."
Brian: That is amazing too as well.
And I love that you brought the context of where cloud per pages came from the last time where my context is with the workers, because I knew about Wrangler and I knew some members of the team who worked on a Wrangler and I've actually chatted with them about the product, but I never actually asked what it did to be quite honest.
Because I know Wrangler is built using some Rust codes or some Rust team members were part of that team, but that is one it's genius I love it.
But I love that you have follow the user story along where you built a really cool thing on edge servers, you built a really cool thing to build sites really quickly and then also bring state into the mix as well, so I love all this.
I love that this is now another solution for the JAMstack and for folks who just want to build sites and ship them quickly and take advantage of all this compute power out everywhere else.
But also not have to worry about EC2 instances too as well and how to manage all that stuff because I'm a big fan of this abstractions and CLIs and now with the integration.
So with Cloudflare Pages, you mentioned to get integration, is it now a full-on like GitHub tool where I can just point a repo to it?
Is that what you mentioned earlier?
Rita: That is exactly what I've mentioned earlier. Yeah.
So the way that you get started is you connect to your GitHub account, you select your repo and we'll take it from there.
Brian: Excellent. It's a proven model if it works.
And I love the fact that no longer do I need to worry about what machine is on what.
It's similar to like I don't even know what the server is where, I just know that Cloudflare can handle that for me eventually when I do have a user somewhere in Australia or something like that I don't need to sort of rush to my machine at 4:00 AM because something's happening or I was on the Australian version of Hacker News.
I'm curious though, with the Cloudflare Pages tool as well because--
My introduction to Cloudflare was GitHub Pages and the best thing about Cloudflare and the GitHub Pages combination is that GitHub Pages it's a cool feature.
We do have a team at GitHub that works on it, but it's really it has a use case and it's for folks who have repositories or open source projects that have a site, no questions asked is GitHub up and running?
But the limitation is the Cloudflare piece where you don't have the server, the edge network and all that other stuff.
So that was the most common use cases. So my real question is who is the end user?
Who's the use case for Cloudflare Pages?
Rita: That's a really interesting question.
I think there's two ways in which we're thinking about it and that were the motivation for building it.
One is Cloudflare started out serving people who had websites and in the same way that you mentioned used GitHub pages in combination with Cloudflare that's a very, very common scenario for folks for the entirety of Cloudflare's life.
You had a WordPress site or you had GitHub pages website and you came to Cloudflare for DNS and you wanted to put a CDN in front of it and make it really, really fast.
And so in one way Cloudflare pages is the extension to that.
Okay, we already perform all of these services for you.
Why don't we do the hosting on your behalf instead if you're a developer.
It's not replacement for Squarespace or Wix, or I would even say WordPress is on that fuzzy area between like some developers use it and it has some really advanced features, but also my dad uses it for his website who kindly requested access to the Cloudflare Pages Beta.
Brian: Yes, shout out to your dad.
Rita: I know. Always surprising me with his tech savviness, but I don't think that he'll enjoy it as much as he enjoys his WordPress Plugins.
So that was one way in which we're thinking about it.
So when we started thinking about how do we connect these two pieces and bring more front-end developers to the Cloudflare platform, whether it's Workers or Pages, that connecting tissue of, "I will take care of all this CI pain and deploy the website for you."
That was something that it became clear that we wanted to solve.
So I would say somewhere between webmasters and front end developers is what the intended audiences, but what I think is really cool and I get really excited about is by combining the two products, pages and workers and we want to make it just as easy to deploy a worker alongside your pages project.
Any front end developer can become their own full stack developer because all of a sudden the backend is becoming so much easier to develop as well.
And especially when you don't have to worry about managing and keeping servers up and all you have to do is to ship a website, which I understand there's a lot of work that comes to building websites these days.
So it's not as simplistic as I just mentioned it, but I love that.
I don't even have to consider that or have to manage scaling through Kubernetes which is a fun side project, but not something I want to do full time for sure.
Rita: Yeah. I mean, it just always amazes me.
I remember actually when I was first applying to work at Cloudflare, the original role that I had was I was a solutions engineer.
And there's this homework that you do.
One of the things that you do is you deploy an instance.
I think I use digital ocean and you have to get it to work with this tool that we had called Railgun.
And I remember going through the pain of just setting up a super simple Apache server with NginX running on it and just to get the simplest hello world page easily took me like three hours.
And so the fact that today you can do that in literally seconds or minutes.
And don't have to learn about all the services that you need to know to load balance things if you want, like you said things to be performant somewhere like Australia or don't want to wake up in the middle of the night because it went viral and now everyone is clicking on it.
I think that's so cool.
Brian: Yeah. And I do want to point out that I know Australians do read Hacker News.
So that was the use case that I was looking for is this Australians reading hacker news so it makes me wake up in the middle of the night, but I wanted to ask for Cloudflare Pages--
How do I enable Cloudflare workers at that point once I have it set up?
Rita: So once you have your DNS set up on Cloudflare you've registered with the registrar you get your Cloudflare pages project set up by default will allow you to deploy it to whatever your project name is.pages.dev.
And so from there since we already manage everything else, getting it deployed to your personal website is as simple as we have a little tab that says custom domains, you enter it in and then DNS SSL all of that we'll take care of it for you.
Brian: Okay. Excellent.
And then at this point where folks are listening to this all are already officially in Beta.
I'm curious, what other things can you unlock with this solution once people have now engaged?
Rita: Yeah. So as I briefly mentioned earlier, one of the things that I'm really excited about what's coming next is that integration with workers.
A model that we've already seen a couple of times with Next.js is you have an API directory.
And if you place any functions in there those gets deployed by default as serverless functions.
And so what we want to do is something very similar with workers where as long as you follow the directory structure we will deploy everything for you.
And the really cool thing is since we already offer services like Worker's KV that gives you access to that state at the edge, you can build really, really meaningful things like you can build a full API.
And the other thing that we recently announced is durable objects which I think is a very interesting concept where the state is tied with your actual application code.
And so very similarly. Yeah.
I think that the really interesting things to come are that integration aspect of it, where you can build on it.
Brian: I was just actually searching while you were talking about examples of workers because one thing I liked about the whole serverless movement and having functions one-off functions to solve problems is things like handling the passing of JWTs it's like stuff that I don't want to always have to re-remember.
And what I usually do I quite honestly I'm basically this outing myself.
I always go to an older project that I've solved the problem in and then I copy and paste that code into the newer project.
I used to put stuff like that on NPM, but then that becomes like a nightmare to maintain because it was like one-off.
But I liked the idea of having like these one-off functions or workers to be able to share.
So then in my mind I'd love to have like a resources to be able to say, "Hey, here's some solved problems and workers enabled us with your Cloudflare pages."
And am I giving you feature feedback or product feedback like live on the air is that what's happening right now?
Rita: Yeah. I mean, you're not the first to give this feedback.
One of the ways in which we tried to provide building blocks to developers is we have our example gallery and the docs which does give you adding headers as a solved problem.
Here's the most efficient way to do it please, please, please copy and paste this code and don't spend too much time on it.
One of the really cool things that has also happened over the past three years is we've seen the platform mature and the ecosystem grow is some of the tools that people have built around it.
So literally just earlier today I came across this CF worker's util library that simplifies all of that stuff even further.
So yeah, that was really neat.
I do think one of the things that we would like to bring back at some point that I also builds on what you were saying is some idea of worker apps, where there are use cases like authentication like AB testing, where you want to feature flag frameworks--
Or maybe you want to buy it from a vendor and they maintain that framework and it lives on the edge in front of your website.
And all you have to do is sign up for it, click install that on my website and you're good to go.
Brian: What I like about workers.
And I've always liked about workers.
And I don't recommend doing this folks, always test your code and make sure it's legit.
But being able to copy and paste that into my code base and see if it works to see if I have a solution to the problem I'm trying to solve in a quicker way to sort of access to it.
So I see like the webmaster, the front end devs, I think it might even be one of more expansive with the inclusion of workers because when you think of marketing and agencies like the people who solve the problem over and over again and build the same flavor of site, now they can have some quick access to get stuff up and running.
Rita: Yeah, exactly. Which is why examples are a really big thing.
Going back to the beginning of our discussion with Wrangler, one of the things that it's made really easy too is having starters so you can write your own little boiler plate and run Wrangler generate with a link to the repository and it'll instantiate that type of project all over again.
So if your company has a template for something that you do on a few different websites or anything like that it really streamlines that process.
Brian: Yeah. For sure. All exciting stuff.
Anything else that we perhaps missed on the worker or Cloudflare Pages conversation?
Rita: I will say and other things that I'm pretty excited about with pages first of all, the whole other product suite that Cloudflare has is what's now called Cloudflare for Teams, which is more about protecting your network and employees and giving people access to certain applications.
So think of the edge as this protective layer that sits in front of your internal network.
And so Cloudflare access is my favorite product of that product suite which we basically now use exclusively instead of VPN because a VPN sits in one spot and now that especially everyone is working remotely.
If you're not near your office all of your traffic gets rerouted through a central place whereas with access all the authentication happens on the edge.
We make a call out to SPR SSO provider to generate that token and then you're good to go.
And so one thing that I'm really excited about is the integration between that and pages where whenever we generate a preview link, generally that's for people that you're working with to view not for the rest of the world.
And so as we onboard larger and larger organizations it becomes really easy and convenient to just put access in front of it and whoever is in your G suite or grade GitHub Org automatically gets access to these things.
You can add someone specifically by email and they'll get a one-time pen, but yeah that's another problem that a lot of people are solving over and over and can just one button click it.
Brian: Excellent. That's fascinating stuff and I've never heard that use case.
One use case that I've had for the past year is the fact that the cores origins--
Chrome created like a strict model if your API is not hosted in the same place your front end is hosted, being able to make that okay has been a pain point and as I've been trying to figure that out how to solve that.
And the nice part about that is you could leverage things like Workers to basically sit in the middle and make everything validated as far as having access to your API or do your API to your front end.
So Rita, I appreciate the update on Cloudflare and with Pages, I do want to transition us to picks.
So if you don't mind these are jam picks, folks.
Jam picks are things that keep us going.
The jamming can be music, food, technology related.
And at the moment I've got one that combos all of them except for music, this technology and food really--
And it's actually a Bottomless Coffee.
So I've been using the service for the next couple of weeks I'm actually on the east coast and Florida and hanging out with some family and potting up and it's hard to get good coffee in the grocery stores out here.
Most of it's like pretty much Starbucks or Dunkin Donuts. Dunkin Donuts is not bad?
Rita: It has its place.
Brian: Yeah. It's not what my palate has been accustomed to.
So I am a coffee snob and I need to be able to have my coffee delivered to me on demand, which is why Bottomless Coffee they have the service where you get a scale, you put the coffee on the scale and when your coffee gets below a certain weight it ships you a new bag.
Brian: Yeah. So it's amazing. And you get an app to be able to make sure what's coming up next.
So it's similar like coffee of the month clubs where you get a new bag every month.
This one they sends you when you're ready, sends you a new bag.
So it's different flavors to you.
You pick your flavor profile and what sort of roast being true into and they've not sent me a bad bag yet.
I'm waiting until they send me a San Francisco bag.
So that way I'm just, "Oh, home. That's what that smells like."
But yeah, I've got already three bags in less than a month so it's not too bad.
Rita: Wow, that first of all sounds like an amazing service.
As a fellow Bay Area coffee snob we get subscription bags of coffee and they start to pile up.
And so the fact that it just knows when to order you more is honestly so brilliant.
I am curious, what is your flavor profile that you selected?
Brian: I have not started drinking coffee and I think I might've mentioned this on the podcast before until my son was born.
I just never had interest in coffee.
And then when I had to start waking up at weird hours of the night or staying up and giving my spouse a break that changed everything for me.
And I had to start thinking about coffee before at that point I was whenever I drank coffee it was basically candy like sugar and cream.
Now I drink black coffee.
So I prefaced that because my favorite profile is basically a light roast.
It has to be light or medium roast.
And then I do like some medium tones.
Like the coffee I'm drinking right now actually it has a bit of fruit elements.
I'm struggling because I didn't read the bag.
I just opened it today so I didn't actually read what was in there, but it was great.
And I put no sugar, no milk it's just straight black coffee. And I do the whole pour over method.
Shout out to my Instagram which you can follow me on bdougieYO.
I actually have been doing some videos of me making coffee, because again we're inside and I watched tons of Instagram and now I'm now making coffee videos on Instagram. What is life?
Rita: What is life?
Well, I guess speaking of fruity flavors my pick is Kishu Mandarins, which are these super, super tiny, like you thought cuties were really, for lack of a better word cute and small and sweet and juicy and delicious and easy to peel.
I don't know if this is a new breed or not, but they started showing up in my grocery store and someone who just generally enjoys tiny things.
One of my friends actually has an Instagram specifically for tiny things.
I'm not that committed, but yeah they just really delight me.
Brian: Excellent. Yeah. Well, thanks for sharing.
I'm actually Googling Mandarins right now.
And I want to say I've probably had these in the house before, but never gave it a second look.
But also I have got two kids now so fruit in the house does not stick around very long which is good because it can be expensive.
So I will definitely take note next time I have Mandarins in the house and see if I'm their key shoes if not I'm going to look for those in the store.
Rita: Yeah. It's full on citrus season in California.
So lots of delightful fruit out there, but I would say that's been my favorite.
Brian: Well, awesome. Thanks for sharing.
And thanks for updating us with the latest and greatest of Cloudflare and Cloudflare Pages.
Folks definitely give it a try.
It sounds like there's a lot of things you can do with it especially with the advent of having workers alongside of it.
So let's set up and that's what I like.
So speaking of which folks keeps spreading the jam.