Cloudflare TV

Customer Spotlight: Hemnet

Presented by Derek Yee, Christoffer Hamberg
Originally aired on 

An interview with Christoffer Hamberg, Technical Director at Hemnet; Sweden's largest and most popular real estate website. Christoffer will recap Hemnet's journey with Cloudflare, and their most recent implementation of Cloudflare Workers.

Customer Stories

Transcript (Beta)

So welcome everyone. My name is Derek Yee. I am on the product marketing team here at Cloudflare.

Thanks for joining us today for our customer spotlight. And today I am joined by Christoffer Hamberg, who is with Hemnet, which is a Swedish real estate property website.

And I could tell you what Hemnet is, but I think it's going to be so much better to have Christoffer tell us what is Hemnet?

What do you guys do? What's so fantastic about it?

All right. So let's go back in time a bit. Like Hemnet, it was founded back in 98.

So quite in the early days of the Internet almost.

I think it is the kind of equivalent of Zillow or Rightmove in those sites.

And I think Zillow was founded in 2006. So Hemnet has been around for quite some time now.

It was initially launched by like a broker association to kind of gather all property listings in one place.

So it was spun out of that initiative and was doing that for almost 20 years.

But in 2007, it was bought and kind of shifted in more maybe into a product company in that sense.

So in that sense, we're still in the early days with Hemnet and what we're doing, the technology and product wise.

So we kind of just started that journey.

But in numbers, we are actually ranked as the most popular real estate site in the world, given by the number of visitors, given the population size.

And actually like in May, we had an all time high with 71 million visits in that month.

Total of 6.5 million hours spent on site and apps. So people do love browsing for properties.

So one of the questions I was going to ask you is like, how is the real estate market doing in Sweden?

And in particular, has that been, can you guys tell based on the traffic that you guys are seeing being impacted by the current global pandemic?

Yeah. So compared to a lot of peers, we've seen a growth in the traffic.

So as I said, all time high in April and in May. So really in the other way around, given also people are at home watching, getting the inspiration.

And that's what we see a lot also is a lot of inspiration. People are browsing for fun.

We call maybe that segment as dreamers, people dreaming of their next home.

And that's part of, I think, what then differentiates, say the Swedish market, we have this exclusivity with the brokers.

So there's only one broker who can broker this one listing.

So compared to other countries, you would have multiple listings for the same house, for example.

And this kind of also brings the quality up on the ads that we have, which kind of makes it that you can browse it.

And it's almost like a, what do you call it? A magazine with a design magazine, many of the images.

So that's also with the exclusivity, it is the seller who pays for the listing and thus likely makes it less volatile than when the broker is the one who's actually being the one who's publishing the ad and who has to put out that fee.

So hence we had a possibility to keep the volume ups and traffic as well.

We were actually to pitch that, probably one of the first to launch live showings instead of the physical viewings.

So that was a really great project that we pulled together in under two weeks to get live stream going.

Yeah. Now tell me about your role at Hemnet.

What do you actually do there? I work as the technical director.

So I work in the development management team and I'm say responsible then for saying that we're doing the right, not right things, but we are aligned in the technical strategy where we want to go.

And so I'm involved in various R&D projects and helping out and trying to be in all product teams and yeah, spreading my expertise and helping out.

Yeah. And I think when we'd spoken before, you'd mentioned at Hemnet, I forget the name you call it was like sort of the innovation engine.

There's a team that has to quickly spin up things. And I guess to use a term, they're fairly scrappy.

They don't have as much resources as say your primary platform team.

Can you tell me about some of the types of things that that group is responsible for?

Yeah. So maybe it was a bit misunderstanding of that.

That was just a normal product team. But we do try to have these smaller initiatives, task force, which we might call them sometimes focusing on.

One of these task force was actually building another worker sites that we might touch on here later.

But we're quite fast moving.

We're roughly a hundred people. So yeah, so that's the kind of dynamics where we're focused in product teams.

We have a platform team who's responsible for the platform infrastructure and underlying core APIs.

But otherwise we have product teams working with their products and verticals.

Got it. Okay. Let me take a step back now.

So let's walk into, you've been with Hemnet, how many years now? Three and a half.

And was Cloudflare in place before you got there or did you play some role in sort of incorporating what- Yeah.

So it was just switched, I think, when I started.

And that was, I remember that people were very excited about saying, because they had some bad, not bad experiences with the old solution, but it was a fresh breath of getting to use Cloudflare, which was like, it was sprung from the, like a developer initiative, which I think where Cloudflare is very strong as positioning yourselves very tightly into the developer community.

So a lot of familiarity with the tools around that.

And a lot of times we talk to customers and we refer to what we have as like our core services, sort of our bread and butter is everything around.

Like people come to us to provide first line defenses, security protection for things like DDoS, et cetera.

You guys are obviously doing that, but to kind of move into what we would love to speak about today actually is around workers.

Because I realize you guys are actually doing, I think it's been a little less than a year that you've been using workers.

Can you maybe step back and kind of walk us through, when did you first hear about workers and kind of like, maybe even like in your own words, what does Cloudflare workers do?

Oh, own words. I mean, it's also a lot of plumbing and that hassle, if I'm stepping back and comparing a bit now.

I mean, having used say Lambda and other tools in similar fashion of that.

Cloudflare Workers provides this, well, it's an abstraction above that making far more accessible and easier to get going from the start.

There are say serverless framework that you can put your Lambda stack up fairly quickly.

That one, it's still CloudFormation in the background that has to be generated in that way.

But workers just, yeah, not to say just works, but it is very, very approachable in that sense.

And you have all the benefits.

Of course, it's run, well, you had a V8 engine with workers with as the cold starts features and such.

And yeah, so I think then playing around with Lambda, using it on and off, it's a fresh breath of having a very like the most interface that you're using is the Wrangler CLI.

And that kind of gives you everything. So, yeah. So, it sounds like you guys are obviously hosted in AWS, which people are.

And serverless is not entirely new or foreign to you.

So, you guys had kind of dabbled a little bit in using some things like Lambda and so forth.

But what I'm getting from what you're saying is there's so many sort of interdependencies with Lambda.

So, even though you say serverless, there's still CloudFormations, all these things that kind of like hitch into in the background that you have to maintain and spin up and to really get up and running, it requires a little bit more effort than it seems on the surface.

Exactly. We use Terraform for basically everything. And if you introduce a serverless framework, you kind of let go a bit of that control of having it all declared, which can be fine.

We did that. We use serverless framework. We tested it. I think while we run it in an isolated account in AWS, just to like be sure that this should not be able to touch any other resources around there.

While Cloudflare workers, of course, you have also then fairly nice green ACL control, which you give access to, say Wrangler, what it can do.

So, you don't nuke one of your zones accidentally.

But it still feels much more – there's not so much to provision with the things around it.

Got it. Okay. Now, a lot of times people ask me, like, what exactly is Cloudflare Workers?

I mean, at its very essence, really, it's just very simple parsing logic where you have sort of an instance that sits out there and it makes decisions on business logic, so to speak, in terms of how to route traffic.

Can you talk to me a little bit more about how are you guys using workers?

What are sort of the things that it's interconnected to?

And maybe what is sort of the output result that you get from that?

Yeah. So, what you touched on this smaller team back for a bit then, we actually started using workers for this one product that we had.

To go a step back, what it actually is about is that we used to have foreign listings on Hemnet.

And those were removed two and a half years ago.

And that was a bit what I was also mentioning before, the quality of the ads.

If you end up with 15 ads on the same address with quite low quality of the content.

So, it was a decision to remove those, basically. And what the idea then was to bring this back, but in another flavor that we, instead of listing the individual listings properties, we have a site where we can provide the user's contact details to broker offices that operates in, say, Lisbon or Madrid.

So, that was the kind of product behind it.

And this is something that we wanted to build.

And the team that owns this product was also a fairly new team that had not been moving around in our main application, basically.

So, what we wanted to do was to try something new.

We would like to build this in another technology than we usually build.

We decided we wanted to try GatsbyJS for this. And we have also wanted to use Contentful, the headless CMS.

We've been using WordPress for a long time for our CMS, but really wanted to try something new in that.

And then it was kind of the hosting as well, because this was also a small team, new team.

And usually, we would do a new service or application that would be, or it would require the involvement of the platform team, who would be the ones who can basically set up the infrastructure or the required parts of it.

And then this, yeah, the idea of, say, using Cloud for Workers, we looked at also, well, we can possibly host this on statically, just S3 or similar.

But we wanted to give a go with workers and worker sites, then more specifically.

So, that's kind of how the idea with going with workers.

So, we went full in with that. And I think, yeah, the team who built it, they, I mean, they delivered this in record time, really.

And without the involvement of the platform team, usually, they did a, what do you call it, a post-flight checklist or pre -flight checklist that everything looked good and honored security-wise.

But otherwise, there was just a super quick way of get going.

And we used Wrangler's GitHub Actions. We also tried that. So, what we have now that it's regenerated on changes in Contentful.

So, we have a webhook going back to regenerate the site.

Got it. So, very handy in that sense. How do you see this?

So, I think you mentioned WordPress as sort of your core platform. And now you guys are sort of experimenting with Gatsby and these other hooks into that environment with Contentful.

Do you see this as potentially something growing that will eventually begin to sort of replace your core platform as you sort of see the value and how this is working?

Yeah. So, just for the record now, we're not on WordPress.

We're actually, we're mostly Ruby on Rails.

Okay. But we use WordPress for some content articles and such for publishing.

So, but it's just for the content. We don't host any WordPress sites.

Okay. But definitely going forward with, well, how we want to structure our application going forward.

We have done now also new projects in workers with Next.js, which I personally think feels like a good candidate for going forward with where we want to go next with the whole site.

So, definitely this is, it has been a good start to start poking in these areas on a very efficient and quick way.

So, definitely this could be the start. Okay. Yeah.

So, it sounds like workers in general, it sounds like it was a fairly easy, straightforward onboarding.

The team was able to quickly sort of put things into play with minimal impact to your main platform team and getting their involvement.

So, in terms of returns, I mean, you know, they were really, it saves a lot of time, it sounds like, and not having to take your main team off of sort of the core projects that they're doing to have to sort of tend to this new spin-up site that you're working from.

What are some of the other things that you guys have began to expand in your use of workers?

I know when we did the case study with you originally was really centered around using worker sites and KB, so to speak.

But what else has kind of unraveled since then? Are there some new projects that you guys are working on where you're beginning to find workers have some value?


So, I mentioned now that we did this one project, and this was actually, we call it our maintenance site.

And what that is, is basically a site that we can pull up in case we would have to make an unplanned maintenance or potentially some service disruption.

And what this site actually is then is a server-side rendered or statically generated site, which we rebuild every hour.

So, we have our whole inventory, simplified version.

With a simplified search, you can basically select by county and type of if you want a house or apartment with images.

So, with this, we rely on Cloudflare being alive and up.

Then we could start the site and start serving this content.

And that we can just put on our main domain basically and do temporary redirects and start serving that content.

And that's also where we would have information.

We have now decided to hook in our Twitter feed there.

So, in case we figure issue that. So, that was a really interesting project. And I mean, I think we ran into some limits, I think with Wrangler, but that was also a great case that we just reached out to our representatives.

And that was resolved within, I think, a week or something.

And that was really so- This was your Cloudflare rep you're talking about?

Yeah. So, big shout out to Danny and Cosmin and Chris for being helpful in that way.

So, that kind of also showed that it has to- What do you call it?

Yeah, we have had a really good connection in that sense and gotten good feedback and help fairly quickly.

And this was an issue or a bug that was just escalated. And so, that was great to see that.

But yeah, and this site, it's also, again, it's basically the site's Clocker worker sites, but we do some juggling with request in order to determine what basically error or HTTP status code to return as the response.

Because we discovered that we do want to respond with a 503 maintenance mode, but say Chrome and others, they won't load assets if it's a 503.

So, we are actually serving them assets as fine, but the other site says 503.

So, we had to do a bit of an inspection of that.

And then, we also have the possibility to, for example, control that only the apps will...

The iOS app will still work, so we can reduce, say, load if we have a database issue or similar.

And these are all sort of qualifiers that the worker is able to determine device type and so forth to really make an educated decision on what you want to respond to in terms of content that you're serving.

Exactly. So, that has... And it's, yeah, very nicely integrated and easily done.

And I played also last week with... You have an image resizing API as well.

How you can connect to the workers. And that's also very like a magic thing to do that you can resize images on the fly with, well, not many lines of code.

And, yeah, and it just magically works. So, that's something I'm very excited to try out more and see what that has to offer.

Yeah. You know, the question I always like to ask...

It's great to hear what you're doing and how you're using the worker to do these things.

So, the flip side to that question I always have is like, okay, if you didn't use a worker to do that, how would you do it otherwise?

What would you normally be doing if workers were in the equation? Like image resizing.

Anyone, yeah. So, image resizing, yeah. Well, I can tell what we do today.

We resize all images that we receive in the formats that we have.

And basically, we have to store them. So, if we want to introduce a new format, we would have to resize a lot of images.

We have a lot of images. Have you automated that process or is it a manual process of resizing these images?

It is automated, the whole process of resizing them.

It's many, many millions of images that we have.

So, that would save a lot of storage and also complexity and just keeping these images formats going.

Because if we want to introduce a new one, we have to find rescale the old ones.

Then you have to get rid of the old ones and replace them with the updated ones.

Yeah. So, image scaling on the fly, I think, yeah.

That's the way to do it now. This system we had was not built at the time when that was an option.

And I think you even have some entitlements that's automatically included with your plan for resizing, right?

So, you could really start testing it out with a subset of images if you needed to.

Yeah, I think so. I have to check with Cosmin and those guys what we can do.

Yeah. Great. Awesome. So, workers are still relatively young.

I say less than a year. So, to me, it's still young and you guys are still discovering more things to come.

Are there any things that, you know, on the horizon that you're looking forward to as perhaps what's next for you in terms of Cloudflare, whether that's workers or anything in general?


Right now, I think it is the image resizing that is on the horizon.

Let's see what we can land with that.

Otherwise, I think, yeah, we tried a bit with what is called Teams.

Oh, yeah. Cloudflare for Teams. Yeah, Cloudflare for Teams. I think we added it to one product now to just kick the tires a bit.

But otherwise, yeah, those are the things that we are currently looking at.

Great. Okay. But otherwise, we've used rate limiting for, I think, a bit over a year now.

It's also been super helpful, super easy to get that set up.

So, that has saved us also a lot. Okay. So, let's try to sort of wrap up.

So, for anyone that may be watching this and is like, yeah, I heard about Cloudflare.

It's like, yeah, I don't know if it's right for us or if we'd ever do it.

What would be your advice? What would you recommend? Like, if I were to say, hey, Christopher, would you mind speaking to...

I have someone that's interested in doing Cloudflare.

They're kind of on the fence. What would you say to them?

Why should they consider Cloudflare? Why?

Yeah. I think, to me, it's a lot about what Cloudflare stands for and taking also a stance in say making the Internet a better place.

But you've done a lot of initiatives in that sense.

So, that's like, it is a good cause for many things.

It is coming from the developer perspective and community. It has a lot of good reputation from there.

It's great that you can go in to read Hacker News and you see CTO John posting there.

So, that, to me, is a good sign that there's a good way and leadership probably in steering the direction on where Cloudflare is going.

Got it. And also, I think you mentioned earlier, the support's been great.

I know you called out Cosmin and those guys. They've always been very responsive to sort of help you guys out with any things you get stuck on.

Sounds like that's always been...

I mean, most people take it for granted, but I think it's nice to know that you have a responsive team that's there to support you as well.

Yeah. Exactly. It's sometimes difficult to know who you should email if you have to email three people.

But all of them are helpful. So, yeah. Excellent. All right, let me check the queue and see if we have any questions that have come through here.

No, I don't see any questions on the queue right now. So, I think we've just got a couple more minutes.

Any closing thoughts you wanted to sort of wrap up the session with today?

How was the session for you? Was it great? I mean, did you...

This is the last thing that I'm doing before heading out of vacation.

So, I'm just going to close the lid now and run out. That's right. Probably like 5.

Is it 5.30 your time now? Yeah, exactly. So, it was a good way to round up before heading out to vacation.

Well, Christopher, thanks so much for the time today.

Thanks for sharing what you guys are doing with Cloudflare, what you're doing with workers.

I hope our audience today has found this session informative.

And if we don't chat with you before, have a great vacation. Yeah, thanks.

All right. Thanks, Christopher. Bye.