Maybe everything is changing, all the time

Remy recently posted an interesting, thought-provoking read on framework fatigue and how we’re making the web more complex ourselves: If you didn’t gather off the bat from the title, the problem with developing front end projects isn’t that it’s harder or more complicated, it’s that you made it harder and more complicated. You have the power of […]

Helping the Web find its product-market fit

The web is struggling to find product, or platform-market fit in today’s mobile consumer world. Here’s how we can fix it.

Job opportunity: Google Web Creators…needs you!

TL;DR: If you’re a prolific content creator on the web (and in the US), and if you want to help others achieve the same, there’s a new unique part-time job opportunity for you. Web Creators..who? If you’ve been following my work, you might have noticed that I’ve taken all my collected skills and knowledge around […]

A 'perfect' row-based image masonry

TL;DR: Check out the Codepen. Also note that after publishing, I found that there are much nicer, stable solutions that preserve perfect aspect ratio if needed (see react-photo-gallery & Justified Gallery). I was on a hunt for a special type of masonry layout for an image gallery today. It needed to fulfill the following requirements: […]

Gifs must die

A: “Should I post this as a GIF?”B: “No”. There’s already a perfect, canonical guide about why you should stop using GIFs and what to do instead by Jeremy Wagner, so I’m going to spare you the details. But I’ve decided to use my platform (my blog!) to spread the message. Please stop using GIFs. […]

object-fit: contain with aspect ratio for…a div!

This blog post is mostly a bookmark for myself, as I’ve spent too much time researching this problem in the past: Can you ‘contain‘ a <div> or similar element the same way object-fit works with replaced media (images/videos), with nothing but CSS? It turns out, as I finally learned in a 6-year old StackOverflow reply, […]

Create more, destroy less

I’ve recently read that we should consume less and create more, and it’s a very worthwhile read that much more elaborately expands on what I wrote about Gadget Zombies couple years ago. I wrote my original post 7 years ago, but it’s one of the few things I’ve written that aged surprisingly well, and it’s […]

Multiline truncated text with “show more” button (with just CSS)

TL;DR: I built a CSS-only (~ish) solution for multiline truncated text with read more button. The other day, truncated text came up during a discussion in the office, and I since wondered if CSS has come far enough to be able to do truncated text right, that is, supporting the following: Multiple lines “Show more” […]

Quickly copy DOM attributes from one element to another

This is mostly a note for myself, but thought it might come in handy for some: Sometimes you need to transfer or copy DOM attributes from one element to another (as opposed to copying the whole element with cloneNode). Luckily, there’s the handy attributes object: In my case, I needed to transfer all attributes to […]

I’m hiring! Help us make content experiences for everyone

Sometimes I jokingly introduce myself as “the guy from the AMP videos”, as lately the public largely knows me, and by extension my team at Google, in the AMP context. But there’s actually much more happening in our small-but-mighty Content Ecosystem team at Google: We’ve made it our mission to ensure the web is the […]