In episode 83 of JAMstack Radio, Brian speaks with Stefan Judis and Paul Biggs. They discuss tools and practices for managing online content, insights around live coding, and tips for managing and selling domains.
About the Guests
Stefan Judis works in Contentful‘s Developer Relations and quickly fell in love with web performance, new technologies, and accessibility. He is also a curator of the online resource Tiny Helpers, contributes to a variety of open source projects, and enjoys sharing nerdy discoveries.
Paul Biggs leads Contentful’s Product Marketing team Berlin, where he’s lived for almost 4 years after a career of startups in Portland, Oregon. Between döners and pilsners, he helps companies update their digital playbooks: from launching new apps faster, to re-platforming monolithic DXPs, to re-teaming organizations.
Brian Douglas: Welcome to another installment of JAMstack Radio.
On the line we've got two guests from Contentful.
We've got Stefan Judis and Paul Biggs. Stefan, welcome back.
Stefan Judis: Hey, hi, Brian. Happy to be back. That's very exciting.
Brian: Yeah. Yeah. It's been quite a few episodes since Contentful came on and chatted, you and Rouven.
But also, Paul, it's actually probably been as many years that you've been at Contentful since the last podcast, but do you want to introduce yourself for folks?
Paul Biggs: Yeah, definitely glad to be here, actually, I'll have to jokingly say you'll have to be gentle on me, because this is actually my first podcast.
I've done plenty of webinars and videos, and all that kind of thing, but this is the first podcast.
So I'll dip my toes in lightly, but yeah, I moved to Berlin from Portland, Oregon.
I think there's actually an underground tunnel between the two cities, because they both keep it pretty weird, and moved to Berlin to work at Contentful.
And I've been there, like I said, for three and a half years, and it's been quite a wild ride, hanging out with Stefan as he's been doing his magic.
Brian: I'd imagined a nice Eurostar across the US, that goes under the Atlantic, and then eventually to Berlin.
Stefan: The quick way.
Paul: That would be the day, when they figured out trains back in the United States.
Brian: Yeah. I know Elon listens to this podcast.
So Elon, if you are going to make that tunnel, I was going to be pretty boring.
But Stefan, do you want to introduce yourself for folks who maybe didn't listen to the first episode when you all came on?
Stefan: Yeah, I'm Stefan. I do web dev stuff all around the JAMstack recent web technology and I'm part of the developer relations team at Contentful. Short and sweet.
Brian: Excellent. I feel like I should probably pull up the episode number, because I've referenced it twice.
So, episode 16, for anybody who cares to go and listen to that first episode.
I had no-one at Contentful, and the joke that I made on that episode was the fact that I built Contentful at a previous employer, which was essentially, I just needed to take a Google sheet, get it onto our marketing page.
So I created all these interactions and the SDK and everything like that, because at the time, as a pretty junior engineer, I thought I should build everything, to prove a point.
Then, end the meeting, one of the senior engineers is like, "Hey, this is really cool, but why not use Contentful?"
And I was like, "Content who?"
So a year later, I had you on the podcast and we talked about that, but y'all have been really doing a lot since we chatted, about over three years ago.
There's a couple of things that shipped recently, but first, what is Contentful, for folks who are interested?
Maybe be outside the JAMstack and weren't aware of this awesome tool.
Stefan: Contentful is a content platform that has an API as its core, which means that from a development perspective, you can use any technology that you like, that is able to make HTP requests.
And then we offer an editor interface for the people to basically edit and manage all the content that's coming in.
In the context of, JAMstack Radio, that just means hook up your static site generator user-friendly interface for the people that usually bug you to make updates on your websites, and then consume the APIs and built for the JAMstack.
Brian: Yeah. And it's a beautiful experience too, as well.
We've got Gatsby, Contentful plugins as well.
So if you are a wizard at getting stuff on the screen and the right kind of purple, whatever your expertise is, animations, you don't have to be that person to say like, "Ah, copy change," or, "We changed the name of this product. Can you change it on these 70 files on the web page?"
It's like, "No, I don't want to do that. Y'all just keep the name the same."
No, but now you can actually, you don't have to push back.
You can just literally hand over the CMS to somebody and say, "Okay, product team member, you changed the name once, and now it's updated where it needs to be updated," which is absolutely amazing.
Paul: Yeah. And I think it's funny, because when you talk about giving the control back to folks, other developers, when I first got to Contentful and people were onboarding this concept of headless CMS, the first question the business users ask is, "Wait, it's headless. So what do I touch? Is this just a developer tool?"
No, no, no, headless refers to a completely different part of this.
You still get all the tools you know and love, but the developers also don't have to deal with all of your code and CSS hacks in the content that they then have to deal with.
So it's like the best of both worlds.
Brian: I mean, it truly is.
Stefan: I just remember the old days, when I was editing YAML files, when people were putting semi-colons where they don't belong, and the builds were broken and all these kinds of things.
We've all been there, where the whole headless movement just becomes so convenient from a developer perspective, and I'm really enjoying that still.
Brian: Yeah. Yeah. I'm enjoying it as well.
What I love about the JAMstack, and I think everybody who listens to the podcast knows this about me, I am a serial, "I have an idea."
I literally just picked up a URL today called socialcarding.com, because I want to build social cards, and have a site for it.
I'm not sure why that wasn't taken, but essentially that's my idea.
I want to be able to generate that from the open graph.
I guess we call it domain-driven development.
I have an idea, I would have stand something up really quickly.
I don't want to manage a database.
So I'm going to pull Contentful into the mix and say, "If the idea changes, or if I had a new front end, I don't need to destroy what I've created, or basically walk away from it. I can actually keep that project alive and running," because the data is consistent, and it can be leveraged in so many different ways.
Stefan: How many domains do you own?
Brian: So I unfortunately had to get rid of five, they were just five names that I had just had to basically say, "This is not going to happen," but honestly, I think I'm in the thirties, it's not that bad.
Stefan: I'm on 15 or something.
Brian: Yeah. I do have a conscious, when I do pay the bill once a year, I'm like, "Was this really worth the $55 for that pizza domain that I'd never used?"
Stefan: But it's so exciting when you're purchasing.
Paul: Well, I was going to say, the real question is, what did I say? What's tired is, "How many domains do you own?"
What's wired is, "How much have you sold one for?"
That's the real question. Because last year I actually sold one of my domains for 5,000 bucks.
Brian: What? No way.
Paul: I was pretty happy about that. Yeah. Yeah.
I had like 30 or 40. It was an old project that I had shuttered, called, Closing the Divide, because I came from the nonprofit sector, and one of the things I was looking at was starting a nonprofit that helped bring internet to third world countries.
So I had this domain that I was just sitting on, not using, and someone reached out, and they still haven't done anything with it yet, but I was happy to partake in my first domain sale for a pretty whopping sum.
Brian: Wow. That's amazing.
I'm blanking on it, Brian LeRoux was on for talking about, Begin, and making server-less Lambdas easy, and the way they got begin.com.
Everybody go listen to that episode, episode 73, how'd they got begin.com was a really interesting story, and it sounds like maybe someone reached out to you in a similar fashion.
But anyway, moving on. 30 domains, I guess I've doubled Stefan.
We're really going on a tangent here, but if anybody wants to know, inbreadible.club, if you want that domain, it's now free and ready to take.
Stefan: Good to know.
Paul: Inbreadible. There's a reason it's free.
Brian: Yeah, well, I thought I was going to make a bread site.
I figured, everybody's putting pictures of bread on the internet, I can make a quick landing page and encourage people to post their bread pictures.
Paul: Sourdough pics from the pandemic, man. It would have been the next Instagram if you'd done that.
Brian: It would have killed. Yeah. But out of all things, all the great ideas, you just don't have enough time for all of them.
So I'm sure that's worth $5,000, but y'all could pick it up for free. But yeah, we didn't come here to talk about my failed bread startup.
I brought you on because I saw an article about some new tools that came out of Contentful.
I guess they're sister tools combined, like, Compose and Launch.
So can you explain what that is and how that is fit in the strategy of Contentful?
Paul: So really what's exciting about these apps, to me, is this marks a change in Contentful's approach to providing tools.
So about February 2020, so just over a year ago, we launched this new set of tools called, App Framework.
And over time, that set of tools has grown, but it encompasses everything from our open source design system, called, Forma 36, we've open sourced our field editors in our web apps, so that you can enter content from whatever kind of app you want to build.
We released STK for our app UI.
We customized our SAS application all sorts of ways, and offer hooks into our system for third party services.
But we were just giving that to our customers and partners to build apps.
What these represent is we're starting to, depending on how you want to look at it, eat your own dog food, or drink your own champagne, depending on which of those analogies you're more comfortable with, but we're starting to now build apps, just like our partners and customers, that rely to some degree on our app framework, but not entirely.
There are first-class citizens, like our core web applications, so they're a little higher level than the custom apps our developer community's building.
But basically, the idea is that by making our own product more modular and really embrace apps full-on, that we're also helping our customers and partners, whether you're individual developers or digital teams, or large enterprises, treat these apps as first-class citizens.
Now that we've released our own, A, they're really helping editors who sit on top of our platform, but also show their customers and partners how to do it.
So this launch represents two things, one, a new way of building things on top of Contentful, but two, also making our platform a lot more easy for editors to use with a very specific tool.
So Compose is built explicitly for web content, because you can imagine a platform like Contentful is like a buffet, right?
You go to this buffet and you can do anything you want with it. You can grab the gummy bears and your tuna fish, and if that's the website you want to build, boom, you've got that.
But if you're a bigger team that wants to get moving fast, you need something a little more prescriptive and/or just a single channel, like web.
And so that's where Compose really shines because it gives your content team, not this buffet approach to content and building out a site, but a chef's tasting menu of, "Oh, here's a place to enter your Istio metadata," and, "Oh, over on the sidebar, you actually can start to see a page structure."
And it's not just this atomic structured content assembly process, which is what a lot of the system looked like before, but now it's a specific web channel-building tool.
So it's a really interesting thing, where Contentful is taking an opinionated stance on how editors and developers collaborate together on a webpage, as opposed to going to a buffet together and trying to sort out who gets the tuna fish and who gets the gummy bears.
Brian: Yeah. Yeah.
And I love that because, so the app I built a couple companies ago, that I didn't know I was rebuilding Contentful, but that was an app where the data was really where the magic was.
And that's why we wanted to make sure the data was accessible, and could be entered by anybody on the marketing side.
Actually, so the app was an aggregate of Boot Camp's, because we were an online Boot Camp.
We wanted to basically have nice comparison of what's out there, but also keep tabs of what everyone else's wants, and what they're looking for as far as feature sets of learning how to code. So it was like our competitive edge is, have this platform.
There've been quite a few other people who have shipped something very similar since then, successfully.
But I bring that up because that same data could have been built as another thing, here, there, wherever.
So like being able to sort of have that, Compose components together, it seems pretty powerful to be like, "Oh, you know what? This project maybe failed, but we can continue the banter, or continue the torch, pass the torch down."
It's funny, because I was joking that this podcast, I named it, internally, Contentful Two, because you guys have been on air twice, but that's how I do my projects.
Open Sauced is a project I still maintain, but it had a different name, and I migrated that idea into another project and rebuilt it, using, React, and all these new cutting-edge technologies, which is like, all I want to do is, don't kill the project completely, let's see if we can salvage this portion of it.
Stefan: Yeah. I think to point out here that these kinds of apps are additions to the existing editor interface.
So the beauty of Contentful was always that you define the content pieces on the fly.
That was always what I absolutely loved about the thing.
I need an author, I need a book, I need a recipe, I create a content type, a structure, defined the structure that I have, and then I can just query it back.
What we have seen is that there are a lot of people that are particularly building for the web, and so Compose is our opinionated approach for that, because we've seen a lot of people that come up with their own similar, but not always quite the same, solutions to build landing pages or to deal with, as Paul said, STL metadata.
And then you have all these floating pieces around different types, because people reinvent the wheel anyways, they just go with that.
And Compose is now this really opinionated, structured approach, "Hey, this is how you build pages for the web," which then speeds up everybody in the process.
And it's a quite beautiful approach to speed everything up.
Brian: Yeah. That's excellent.
So with these components steps too, as well, is this more of a concept of WordPress, or CMS, in having plugins or different access to data?
Is that the correct comparison?
Stefan: So, it looks probably a little bit closer to what WordPress users are used to seeing in front of them.
Which makes the whole thing a little bit more familiar, because especially with this content-type component architecture, people don't necessarily understand that they have to start their journey at a landing page, then go to a different entry, which just may be zero data, which may be a reference to something else.
With Compose, we're also taking the opportunity to flatten this whole structure.
So even when people and developers are interacting with, let's say five different entries of completely different type, the interface is flattened, so that it feels like one thing, which then removes a little bit of friction.
So it's two sides here, right?
From a data perspective, it's still, everything is reusable, still everything is nicely decoupled, and split and variable, if I want to, in pieces.
But for the editing experience, it feels like this one page, which is built for the web use case.
And that's where the beauty comes into it.
Brian: Excellent. So what are some examples that you've seen?
I guess you're using the use examples to encourage your integrators and customers, and stuff like that.
So what are examples of people using this today?
Paul: Oh, we just had a couple of folks that our customer could, we just have blueprints.
One of our annual conferences happened last week, and then again, the north American version last week and then on Thursday, our AMEA version of it.
And we had a couple of our customers set up and talk about it.
So, Huge, is a great agency based out of Brooklyn, but obviously now global, that's in the process of, I don't know if they've launched it now, or about to, their new website using Compose.
And had a number of agency partners who have really scooped this up, because it lets them essentially build these really data-driven, cool, dynamic websites, but still give the editors, at their client's side, a very straightforward content curation, editorial process, to add new pages, and add new landing pages, and launch new campaigns.
So we see a ton of agencies, Kin + Carta was another agency that's a big partner of ours, that talked about some projects they've been working on with, Compose.
Since it launched, let's say three weeks ago, we're still waiting to see what customers will build.
But the agencies that I mentioned were part of our early access program, so that's why we saw what they were working on.
So the real question will be when the next big project is, after these have launched, that we see.
So, early days, but I can say that about, so far I think over 20% of our customers in the course of the last couple of weeks have installed them and have started playing with them.
So we're seeing good, strong adoption there, but yeah, I'd say all the cool projects we've seen in our early access program are from some of our big partner agencies, who we give access to the tools in advance, so they can start playing with them.
Brian: Yeah, that's awesome. I also noticed in the documentation, a next.js example as well, of how to leverage this.
So for folks who are looking to get their feet wet with Compose definitely check out the docs.
There is a great tutorial, using next.js, that seems pretty fresh.
The feature is pretty fresh itself, but that's where I'm going to start, and hope other people will start as well, there, because listeners love, at least on the, JAMstack Radio, love next.js.
But yeah, we've actually rounded the bases quite a bit around Compose and Launch as well as what's happening Contentful.
Anything else cool that's coming up, or that's happened in the last three years?
Stefan: In the last three years? Is a broad question.
I can give you a quick rundown of the things that we shipped between three years ago, when Rouven and I were around, and today.
So the thing that I'm personally most excited about is probably that we had GraphQL support for a while, but last year it went into the free community edition, which means that really everybody came out, jumped onto the GraphQL hipster train, and starts querying the data as they please.
I'm still amazed by the tool chain that GraphQL provides, and that you don't need to install an SEK or anything, any HTTP client will do.
So I'm still amazed by that.
Another thing that happened over the last few years is that when I entered Contentful, basically Markdown was a first class citizen.
And I think along the way, especially in the JAMS, the aim is not really, Markdown or markup anymore, right? So, but people are rebranding. It's more, it's basically everything.
But a lot of people figured out that, Markdown has a few shortcomings, especially when building complex data-driven things.
So Contentful also released a rich text format, which is pretty close to, what you see is what you get, editor, but it structures all the content in JSON, so that you can reference different things and maybe embed videos, which you can, for example, not do in Markdown without hacks around all these kinds of things.
Then, for larger scale projects, we released Environments and Aliases, which what we've seen is that a lot of companies or developers that trial a lot of content in production, at some point you have the need to change your content structures, and that becomes a little bit of a hairy situation.
So in code, is easy. You branch out, you do a pull request, you review the whole thing, but how do you do this when you're dealing with a headless API?
It's like, "I'm not sure."
So what we would release there is, Environments.
So you can branch out, do your changes, test it with your apps, or with a side so that you're building.
And then we have this idea of aliases which means that you have a master point, which is your production stuff, but then you can switch things off, or over, after you say, "Oh yeah, it's actually working."
So you can play around, deploy changes, switch to a different thing, flip everything around, to not have a downtime or some issues on the way.
So that's something that we're playing around, especially with the DevRel team, to, "How do we do CICD pipelines? How do you make that as seamless as possible?"
So it's actually beautiful, when you branch out and CircleCI changes your content, flips a switch, and to deploy all that stuff.
So, that's pretty nice.
Lastly, the only thing that we mentioned is that we released the app framework, which Paul already plugged, which is a way to extend and make Contentful pretty much basically your own, which is pretty nice.
Brian: Okay. Yeah. That's an awesome rundown. Hat's off to you, you're doing your job as DevRel-
Stefan: Bam, bam, bam, bam.
Brian: It's almost like you just came out of a conference.
Stefan: I haven't been at the conference for ages, man.
Brian: You and me both.
Paul: Yeah. Yeah. Conferences. Remember that? Oh man.
Well, just to add a cherry on top of that cake, you can tell I speak in analogies a lot, I apologize for that.
We've grown to a clip where we're now doing, I want to say a billion API calls a day, because we're across the threshold of clocking in at 25 billion a month.
So the traffic is getting pretty crazy, and I think adding GraphQL to all of our accounts, not just our enterprise accounts, as Stefan mentioned, but now to our developer community accounts, has really pushed up that activity.
So it's exciting, it's wild times over here.
Brian: Yeah. That is amazing. I don't mind your analogies, you had me at gummy bears, when you're talking about the different composing.
Paul: Well, that's a specifically German thing, that's Haribo, right?
So it's a heritage I'm working my way into, now that I've been in Germany for a couple of years with three kids.
Brian: Wow. That is amazing. So have you picked up the language since you've been out there, or is everybody speaking English to you?
Paul: So the challenge was that I'm not culturally motivated as I should be, because everyone here speaks English.
So yes, I'm a bad global citizen, but thanks for bringing it up while it's being recorded.
No, I did. So I have taken a couple of classes, because Contentful does offer free classes, but they were during lunch, which we don't do anymore.
So those classes have trailed off a little bit, and then we had another baby girl.
So she, unfortunately, wrecked all of my chances of doing anything extracurricular for a little bit.
So, but all of my kids speak German, because they're now in school here. So they're my translators, and it's amazing to see how quickly they picked it up. So there's some small-
Brian: That is awesome.
Brian: Well, that's pretty awesome that Contentful offers the classes.
Hopefully we could get back to that sometime.
We talk about the before times, I can't wait until the after times, and we can talk about conferences, events and go grab a beer together again,.
Stefan: Hopefully coming soon.
Paul: Yeah, seriously.
Brian: Well, Paul and Stefan, thanks for chatting about Contentful, catching me up with all the stuff I've missed out on because I haven't really, I should probably subscribe to the RSS and keep updated with the change log.
But with that, I want to transition us to picks, these are JAM picks, could be movie, food, technology-related.
Nothing's off limits, so feel free to tell us what you're jamming about, but it looks like y'all have already prepared.
So, Stefan, do you want to go first and share your picks?
Stefan: Yeah. Related to the JAMstack, I rebuild last year, my site with, 11ty, which is the new cool kid for the pure static site builders, and I'm still enjoying it.
So, that's beautiful. A second pick is just my colleague, Salma.
So I'm trying to be a cool kid and jump onto the mechanical keyboard train. I failed once already.
I went for the Moonlander, which is this fancy, fancy thing.
Too tough to type, I had to give up, because I was also worried that I cannot type on my Mac anymore, but I now switch to the Mistel Barocco.
My colleague, Salma, recommended that, and it's beautiful.
My hands are a little bit tired right now, but it's a split keyboard, normal layout, and it's nice.
I feel very good, and having your hands not that close to each other feels refreshing after 15 years of typing.
Just the split makes it very, very comfortable.
So I can highly recommend. I'm typing like this now.
Probably you don't see that, so probably 50 centimeters between my hands. It's super nice.
Brian: Yeah. I'll definitely drop a link in the show notes.
So it's wireless too, as well? Have you seen any performance issues of having a wireless keyboard?
Stefan: I have the cable version.
Brian: Oh, you have the cable version. Okay.
I just pulled it up and it had wireless, but yeah, that's always my concern, is having wireless anything, is typing and then, "Ah, man, that's a-"
Stefan: I share that. Yeah. Go for the cable.
Brian: I will do, actually.
I'm going to drop this in my Amazon wishlist and think about it for a couple of months.
Cool. Paul, you have some picks for us?
Paul: Yeah, the one I ran across just this week actually was, as I had alluded to earlier in the show, I spend a lot of time doing webinars and demos, and less of the podcast format.
So what I found was, if I'm on WebEx or Zoom, or any of these other things, they all have different screen annotation tools.
So I found a new one, well, I didn't find, one of my colleagues recommended to me a tool called, ScreenBrush.
And what ScreenBrush is, basically it's an app, it's an annotation app that sits on top of your screen, and then just gives you the same set of annotation tools for whatever medium you're in.
So if you're in a WebEx or a Zoom or a whatever the internet throws at you, you can use the same set of annotation tools.
The Zoom ones are super challenging, because when you're trying to draw things, they don't go away.
So, 10 minutes into the meeting, your screen looks like you unleashed your children on it.
So this one gives you settings, like how quickly things fade out or fade in, and you can pick a color, so it's always the same brand color if you're into that kind of thing, and just makes it, if you're someone who likes to draw on screen or annotate and screen, like I do, it was helpful.
I don't have to learn annotation tools for each of the different vendors.
I just always pull this one up, it's a keyboard shortcut to pop it open or pop it closed, and I can just run from there.
So I can draw on all your faces the same way every time.
Brian: Excellent. I love this, because I've been doing a lot of live coding on Twitch, and I never know what to pull up to highlight and talk about the thing I'm talking about, to emphasize it.
I've tried other tools, I've tried to do integrations and stuff like that, but I'm just not very consistent.
I don't want to build a thing and then not take care of it or maintain it, so I'm very shy of building my own stuff at the moment, unless I have a domain for it.
If I have a domain, I will go off to the races.
Stefan: Closing the loop here like a boss. Not too bad, Brian.
Brian: I will definitely check this out, because I think this would actually solve some problems for me.
But speaking of why coding, I do have a pick, and it's actually who you just mentioned, Stefan, Salma, who goes by, White Panther, on Twitch and YouTube and everywhere else.
Y'all got a great guy, you just hired Salma a couple months ago or whatnot, and they have been killing it for the past year, doing live coding.
I've been watching them for the past, I say year, we're in the 2021, but full fiscal year of COVID.
Stefan: She does a good show. Yes.
Brian: She does an excellent show.
My only wish is that she did it later in the day, late in an evening for her, because it's always so-
Stefan: I will tell her that.
Brian: It's always so early. I actually told her on stream before, because it's just so early for me.
But yeah, she's based in, I think the UK?
Brian: Manchester. Yeah. Yeah. So her streams are a bit early for me, so I do try to catch them.
But the one pick I do want to have is her YouTube channel, where she just started shipping YouTube videos from the stream, which is something I've been trying to get DevRel folks to do.
If you're going to live code, repurpose the content as much as you can.
I used to do a lot of talks from stage and make those in the blog posts. I do the same thing with live coding.
I take the live coding, make it into a YouTube video.
Edit it, don't just give me the same thing, unfiltered, three-hour content.
But yeah, I think she's been doing a really good job, and she only just started getting started on.
So I just wanted to shout her out.
Everybody go follow, White Panther, on Twitch and YouTube, please, and then sign up for Contentful and start using some of these tools as well.
Brian: Cool. So that rounds up the conversation. Thanks again for the picks. I definitely cannot wait to check out this stuff and, listeners, keep spreading the JAM.