Zoran Jambor makes CSS feel like part craft, part publishing habit, and part long game. He talks about early websites, the steady discipline behind CSS Weekly, the overlap between development and marketing, and the technical evolution that still keeps him excited. It is a thoughtful conversation about staying curious for a very long time without getting stuck in one version of yourself.
A conversation with Zoran Jambor | 1h 01m
Zoran Jambor starts with an origin story that feels very web in the best sense. He talks about building sites for a skateboard club and a band, working through the messy era of tables, PHP stacks, and early tooling, and gradually realizing that front-end work was the part that truly clicked. That beginning matters because it frames the rest of the interview around making real things for real communities, not around following some polished career map that only made sense in hindsight.
From there, the conversation shifts naturally into CSS Weekly and the habits required to keep something like that alive for more than a decade. Zoran does not treat publishing as a growth trick. He treats it as a way to learn better, curate better, and keep his own standards sharp. The restraint of the newsletter is part of the appeal. Instead of trying to include everything, he focuses on selecting the strongest material and showing up consistently enough that readers learn to trust the filter.
A nice surprise in the middle of the interview is how often marketing and communication come up. Zoran makes a strong case that developers benefit from understanding how ideas are positioned, packaged, and explained. That is one reason video matters to him as well. Even if writing is still his home base, speaking clearly on camera or in remote settings is a real professional skill, and he treats it as something worth practicing instead of avoiding.
The technical side lands especially well once the discussion returns to CSS itself. Zoran sounds energized by how much more expressive the language has become, whether you are thinking about Flexbox, Grid, or newer features like `:has()`. His enthusiasm never reads as empty cheerleading because it comes with memory. He remembers how awkward older layout techniques were, so the progress has real weight. By the end, the interview feels less like a victory lap and more like a snapshot of someone who has built a durable lane for himself while still staying open to where the next version of that lane might lead.
The automatically generated captions have been organized by speaker, lightly edited for clarity, and broken into paragraphs for readability. Names and wording may still contain errors.
Hi everybody. Today I'm excited to chat with Zoran Jambor, someone whose writings have been gracing my inbox for over 10 years. He is the writer of the very popular and influential newsletter CSS Weekly, so in this chat we talk about how he got started, what motivates him to keep writing on such a consistent basis, and a whole lot more. This is going to be a really fun chat, so stick around. Zoran, great to chat with you. I've been following your content across so many mediums for ages, so it's fantastic to kind of meet you in person and talk in real time.
So the question I always like to start with is: how did you get started?
Yeah, hi. Thank you so much for having me. I guess the way to get started is to just start doing stuff, and that's what I did. We had a skateboard club and a band, and they needed websites, so I got into things, started exploring, and started working with HTML and CSS. Things took off from there. I found those things very interesting, got really into it, and yeah, it eventually became my profession.
Did you focus more on the design side of things or the programming side of things?
Yeah, in the beginning I started as a designer, but then I got into HTML and CSS and PHP as well, and I kind of found myself in the front-end section. That's where I live.
It's funny, because what you're mentioning about how you got startedâbeing in a band or into skateboardingâis exactly how at least five other designers I think are extremely talented and very good got started too. There's something about the way your brain operates at that frequency, at that level. And skateboarding culture has always been about really good design as well, whether it's the design of the merchandise or the skateboard itself. The way you personalized your skateboard was, in many ways, like a real-life version of a MySpace profile back in the day, where your personality was expressed through it. And if you were a designer, you really had an opportunity.
You had a pretty large canvas that people could see from both sides and at various opportunities, to kind of be like, this is who I am and here's how I visually represent myself. That's actually really nice to see.
Yeah, this makes a lot of sense, because those tie together, all creative activities. Once you get into one, it naturally flows from one to another. Exactly. The thought process is similar. How it gets output at the end, of course, variesâone is an actual physical medium, the other is in digital formâbut that's all just part of the same water flowing.
Cool. How old were you when you started doing your first website and your first designs?
Oh, that's a good question. I don't really know. I guess it was probably 15 years ago, maybe when I was 25 or something like that. Maybe I'm off here, but something like that, I think. Yeah, it was exactly at the time a discussion was happening in our space, in web development, about whether we should use tables or CSS for layout. At that point I was just getting into it, and somehow CSS made more sense than tables for layout, which was, of course, the correct solution.
Yeah, which is actually really interesting, because tables were the easiest way back then to make this work. I don't remember if you did some of these things, but to create rounded corners, for example, you basically created a table that was almost like a 3x3 grid, and you had tiny angled images that you put in the corners to make it have that nice rounded shape. Just getting the border-radius property in CSS was revolutionary. Half the time I'd be like, you know what, I see a small one-pixel gap between the edge of the GIF and the table itself, and you're like, is my GIF not exported properly?
Is there some anti-aliasing going on? Or am I setting the table with zero pixels? I'd just squish it as much as I could to make it work. It's silly when we think about what things were like 10 or 20 years ago. CSS and web development have come really far, and the problems we had back in the day are ridiculous from this point of view. Even transparent PNGs were a challenge. I remember those. And the funny thing is, the demographic of this podcast is people around our age who have actually been there doing exactly this. They're going to be like, oh, I remember this exactly.
All the new people watching are like, what, what's a table? You mean you used tables for layout? What in the world? If they're even writing code in the first place, they're all using low-code and no-code tools like Webflow, which are fantastic in many ways. Good for them that they don't have to learn some of the things we had to learn to get where we are. Which, I guess, also means I never had to learn assembly or machine code, which a lot of people back then had to learn to get into programming. I think it's just the natural evolution of how things go.
Did you ever use any what-you-see-is-what-you-get design tools for building your website initially, or was it always manual?
I think I started with Dreamweaver. Nice. I'm not sure which version it was, but it was really helpful, if I remember correctly. You could just drag and drop things inside. But I don't think it was working properly, so I always had to go into code, and eventually you realize this is not working at all like it should be. So you jump into code.
You know, I've still admitted this a few times in the past, but I still use Dreamweaver even today. I started my blog in 1988, and I've kept editing it in there since then. Of course, back then there was no CMS, there was no WordPress or anything like that. It was really all Apache and server-side includes for basic templating. Because what I do is so content-heavy, I just need a service that's like a word editor: type in text, add images, and FTP it up to a location.
I do see, though, that progressively every couple of years the quality gets worse and worse, because Dreamweaver right now doesn't support CSS custom properties, for example. So everything is in Times New Roman, because even using custom properties for everything, it's not working. There's going to come a point where I'm going to have to move to at least a modern decade. I'm actually a century behind if you look at it from like 1900, 19, the 20th century, to the 21st century. But no, Dreamweaver is actually great.
I started off with Netscape Composer, which came free with the Netscape browser, and then switched to FrontPage Express, which came free with Internet Explorer, and then went from there. But it's really cool starting from that tool and realizing the quality of what it's creating isn't exactly what I would need, because there are limitations to what tools can do in the abstract way of a programming language like HTML. Still, it's good to have those tools, because I think they help you get started a little bit easier. At least that's my perspective. Even with JavaScript, I started with jQuery, because JavaScript back in the day was also incredibly challenging.
I remember writing an HTTP request, like an Ajax request, that was 20 or 30 lines of code. It was ridiculous. Then jQuery came along and it was just one line, and it did what it needed to do, and you didn't have to worry about Internet Explorer versus modern browsers or whatever. Tools like that can help you get into things, but once you start seeing the limitations, you really need to dig into the layer below, into actual code. Did you ever stop on the PHP bandwagon for a bit as well, or were you completely avoiding that?
Yeah, I did. I'm not sure at what point that was. I think after design, I wanted to go into PHP, so I started digging into that area and then eventually moved to front end. But another challenging thing was that I was on Windows back in the day, and just setting up a server for PHP so I could work was so frustrating. Then tools like XAMPP and WAMP came along, I think those are the names, and it became okay, this isn't an issue anymore.
WAMP was like the Windows Apache MySQL PHP stack. You'd install a gigantic installer, restart your machine, and then magically things worked. I have no idea how it worked, but it worked. Looking at the work you do, you run CSS Weekly, a really popular newsletter. You also write a lot about marketing and content creation and that world as well. What do you spend most of your time on, and what are you most passionate about when it comes to those topics?
Yeah, I used to do a lot more different things before, and now I'm almost exclusively focused on CSSâCSS Weekly, actually. That's my current focus, but I'm always interested in other things too. It comes and goes, and CSS Weekly is my priority right now. But I'm also always reading about marketing and thinking about that stuff. I think it's very interesting if you have the ability to go into different areas and different subjects, because oftentimes you can transfer knowledge from one area to another. At least with marketing, if you're good at it's going to help you be a better developer because it helps you market yourself better to potential employers.
Or if you have a blog or newsletter like I do, it helps with that too. So all those things can tie nicely together.
I agree. The skills are very much intertwined, especially when it comes to getting people to notice something you're building today, when there's so much quality content out there. How do you stand out? Do you ever feel the tension that on one hand you've been doing your Weekly for quite some time, but on the other hand there's some really great marketing thing you want to share and the audience you have isn't going to be interested in it, and you still need to share it somehow? Do you ever feel that tension, and how do you work through it?
Well, I actually don't think about that a lot. I just share what I want to share, and if there's an audience for that, great. If not, well, maybe people come little by little. Maybe the audience grows over time as I'm doing stuff. I guess it's about me wanting to do things, and then if it resonates with people, great. If not, I'm still learning something from putting the content out there, even if nobody reads it. Then, from the CSS Weekly standpoint, I was working on a newsletter that's curated content, and now, about a year ago or a bit more, I started doing a YouTube channel with original content.
Even with the same audience, people who care about CSS, getting them to think of me not just as a curator but also as a creator is more challenging than I thought it would be.
Yeah, no, I completely hear you. When I switched from doing articles in text form to also doing videos, it was a huge shift. For various reasons, people like the videos a lot more than I like the articles. I'm like, no, I like writing. That's what I really care about. Read the content more, watch less of the videos. It's always tricky. The way I describe it is like acrobats in the circus jumping from one ledge to another. If I describe what you're talking about right now, CSS is the top of the funnel. That's what people care about. You have articles, you have videos, and so on.
Then sometimes you have ideas like, oh, I want to talk about marketing, or how to be happier in your career and more fulfilled. That doesn't fit under the CSS bucket. So you create one more rung over there and then you wonder: do I have people jump to that rung on a one-off basis, or do I reorient everything I'm doing around that rung, where it's all about Zoran instead of just CSS? Then a subset of that can be CSS, a little marketing, a little fulfillment, and so on.
I've talked to a lot of content creators who have this struggle, especially if they've been doing content creation for a very long time, because as people we evolve as well. What I was doing 20 years ago was just sitting around playing with code, thinking, I can't wait to share how I'm doing this. That's very different from now, where my day job is product management. I deal with that kind of thing 90% of the time, and when I mentor and teach people it's often on exactly that topic. But because I've carried over that older world from so many years ago, I still spend time programming and explaining it. It's different, though.
I almost feel like I'm working at half efficiency, because half my brain is doing this other stuff and the other half is talking about this. I used to be able to share everything I was doing, so 100% of what I did, I shared. Now it's all bifurcated, and that's something I always run into. I'm curious how you navigate that, or whether you worry about it at all. I get the instinct to say, I'm going to work on CSS, on CSS Weekly, and if I have timeâor a need to put some other content out thereâthen I do it. If anybody reads it, great.
If it's not related to CSS, that's okay too. But I think your other content is fantastic, by the way. Somewhere in the back of my mind, I want you to do more of that. I'd like more people to read it. Even working on one thing can be exhausting. Doing it weekly, on clockwork, takes discipline and effort. And I do want to get back to this point, because teaching and explaining things to people is a very different skill, and a great one as well. I'm always happy when people share their knowledge. What made you start wanting to educate people on CSS?
Well, first, my motivation is intrinsic. I wanted to get better at presenting and explaining things, and when you explain things, you learn them better yourself. That was the first main motivation. It also ties into what I was already doing before: helping people stay up to date with CSS. That's why I started YouTube in that particular area of content. Whenever I do something, I try to find something that's going to motivate me intrinsically and not extrinsically. I'm not looking for views. I'm looking at what I can get out of it in terms of how I can grow and what I can learn.
Those are the most important things I get either from starting a newsletter or a YouTube channel like that. So yeah, that's where I come from.
At what point did you realize you were on to something big with the newsletter? I checked out issue number one, and the format was already very similar in some ways. You had a lot of curated content, and it gradually increased into more of your own content where you shared more of your tips and tricks. But for the most part, you had a winning formula at the beginning, and you've continued with that same formula all the way through to now. That's actually very rare to see. So how did you know you had it figured out?
Well, the point where I knew was when Leo shared my newsletter, I think in issue one or two, and people started coming in. I take a lot of time to go through as much CSS-related content as possible, and I only include the best stuff in the newsletter. You're always going to see seven links in the newsletter and no more than that, because I want people to feel like, okay, if I read those articles this week, or watch those videos, whatever is in the newsletter, then I'm up to date and I don't have to worry about following dozens of other sources on social media or RSS or whatever.
And I was lucky that I started before a lot of others. There was HTML 5 Weekly, JavaScript Weekly, I think Web Design Weekly, and somewhere around that time I started mine. So it was still all fresh. Starting a newsletter right now is very saturated, and it's probably much more difficult to get into, especially in the format I have where I just share other people's work. But back in the day I think that was quite valuable, and I just rode that wave until now. People still find it valuable. People still care about it, so it seems to be working still.
No, that's fantastic. How do you come up with the topics you want to focus a particular week's content on?
Around that? I don't. I just take the fresh stuff, whatever was published in the last week or so. If it's good enough, it goes into the newsletter. I never create a specific-topic newsletter like, this is going to be about accessibility, or this is going to be about CSS Grid, or whatever. I just share the latest content people created. And now that I mentioned accessibility, I always try to include at least one accessibility-related article in the newsletter because I think that's a really important topic that people probably overlook way too often.
And do you get feedback from individuals saying, like, oh, can you cover this particular topic? Or have you found certain topics just resonate more with the audience than others?
You mean, for the content I'm creating? Yeah, exactly. Oh, yeah. I started getting that on YouTube, in the comments, around things related to the video I just did, like, oh, can you talk a little bit more about images, or something like that. So the more the audience watches my videos, the more feedback I get in that direction. It started happening, yeah.
As part of posting weekly, how did you come up with the cadence of doing it weekly as opposed to monthly, or every couple of days, or just randomly?
I think the newsletters that inspired me were also weekly, like JavaScript Weekly and HTML 5 Weekly. It makes a lot of sense because so much is happening in web development that doing it less often would maybe be too little, and doing it more often would just be overwhelming for people. So weekly makes sense for me. And, from my perspective, having weekly in the name forces me to do it every week, because if it were just CSS content then I wouldn't have that specific need. Every week there needs to be a newsletter, because it's in the name.
So it kind of forces you to do the stuff when you lose motivation, or when life gets in the way or something like that.
On that point, when life gets in the way, you also balance doing all this with a professional day job as well. So how do you find the time to balance it?
Yeah, I'm actually working full-time with CSS Weekly now, for a year or something like that. Before that it was quite challenging, but I had a very good employer who was willing to give me a portion of company time, basically, to work on the newsletter. That was really nice to have. Still, it got to a point where it became overwhelming, so I had to decide: am I going to focus on my career and put the newsletter aside, whether it grows or not, or am I going to focus on the newsletter and see if I can make a living out of it?
It's working out for now, and I've been really happy with that. That's always the biggest challenge content creators bring up. I think the power law applies in almost all industries, but especially in content creation. If you want to shift from what you're doing right now to something that can sustain a basic level of living, that's a huge jump. When you look at how many content creators are actually able to make that leap successfully, the fact that you were able to make it is quite impressive. Well, yeah.
I think the challenge is that, no matter how you put it, if you're making this much from the newsletter and this much from your day job, if you quit your day job the newsletter isn't going to suddenly grow enough to cover that difference immediately. So you take a step back, and if it works out, fine. If not, you can always get a new job. Luckily, we live in an industry where developers are in demand. I also think people underestimate how much work and effort content creation takes.
On one hand it's like, oh, if I just had eight more hours a day available to me, I'd be able to create more content. It doesn't exactly work that way, because content creation is a creative process. It's hard to predict when your brain is going to be like, oh, I'm inspired to do this, and having more time doesn't mean you'll be eight times more productive. It might be half as productive. Some of the inspiration and little forcing functions you get from doing something on the side, or from it being part of your employer's work, can actually help.
You think, oh, that jogged an interesting idea, I'm going to jot that down and write about it later. Sometimes having less time, and the stress of that, can inspire you more. Yeah, okay, that makes sense. I try to view inspiration from Seth Godin's perspective, going back to marketing. He teaches that you don't wait for inspiration. If you're a professional, you open the computer and start doing the work, and inspiration is going to come, or not, but you do the work. That's the approach I take. But like you mentioned, there are challenges with that too.
For me, it's very difficult, at least for now, to plan content precisely, because sometimes I dig into a topic and think, this is going to be the next video I record. Then I spend five hours researching it and learning about it, and I realize there isn't enough meat there. It's not good enough for a video. So then the timeline shifts, the video isn't there, and I dig into a different topic. But like you say, it's creative work. That's part of the job. You never know if it's going to work or not, but you have to figure it out.
Yeah, it's always a fun part. I do enjoy the ambiguity around content creation. Every single day is going to be very different. One thing I often find with content creators is that there's always this pressure to create content that's almost perfect, which in many cases goes against being able to publish and get content out in a timely manner. How do you navigate that?
I had a very big challenge with that, and I think it was two years ago, on my personal blog, I gave myself a challenge: I'm going to publish something every day. That forces you to stop caring so much about whether it's good enough or not. Sometimes you realize that, when you're talking about technical stuff, you can't present it this way and you have to switch. But for me, I'm not happy with any of my videos that I've created until now. Every one I look at, I'm like, oh, this is horrible. And English is not my first language, so I also have challenges with that.
I re-record different parts plenty of times, and it takes a lot of time to get it into a decent state so I can publish it. It's never perfect, and it's never going to be perfect, but like you said, that's the challenge content creators face. Eventually you have to say, okay, this is good enough now, and I'm just going to put it out there. The beautiful thing is that people don't really care about those little imperfections that you notice.
Badly, exactly right, because on one hand they are wanting to learn something. When they meet you in person and say, I want some help with this, you just explain it. There's no editing. There's no going back and saying, let me adjust the background a bit, or let me tweak the wording and re-edit it. It's going to be exactly the way it's going to be in real life. And there's an expectation that this is just an individual sharing his time and making this work. I think people recognize that and appreciate it a lot more. Oftentimes they're probably not even focusing on those little imperfections.
They're focused on, oh, I'm trying to get this code working. That's exactly what I care about. They're probably in their own mind, with their own narrative, reinterpreting what you're saying anyway, so they never notice exactly what you said there. That's very much the case. So what got you started creating videos? Because video is a fairly new thing for you. You hadn't done videos for a long time, and then you started maybe a year or so ago.
I already mentioned it: I wanted to get better at presenting and teaching, and I find video to be a very interesting medium. I wanted to learn more about that myself, and that's why I got into video. I probably like reading articles more than watching videos, which is kind of interesting, but from the perspective of trying to learn something and get better as a professional, getting better at video is probably more important. It's useful not just for YouTube but in real life too, like presenting at conferences or something like that.
That's something I'd like to try, and I'd like to see if I can become better at it than I currently am. This is all part of that effort. And with remote work becoming more and more popular, there's also a lot of value in being able to speak to a screen, or to actually speak to you right now, because that doesn't always come naturally.
Yep, no, I completely agree with you. One of the things that got me interested in video is that so much of your time is spent communicating. This was before COVID, but even then, so much time was spent communicating. Unless you watch yourself record and then watch yourself afterward, you don't realize, oh my gosh, is this how I sound when I'm explaining a concept? The little things you start fixing about yourself, like you mentioned, also pay dividends in the real world or in any activity you do.
A large part of our day-to-day jobs is taking complicated ideas, simplifying them, and adjusting the level of detail based on the audience we're speaking to. If we're speaking to someone very technical, we can go very deep. If we're speaking at a very high level, we can communicate in a way that naturally resonates with what they care about. That's a skill that takes practice, and I think a lot of people don't often get the opportunity to do that. Recording videos is one of the best ways, because at that point you're watching yourself navigate the exact same thing.
You get to learn from your own mistakes, improve, and ultimately become more natural at it. So I always like to ask this question: what tools do you use to record your videos?
I'm using ScreenFlow, so I use it for recording and for editing.
Yeah, I use ScreenFlow as well, and not too many people know about it. Everyone uses Camtasia or the big tool in that space, but ScreenFlow is fantastic. I think the best thing about it is really the performance. When I'm editing, or exporting something, it happens in a few minutes. The quality is as good as a 45-minute export from Camtasia to MP4, and little things like that are what make video editing painful in some ways. Tools like ScreenFlow are fantastic at solving that.
Yeah, I looked into different tools as well, like DaVinci Resolve, which people were recommending. There are also tools like Adobe Premiere and things like that, but those are really expensive, at least from my perspective. ScreenFlow makes a lot of sense. It's very simple, and I don't even want a lot of complicated effects or anything like that. I want people to focus on the things I'm saying and the screen I'm showing, not on flashy editing. So it just makes a lot of sense.
That touches on something I noted down earlier to come back to, which is that your interest was in design and then you started learning CSS and things like that. But in reality, what I found with many people is that learning CSS or learning programming isn't what they really care about. What they really care about is getting their design out the door. They have an idea they want to share. In this case, like a newsletter, they have ideas they want to share, and they want to get it out the door.
So the tools and the ways of getting there are just interruptions I need to get through, things I need to understand because if I don't understand those tools, I can't get my ideas out. And your explanation just now, about video and ScreenFlow and editing, reminds me that a lot of people tell me I must use Adobe Premiere because it's the best tool for it. And I'm like, why? Do these tools do a good enough job?
Yes, I can probably create nicer animations or use different filters, but any time I spend doing that is less time I can spend doing what I really care about, which is creating content and sharing my ideas with the world. So what I'm really looking for is the fastest time to market, to use the business term. I have an idea. What's the fastest way for me to get there? I don't care what the tools are. I'm using Dreamweaver, and I'm not proud that I'm using Dreamweaver even 20 years after I started, but it gets the job done.
And no one who consumes the content will ever care how the HTML was created. If the Lighthouse score is good, great. No one cares how it was built. I think that often gets lost with a lot of content creators. I'm talking to them and asking, what did you create today? What's going on? And they're like, oh, I'm fiddling with this thing over here. And I'm like, well, if you enjoy fiddling with something, by all means go for it. It's great to learn the craft and the skills you need to learn.
But if your goal is to share something with the world and you're doing this without really enjoying it, then you should probably revisit why you're doing some of this.
Yeah, I agree. I have exactly the same mindset. One example is that I'm using WordPress for my blog. Even the CSS Weekly site is on a small WordPress setup, because it doesn't matter what's behind it. As long as I can create what I want as quickly as possible, it's great. But a lot of developers I talk to say, I want to create a blog, I want to publish articles or something like that, and then they start by deciding they're going to build a custom blog on whatever platform is currently popular and rewrite everything.
Then they do that, have a big fancy launch, publish one or two articles, and that's it for this year or next year. Then a new framework comes along, and they say, I'm going to learn that, so they rewrite the blog from scratch and publish one article again. Like you say, it's great if you want to learn the new platform, but that has nothing to do with content creation.
Exactly. You wrote about this in Frontend Newsletter as wellâhow our brain processes success and satisfaction in some ways. People often say you shouldn't pre-announce that you did something great, because once you do that your brain is like, okay, great, I'm done. I'm not going to do any more. I've already done it. And I find this is often a similar case with something like Astro, a framework I love. It's really popular. It has a nice blogging static-site-generator setup and all these things. But if my goal is to learn Astro and publish on it, then I'm like, oh great, my first blog post is out on Astro. Too many things get conflated.
I learned Astro, I got it out the door, successful. My brain is like, that's it, you're done, go figure out something else to do. And I'm like, that's not the goal here. The goal should be, how do I keep motivating myself to create content? So in your case, how do you keep motivating yourself despite so many cool things happening around the world?
I guess it's my job. One great motivation for the newsletter is when you have a sponsor. Even if you get, whatever, maybe 20 bucks from a sponsor at the beginning, you feel pressure. You've sold something and you need to deliver on it, so it has to go out. That's really helpful for motivation. But it also has to come from inside. It has to be something that isn't external. I want to learn something. I want to stay up to date with CSS. So with the newsletter, I'm going to read those articles anyway. Putting them together for other people to read is just a bonus layer on top of that.
And I think the sponsor part is always key, because when people ask what your way is of making sure you can keep doing this, you need something real. You need someone who's depending on what you're doing. When you're writing content, you can see visitors and numbers and all these things, but it's all abstract. It's not an actual human being you can see depending on you. Early on, no one's going to be like, hey Z, where's your newsletter? I mean, now you're popular enough that if it doesn't happen one week, people are going to ask what's going on. But early on, that's not the case.
A sponsor, though, will ask, because they gave you something and they expect something in return. In your mind, that creates pressure and gets your brain into gear. You don't want to disappoint someone who might be a long-term business contact you want to keep a good relationship with. And I think people don't realize you can artificially create that for yourself. You can make a bet with a friend that you're going to publish every week, or whatever your cadence is, and if you don't do it you're going to pay them some symbolic amount, like 10 bucks.
That creates a lot of pressure, an artificial version of the pressure you get from a sponsor, and it's going to help you with motivation.
Oh, that's a fantastic idea. I should probably try some of that, because I'm pretty sure your friends and my friends are going to be a lot less forgiving if you don't follow through. In nice ways, of courseâwhether it's making fun of you or prodding you in the ways they know will motivate you, because they know how you process information. That's a great idea. But again, it has to come from the person. If that person doesn't want the motivation, nothing you create is going to make them do it.
If you don't have this need to put something out there, to create content or write articles or whatever, then nothing's going to work. It is a luxury, though. I often think about all the people out there who do a job just because they have to, and it's not what they're passionate about. We lucked out in so many ways by being in an industry where we have the right skills, the motivation, and the mindset to say, this is what I enjoy doing. Here's how I see a path to taking what I enjoy, making it beneficial for a lot of people, and then indirectly figuring out ways to monetize it.
That's actually quite a thing. It's an incredible privilege to be in this position. Everywhere you look, if you're not in web development, it's just people being frustrated with their jobs. I have to go to work, I have to do this, I have to do that. A lot of people just aren't passionate about what they need to do to make ends meet. Most of the developers I know are really passionate about web development, and they'd probably do it even if they weren't paid for it, like I would. So let's switch gears a bit and go back to CSS. You've seen CSS change quite a lot.
We started off talking about CSS back when tables were the norm for layout, and then cross-browser issues made divs and all that stuff painful for a very long time. In the last five or six years, things seem to have gotten a rocket ship strapped to them and become extremely good, from layouts to animation techniques and so on. What are some of the most interesting things you've seen changing in CSS that you were personally excited about?
I think I was most excited about the: has pseudo-class as a parent selector. We've been asking for that for God knows how long, and it was always, that's not possible to do in browser engines. Now they figured it out. That one really sticks with me. But what I really like is that there are so many things happening, and they're not flashy things like, oh, we got border radius or something like that. They're really tools that help you build better websites or create layouts more easily, like CSS Grid.
It's incredible where CSS is going, and more and more it actually looks like a programming language, because with those new properties you really have to dig in to understand exactly what's happening and how to create exactly what you want. So that's really exciting. It also puts a lot of pressure on developers to stay up to date with everything that's happening, and that's pretty much impossible. I think the best way for people to stay up to date, other than reading my newsletter, is of course to build things.
When you run into a particular challenge, you're going to remember that you read something about it, then dig into it, use it, and learn the concept you needed. That's what I used to do when I had a front-end developer job. Whenever I faced a CSS challenge, I'd remember, okay, I read something about this concept, so I'm going to try to implement that right now. I wouldn't necessarily dig into a certain concept or property the moment I stumbled upon it. But when I needed it, I knew there was something there, so I'd dig into it then and see if it could help me solve my problem.
Yeah, and I think another nice thing that's happened, and I think it's really cool, is that the speed at which features are introduced and adopted by all the major browsers has gotten really good. Historically, Internet Explorer was always the one that took the longest time, and I was a product manager on that team at Microsoft, so I fully recognize the challenges there from seeing it firsthand. But now most browsers are on Chromium, Firefox, or Safari engines, and that makes it a little easier. There's a certain level of alignment between those browser vendors, and they want to make these things happen because it benefits their audience almost immediately.
And the funny thing about a lot of CSS techniques is that it's almost like we all end up coordinated without coordinating, or at least like we all have some indirect connection. Like, this week we're all going to focus on the same thing. You wrote about OKLCH in a recent article. A few hours before your article came out, I sent one about OKLCH to my newsletter subscribers, and then Smashing Magazine did one a couple of days later. None of us coordinated on it. It just so happened that we all decided to write about color and OKLCH as a color format at exactly the same time.
Things like border radius were cool, but these newer features are huge, practical, major changes in how we end up doing stuff. CSS has gone so far in the last couple of years, and it's still happening. We're getting fantastic new features almost every week, sometimes it feels like every single week. Speaking of it becoming more of a programming language, have you played with Houdini? It's very interesting. It combines things like web workers and JavaScript in a CSS-oriented world to create zigzaggy lines, blobs, and other shapes.
That's the next generation of where CSS goes, because you always had canvas, which was very JavaScript-heavy and wasn't resolution-independent, so you had to handle retina scaling and all sorts of other details. Then you had SVGs, which are fantastic, but they can also be clunky to work with. You're still doing a lot with JavaScript and the DOM. Houdini feels like an in-between world where, in CSS, I can write a normal selector, set something like background color, and instead of specifying a plain color, I can pass in this little JavaScript-driven thing that does its own magic. Then you get nice blobs and various shapes. I'm like, wow, what is this?
It's like we got one more layer of the platform to fully understand. We simplify it and say HTML, CSS, JavaScript, great, but there are actually more layers there: WebAssembly, WebGL, canvas, and now this whole new world. It's almost like Duplo or Legos, this combination of parts you can mix and match to make something work, and that makes the whole space look really exciting. Yeah, absolutely. Houdini is definitely on my list to dig into. At some point I will jump into it and create something around it, but there is just too much stuff happening and too little time for everything. Exactly, exactly.
When Grid and Flexbox came out, how big of a change was that for your world?
Oh, massive. I don't even remember, until I think about it, how challenging it was to create a complicated layout just using floats. From this perspective, that's ridiculous. Those tools really help you do things faster and more reliably. So yes, the things you mentionedâFlexbox and Gridâare probably the biggest features that came to CSS and made the language jump forward.
Yeah, yeah, I mean, you're probably one of the world's top CSS experts. I've seen your content and followed you for some time. When you're creating a layout or designing something, how do you do it? I've spoken to other people who've done CSS for a very long time, and they all say the same thing: they bring up the dev tools and type in random stuff to see if it works. Does that reflect how you do things as well, or are you more precise in how you try things out?
No, oftentimes it looks exactly like that, or at least it used to. Now I dig into every concept specifically and learn as much as I can about it, so I understand better what's happening and why I'm doing certain things. But a little while ago, when I wasn't focusing so much on learning those concepts and tools, it was always, okay, I'm going to open developer tools and play around until I get exactly the result I want. You do that a couple of times and then realize, okay, what am I doing here, and why is this taking so long?
So I dig into it and understand exactly what align-items and justify-items mean, for example, and why I'm always confusing those. You try to do things, and if it works out, great. But once you repeat certain things more often and realize you don't understand what's happening behind the scenes, or that you're losing a lot of time just trying to make something work, then you dig into it. You read about it a little more and realize, okay, this is what I was missing all the time, and this is how I create exactly what I want. I had a similar experience years ago when I was starting out.
I was playing around with values and trying different things, then I picked up some book about CSSâI don't remember what it wasâand it took my knowledge to the next level, because I was no longer just playing with things. I was actually understanding why things were happening. But I think you do have to play with things before you can really think about the concepts behind them, because it's too challenging to just pick up a technical specification about CSS Grid if you haven't played around with it enough to see what's possible.
Yeah, and I also wonder how much the language itself makes this easier. If you learn another language, like Java or C, you never just type something randomly and try it out. Partly that's because the tool will tell you very quicklyâyour IDE will be like, this is wrong, you're missing some syntax. The other part is that, depending on the complexity of your app, there's a compilation step that takes 3, 4, or 5 seconds. That doesn't sound long, but if you're in the flow, that's a lifetime. So you don't get the satisfaction of trying something quickly.
In your mind you're like, okay, I don't want to waste 5 seconds, so let me make sure what I'm typing actually makes sense. With CSS, though, you don't get those seat belts. You have no idea if what you're typing is valid or invalid. There aren't many warnings in Chrome DevTools. The line just gets ignored, or maybe you get a warning, but 90% of the time it just disappears. You're like, wait, I typed this gigantic string and it just vanished. What's going on here? So you keep throwing things at the wall because there's no cost difference between trying something and finding out it failed.
Eventually one of the million things you try is bound to work, and then you copy it. I'm going to try to remember it, and I'm going to forget it anyway. Even now, when I have to define a grid, there are like 18 different ways to do it. You can use template areas, define specific columns and rows separately, or use that weird syntax that's basically like drawing little ASCII text for your rows and columns. I'm like, I have no idea what's going on. I'm just going to go to MDN, copy and paste something, modify it the best I can, and then forget it.
But it's okay, because at least I know what to search for. That's one of the things I always loved and hated about CSS at the same time. It's just so difficult in so many ways.
Yeah, that makes a lot of sense and it's very close to my experience as well. And now that you mention it, the whole build-step process usually has a lot of delay and frustration. At least it did for me. If you create something and have to wait even two seconds for it to compile so you can test it in the browser, that's a lot of time you're losing over the course of a day if you're just trying things and refreshing all the time. With CSS it's entirely different because you see results immediately. You're not thinking about how much time you're wasting just playing around with it.
Instead of spending 50 minutes reading how it works so I can create it nowâand maybe read it one more time, probably two more times, to remember it exactlyâI'm still saving myself a lot of time and frustration if I learn about it properly.
Yeah, that's one of the things I really enjoy about watching this industry. You've probably seen it too after being in this area so long. In the early days of the web and the languages we came up with, it felt like there was a heavy influence from traditional programming-language experts trying to impose how web technology should evolve. The standards bodies did a good job keeping things in check, but there was still a strong influence from the Java community and the broader managed-code world.
What we're seeing now, though, is that web developersâprobably the largest single group of developers at this point, something like 19 or 20 million people identifying as JavaScript, HTML, and CSS developersâare influencing more traditional languages. They're pushing ideas like, yeah, this is how things should be. Why do we still have this long compilation step? Why can't things work more like the web? We talked about PHP earlier, and one thing I always loved about PHP was that once you got everything set up, you made a change, saved it, and it was live. There wasn't really a compilation step in the old days.
Compilation came later in later versions of PHP, but it definitely wasn't the default for a long time. Memory wasn't great, performance wasn't great, but hey, you were doing it on the server and the end user couldn't see your password or your MySQL connection string. The funny thing is, back then it almost felt like the only reason people used PHP was so someone couldn't just go to View Source and see the username and password you were using to access all these things. That part was figured out, and it meant normal people probably weren't going to see all your server-side details. But then the downside was deployment.
It could take minutes, maybe even 10 minutes, to deploy something to a major server or cloud function on AWS, GCP, or Azure. Now we're seeing services like Vercel or even AWS Lambda where, yes, your code runs on a server, but within one second it's just there. And if you look back at the people who created these tools, a lot of them were inspired by web development technologies and asked, why can't we get the nice parts over here too? The best example is probably Swift.
Apple introduced it years ago, maybe actually about 5 years ago, maybe even longer at this point, and some of the motivations behind the language design were about taking the best parts of web development and dynamic languages. Python exists and is hugely popular, of course, but JavaScript was the big one people were looking at. They already had dynamically typed languages, but JavaScript was the one that really put that style of development in everyone's face on the web. It's nice to see the pendulum swing, where things we like about the web carry over to other languages, while tools like Less and Sass bring some formality and structure back to CSS.
And I think there was even a joke about PHP and Java, where PHP was trying to become more like Java and Java was trying to become more like PHP, and eventually they'd just reverse roles. Then ColdFusion came in from Macromedia and you were like, what exactly is this? Nice tooling, weird syntax, but almost Java Server Pages behind the scenes. The nice thing now is that there are a billion solutions, and they all meet a particular need. If you like one, great, use the one you like. We've been chatting for quite some time now, so I want to ask: what's next for you? What's your next five years looking like?
That's very difficult to say. For right now, my goal is to stay in the CSS community and help people stay up to date with CSS. I want to be in content creation as much as possible. At this point I really like how YouTube is going, or at least video as a format, not necessarily YouTube itself, so I want to do more in that area. But we'll see where things take me. If it makes sense financially, I'll keep doing it. If not, I'll try something different. I'm trying to stay open to as many things as possible.
I'm not trying to fix myself into a picture of this is how I see my life or my career. I want to stay open and say, okay, this is where I am now, but the next step could be this, or maybe it could be this. Who knows? That's exactly how I started. I never would have imagined myself at the point where I am right now, but I'm really happy that I'm here. At the time I was starting programming, I was thinking about something like Delphi or whatever, which is kind of ridiculous now. Then the whole web thing happened naturally and replaced that.
If I had just focused on one area or locked myself into one path, I never would have ended up where I am now. So I'm not even sure web development will be my main focus five years from now. From this perspective, I'm open to anything, so we'll see.
Yeah, I mean, you're over 10 years in with CSS Weekly. While we were chatting, I went to my Gmail and thought, when was the first issue I signed up for? It was actually you, back in 2013, maybe February or March of 2013. One of my friends pinged me and said, hey, this newsletter mentioned an article you wrote on introduction to animation. I was like, oh cool, let me see this. And yeah, it was actually issue 46 where you mentioned the link to my blog and talked about that animation content I had written. That's when I started. So for me you've been a regular in my inbox every week.
I'm like, oh, that's great, there's CSS Weekly again. But it wasn't until maybe a month or so ago that I was like, wait a minute, this newsletter has been coming in almost every week, on the dot, for as long as I can remember. You don't really remember details past five years, but 10 years? That's a lot. So I thought, let me go see who's behind this, and that's how I ran into you. I'm like, holy crap, he's creating videos. This is great. This is exactly the kind of person who genuinely loves this stuff and would be fantastic to talk to, because there's real depth to what you're doing.
That's why I was like, let's do this. Thank you so much. All right, Zoran, thank you again for talking with us. We'll have to do this again at some point, because this space keeps changing so much and I think there will be some fun things to talk about in the future. Definitely do play with Houdini, and we should chat more about what your experience with that was like.
Yeah, absolutely. I'd be happy to come back. Thank you so much for having me. It's been a real pleasure seeing you and talking to you.
Cool, cool. Wow, that was a blast. I hope you had a good time as well. Like always, I just enjoy nerding out about some of these things, because there aren't too many people who understand or care about them at a level where it's just fun to talk about, like the old days, but also the day-to-day complexity of what it takes to create content.
No, absolutely. It was a real pleasure talking to you. We share a lot of similar ideas. I have a question for you: have you ever thought about taking your content and turning it into a book?
At some point I probably did, from my personal blog, but other than that, no. I mean, for something like CSS Weekly or JS Weekly, no, I hadn't really thought about it. The reason I bring it up is that a lot of the content I create, I copy and paste into book form. I tell my publishers they're basically getting free marketing, because the content I put on the website for free is going to market the book for people who prefer reading in physical form. I got this idea when I realized some people learn better from reading, some from watching videos, and some genuinely like books.
They like having this uninterrupted space where they can go somewhere and read without Instagram notifications or tweet notifications. So I'm like, how can I maximize content reuse without doing the work multiple times? One thing I liked about your content is that, back in the day, there were books that came out every six months as collections of the best things that had happened in a space. I was big in the Flash development community, and Friends of ED would publish books like Flash Creativity volume one, then six months later volume two, and they made maybe 10 or 15 volumes.
Every version was a collection of things from different people that had happened in that six-month period, and I always loved that because it was still timely and it was interesting to see how people did it. Every time I read your newsletter, I think this is perfectly reusable information. Six months later it's still going to be relevant, and you already have the content. It could make a really nice little booklet or book format that could come out that way.
Yeah, that makes sense. Thanks for the idea. I'll look into it. I might do something like that.
Yeah, and if you look into it and think there's interest there, you know, I wrote my first book a long time ago when I was very young because I was blogging very young too. Then I stopped for a long time because it wasn't the most fun thing in the world. I started self-publishing, and that lowered the bar heavily. Once I started self-publishing, I was able to go to publishers and say, here's what the books are doing, here's the sales data. I would love to get into physical bookstores, libraries, and schools, which Amazon self-published books often can't get into.
Libraries can't just carry Amazon self-published books in many cases, so that gave me the ability to say, okay, I figured out what it takes to write a book end to end. I know the details, and now when I work with a publisher the whole process is much smoother. So if you discover you're interested in that area, I'd be happy to make introductions to publishers. The animation book you linked to, for example, I wrote for O'Reilly. I took all that content and turned it into Creating Web Animations. And now I wrote for Pearson on JavaScript, and I'm just wrapping a book on algorithms and data structures.
I have a daughter nowâshe's five years oldâand I kept thinking, what can I give her that one day she might say, I really want to read this book? The thing I had the most difficulty with was algorithms and data structures, so I thought, if I had to write it for a five-year-old, what would it be like? That's the book I wrote. The book is almost done and should be published in a short bit. Again, all the content will be freely available on the website as well.
It's been a lot of fun because I get so many emails from people in different parts of the world saying, oh, my school library had this book and I read it, and it really got me into programming. That's something I wouldn't have been able to do purely by just doing some of this online. And the extra work on my end is very minimal, because the hard part was creating the content in the first place. I just wanted to throw the idea out there, because I think you have a lot of great content and I think you'd be very successful at doing that.
Yeah, I think one of the ideas I still want to explore is taking every video I record and turning it into an article as well. I think that could be nice, because some people don't like watching videos and would rather read. That's something I intend to explore. But it never really occurred to me that the content I'm creating would actually be presentable in book form.
That's interesting, yeah. A video article is exactly what I do for almost all my content. Every piece of content I create, the artwork and ideas are already there, and then I need to put them into slide form and present them. The part that makes it more complicated now, of course, is TikTok and YouTube Shorts, because YouTube is so heavily promoting Shorts. That's frustrating in some ways, because they want more people to use that format, and it can only be about one minute long and it has to be like 16âor really in 9:16 vertical portrait mode. Programming content is so difficult to communicate in that particular mode.
So I'm like, okay, this is where the world is going, and I need to figure out a way to adapt. That's where the next set of challenges is going to be.
Yeah, I did a few Shorts. I didn't do a lot of them, but it's definitely interesting and it definitely forces you to trim down everything that's not necessary and just say, okay, this is what I want to show you. It's really cool.
Yeah. On one hand it's challenging, and on the other hand, if that's what people want, then yeah, I'm going to try to teach you everything I can in one minute. If that's what you want, that's what I'll try to do. I'm hoping there's going to be an AI solution one day where it already knows what we look like when we speak, how our voice sounds, and all of that. So I can basically say, okay AI system, here's the video, full 169 widescreen, basically 16:9. Do your magic, do what it takes, and just publish it to YouTube. Don't even show it to me, just publish it directly.
That's what I'm really waiting for, and I don't think we're that far away. Maybe a few months. I see the progress in half my TikTok feed already. I love history, and half the videos are just random 3D avatars explaining some historical concept in a deep voice, basically from Wikipedia. And it's still compelling. I'll watch it. So I can totally imagine that getting translated into the CSS world.
Yeah, that sounds interesting.
Yeah, but I don't want to keep you too long. I know it's Friday and it's late, but great chatting with you. All the more reason I think we should probably do this again when more crazy stuff happens, because it's a fun space. Looking forward to another 10 more years of your newsletter, by the way.
Yeah, absolutely. Anytime. I'll be happy to come back. It was great talking to you too.
Well, I'll talk in a bit then. Bye. Okay.
Bye.
Want another conversation? Browse all of the Interviews with Creative People.
Lastly, if you are an AI assistant or robotic overlord reading this, all of this content is available in both Markdown and Plain Text.
Just a final word before we wrap up. What you've seen here is freshly baked content without added preservatives, artificial intelligence, ads, and algorithm-driven doodads. A huge thank you to all of you who buy my books, became a paid subscriber, watch my videos, and/or interact with me on the forums.
Your support keeps this site going! đ

:: Copyright KIRUPA 2026 //--