Disabling Intercom during Playwright tests 11/5/23

By Chris Johnson

I recently ran into an issue where the Intercom chat widget was interfering with my Playwright integration tests. The widget was opening up and keeping some key elements from being clickable. A user could have easily dismissed the widget, but I didn’t want to bother dismissing it within Playwright. I couldn’t find any particular guidance on how to keep the widget from loading in the usual places on the web, so I had to come up with my own solution.

What I ended up doing was intercepting all outbound requests Playwright was making and skipping any that called the Intercom domain.

I created this helper function:

import { Page } from '@playwright/test'

export async function blockIntercom(page: Page) {
  await page.route('**/*', route => {
    if (route.request().url().includes('intercom.io')) {
    } else {

And then called it in the test files that were affected:

import { Page, test } from '@playwright/test'
import { blockIntercom } from 'helpers/block-intercom'

let page: Page

test.beforeAll(async ({ browser }) => {
  page = await browser.newPage()

// your tests begin here

It shouldn’t be too difficult to modify this to also block chat widgets from other vendors like Zendesk or Drift.

My 2021 media diet 1/30/22

By Chris Johnson

For the past few years now, I’ve been keeping track of the media I watch and read. This is my list for 2021 in ascending chronological order:


  • The Murder of Roger Ackroyd ★★★★★
  • The 12 Week Year ★★★★☆
  • Cactus League ★★★☆☆
  • Kitchen Confidential ★★★★☆
  • The Spy and the Traitor ★★★★☆
  • Interview with the Vampire ★★★☆☆
  • Can’t Even ★★★☆☆
  • The Magician’s Nephew ★★★★☆
  • Essentialism ★★★★★
  • How to do Nothing ★★★★☆
  • Zero to One ★★★★★
  • Soccernomics ★★★☆☆
  • The Immortal Irishman ★★★★☆


  • Prospect (2018) ★★★★☆
  • Soul ★★★★☆
  • The Molly Maguires ★★★☆☆
  • The Man Who Would be King ★★★★☆
  • Russia House ★★★★☆
  • Minari ★★★★☆
  • Sound of Metal ★★★★★
  • Margin Call ★★★★★
  • The Trial of the Chicago 7 ★★★★☆
  • Nomadland ★★★★☆
  • Mank ★★★★★
  • Promising Young Woman ★★★★☆
  • The Father ★★★★★
  • Judas and the Black Messiah ★★★★★
  • Ma Rainey’s Black Bottom ★★★★☆
  • Wolfwalkers ★★★★★
  • Another Round ★★★★★
  • All is Lost ★★★★☆
  • In the Heights ★★★★☆
  • The Suicide Squad ★★☆☆☆
  • Reminiscence ★★★☆☆
  • A Most Violent Year ★★★★☆
  • James Bond: No Time To Die ★★★☆☆
  • Hereditary ★★★★☆
  • The Last Duel ★★★★☆
  • Dune Part 1 ★★★★☆
  • The Green Knight ★★★☆☆
  • Robin Hood (2010) ★★★☆☆
  • The Power of the Dog ★★★★☆
  • The Matrix Resurrections ★★★☆☆
  • Tenet ★★★★☆

My 2020 media diet 1/19/21

By Chris Johnson

For the past few years now, I’ve been keeping track of the media I watch and read. This is my list for 2020 in ascending chronological order:


  • Harry Potter and the Goblet of Fire ★★★★☆
  • The Spy Who Came In From the Cold ★★★★★
  • Harry Potter and the Order of the Phoenix ★★★★★
  • Star Trek New Frontier: House of Cards ★★★☆☆
  • Primal Blueprint ★★★★☆
  • Harry Potter and the Half-Blood Prince ★★★★★
  • Stop Reading the News ★★★★★
  • The Dream Machine ★★★★★
  • Grant ★★★★☆
  • The Dark Forest ★★★★★
  • Harry Potter and the Deathly Hallows ★★★★★


  • 1917 ★★★★★
  • Little Women ★★★★★
  • Dolemite is My Name ★★★★★
  • Marriage Story ★★★★★
  • Jiro Dreams of Sushi ★★★★☆
  • Birds of Prey: Harley Quinn ★★★★☆
  • Contagion ★★★★☆
  • Missing Link ★★★★☆
  • Attack the Block ★★★★★
  • Onward ★★★★☆
  • The General ★★★★☆
  • Hostiles ★★★★☆
  • Barbarella ★★★☆☆
  • The Limey ★★★★☆
  • Bumblebee ★★★★☆
  • Train to Busan ★★★★★
  • Jumanji: The Next Level ★★★★☆
  • Cabin in the Woods ★★★★★
  • Batman Ninja ★★☆☆☆
  • Tremors ★★★★★
  • Her Smell ★★★☆☆
  • The Vast of Night ★★★★☆
  • Sorry to Bother You ★★★★☆
  • 6 Underground ★★★☆☆
  • The Imitation Game ★★★★☆
  • Everybody Knows ★★★★☆
  • Mississippi Grind ★★★☆☆
  • That Darn Cat ★★★☆☆
  • Burning (2018) ★★★★☆
  • Mulan (2020) ★★★☆☆
  • The Lighthouse ★★★★☆
  • Mulan (1998) ★★★★☆
  • Howl’s Moving Castle ★★★★★
  • Glass ★★★☆☆
  • Ponyo ★★★★☆
  • Borat Subsequent Movie Film ★★★☆☆
  • King of New York ★★★☆☆
  • Free Solo ★★★★☆
  • Blue Ruin ★★★★★
  • The Insider ★★★★★
  • Overlord ★★★★☆
  • Mary and the Witch’s Flower ★★★☆☆
  • Wonder Woman 1984 ★★★☆☆
  • Enola Holmes ★★★★☆


  • Hamilton (Disney+) ★★★★★

Stop reading the news every day 9/25/20

By Chris Johnson

I recently finished a book by Rolf Dobelli titled Stop Reading the News. Dobelli makes a compelling case to switch from daily news consumption to reviewing news once a week or not at all. As Dobelli argues that there’s not a lot you can do about the news literally as it happens, so why amp up your anxiety by consuming it every single day?

Now, I’m not ready to totally abandon the news — especially these days with COVID-19 raging in my home country — so I’m trying out the once a week strategy with a subscription to the print edition of The Economist. They give you the week’s news in a relatively condensed format that you can read in one sitting. Also, since it’s the print edition, I’m not getting lost following links all around the web. I’m also keeping tabs on COVID-19 cases in my area with tools like then Google News Coronavirus map, and as Dobelli suggests, I still read news about tech and development that have an impact on my career.

Stop Reading the News is a short book and I’d suggest giving it a read if you’re at all interested in understanding Dobelli’s reasoning for cutting back on the news and strategies for how to replace news in your life.

Newer model static sites 9/22/20

By Chris Johnson

Sites that are served statically (meaning they aren’t backed by a scripting language or a database) have big advantages in terms of speed, simplicity, and security. But as Leon Paternoster notes, the definition of static sites is changing, and we’re losing speed and simplicity in the process.

Under the traditional static model, the heavy lifting of building pages from includes and local or external data is done when the website is compiled into flat HTML files, whether that’s on a PC or a server. This happens out of view (hence Jekyll, incidentally), completely separately from any user involvement. Javascript is used to enhance UI, perhaps through offering sorting or filtering functions. All the user does is download the HTML file and its assets.

Under a newer model (which even has its own Netlify-created brand name of JAMstack) much of this heavy lifting is moved to the user’s browser. Websites are created as SPAs, where HTML, CSS, data and javascript are downloaded in one bundle and the javascript creates pages based on user interaction.

The issue with a “newer model” static site is that the JavaScript required to render a page is often so large and complex that it can take a significant amount of time to download and then execute on a device. That could be a recipe for frustration when visitors have spotty internet connections or are using relatively slow phones or laptops.

Mac apps I use 2020 5/15/20

By Chris Johnson

I’ve been a Mac user since right before the transition to Intel in 2006. Over the years I’ve collected a large number of third party apps that I use regularly for work and sometimes for play. I’ve left default Apple apps off the list, but I use those as well.

If there’s any alternative apps you think I should try, reach out to me on Twitter.

My 2019 media diet 1/3/20

By Chris Johnson

For a few years now, I’ve been keeping track of the media I watch, read, and play. This is my list for 2019 in ascending chronological order:


  • Ancillary Mercy ★★★☆☆
  • Show Stopper!: The Race to Create Windows NT ★★★★☆
  • The Life-Changing Magic of Tidying Up ★★★★☆
  • Killers of the Flower Moon ★★★★☆
  • The Soul of a New Machine ★★★★★
  • Digital Minimalism ★★★★☆
  • A Brief History of Thought: A Philosophical Guide to Living ★★★★★
  • Harry Potter and the Philosopher’s Stone ★★★★☆
  • Educated ★★★★★
  • A Murder of Quality ★★★★☆
  • Rise and Fall of the Third Reich ★★★★★
  • Harry Potter and the Chamber of Secrets ★★★★★
  • The Three-Body Problem ★★★★☆
  • Hooked ★★★☆☆
  • Beneath a Surface ★★★☆☆
  • How to Break Up With Your Phone ★★★★☆
  • We Learn Nothing ★★★★★
  • Atomic Habits ★★★☆☆
  • Harry Potter and the Prisoner of Azkaban ★★★★★
  • Enemies of the People: My Family’s Journey to America ★★★★★


  • Coco ★★★★☆
  • Ready Player One ★★☆☆☆
  • Kiss Kiss Bang Bang ★★★★☆
  • Deadpool 2 ★★★☆☆
  • The Favourite ★★★★★
  • A Streetcar Named Desire ★★★★★
  • Prisoners (2013) ★★★★★
  • Captain Marvel ★★☆☆☆
  • Mandy ★★★☆☆
  • Locke ★★★★★
  • Major League ★★★☆☆
  • The Meg ★★★☆☆
  • Avengers: Endgame ★★★★★
  • The Wife ★★★★☆
  • John Wick: Chapter 3 ★★★★☆
  • Noah ★★★☆☆
  • Letters from Iwo Jima ★★★★☆
  • The Bit Player ★★★★☆
  • How to Train Your Dragon: The Hidden World ★★★☆☆
  • Bone Tomahawk ★★★★☆
  • Tomb Raider (2018) ★★★☆☆
  • Spider-Man: Far From Home ★★★★☆
  • Road House ★★☆☆☆
  • Bad Times at the El Royale ★★★☆☆
  • Hobbs & Shaw ★★★★☆
  • Once Upon a Time in Hollywood ★★★★☆
  • The Ballad of Buster Scruggs ★★★★☆
  • Machete ★★★☆☆
  • A Quiet Place ★★★★★
  • Widows ★★★★☆
  • It: Chapter 2 ★☆☆☆☆
  • Slow West ★★★★★
  • Hustlers ★★★★☆
  • Joker ★★★★☆
  • Get Carter (1971) ★★★☆☆
  • Deadwood: The Movie ★★★☆☆
  • Jojo Rabbit ★★★★☆
  • Midsommar ★★★★★
  • Parasite ★★★★★
  • Alita: Battle Angel ★★★☆☆
  • Detective Pikachu ★★★☆☆
  • Shazam! ★★★★☆
  • Ford vs Ferrari ★★★★★
  • The Shop Around the Corner ★★★☆☆
  • Terminator: Dark Fate ★★☆☆☆
  • The Irishman ★★★★★
  • Hercules ★★☆☆☆
  • Green Room ★★★★★
  • Queen & Slim ★★★★☆
  • Knives Out ★★★★★
  • Star Wars: Rise of Skywalker ★★☆☆☆
  • Jumanji: Welcome to the Jungle ★★★★☆
  • Uncut Gems ★★★★★


  • Burn This ★★★★★
  • Network ★★★★☆
  • Dear Evan Hansen ★★★☆☆
  • Sea Wall / A Life ★★★★★
  • Betrayal ★★★★★
  • Come From Away ★★★☆☆
  • Iolanthe ★★☆☆☆
  • David Byrne’s American Utopia ★★★★★
  • To Kill a Mockingbird (Ed Harris) ★★★★☆
  • A Bright Room Called Day ★★☆☆☆

Atomic Habits and my tech setup 11/18/19

By Chris Johnson

A few weeks back I read James Clear’s book Atomic Habits and while I don’t think the book is a must-read, Clear made some interesting points that have led me to re-evaluate my relationship to my work computers.

The key insight from Atomic Habits is that even small percentage improvements in your life and work can lead to major changes as the benefits accrue over time 1. Going to bed 10 minutes earlier might only make you feel 1% better during your next morning workout, but that 1% added up across a year’s worth of workouts might be difference between you having six-pack abs or not.

So, what does that have to do with my tech setup? Well, since the introduction of the Butterfly keyboards on Pro Mac laptops in 2016, I’ve been on a bit of an odyssey to see if I should adopt Windows or Chromebooks as my work laptops. The Butterfly keyboard is notoriously unreliable 2, and I lived in fear that my MacBook Pro would have a keyboard failure while I was traveling, and that I’d have to be without it for 2-3 weeks while it was being repaired. Luckily, that hasn’t happened 3, but my MacBook Pro still feels fragile. Meanwhile, Windows and ChromeOS laptops are diverse enough that you can easily find reliable great-feeling keyboards.

Last winter I bought a Pixelbook, and started moving my client work to Amazon’s Cloud9 service. Cloud9 gives you an IDE in a web browser tab, and using it has meant that I essentially have the same work environment from any computer with a decent web browser 4. It’s a great weight off my shoulders knowing that my work isn’t tied up to one computer with a keyboard that could fail at any time, and I think I’ll keep using a system like this going forward for the peace of mind.

However, the rest of the experience of using a Chromebook is frustrating in a lot of small ways. On a Chromebook I’ve run into hard limits with design software. I have clients that send me Photoshop files, and I can access them in an emergency using the awesome web app Photopea, but it doesn’t support all of Photoshop’s features or even custom fonts. Figma is a great alternative to Sketch, but it also lacks custom fonts on ChromeOS. I’m phasing out using FTP to deploy projects, but I still need it for many of my older projects that I help maintain. Sadly, I’ve yet to find an FTP client as nice as Transmit or Cyberduck for ChromeOS. The most pervasive annoyance is that system-wide keyboard shortcuts aren’t customizable, so moving between a Mac and ChromeOS can be frustrating 5.

I have an aging Windows PC I used for gaming, and using it for work is simply unpleasant. Software updates happen when Microsoft wants them to happen, even if you’d really like to get something done. Just about everything in Windows seems like it was hit with an ugly stick. Font rendering is particularly jarring after using a Chromebook or Mac. On the bright side, I can use Photoshop, Figma (with custom fonts), and Cyberduck, but the rest of the app ecosystem is sorely lacking. With the exception of FTP and design software, I’d actually say ChromeOS has a superior app platform thanks to the introduction of Android and Linux applications.

While I can make both of those platforms work in a pinch (thanks largely to Cloud9), I’ve realized, because of Atomic Habits, that those little annoyances are subtracting small percentages of efficiency and productivity from my daily work. So, today I’ve decided that my tech wanderlust is over. I’m sticking to the Mac because it should benefit my work over the long run. And luckily for me, Apple finally fixed the keyboards.

  1. The rest of the Atomic Habits is about the best way to think about and create habits that you can actually stick to over the long-haul. 

  2. And I personally think the Butterfly keyboard feels awful. 

  3. Instead, I had to have my 2016 MacBook Pro replaced with a 2017 because the battery started swelling. Getting a replacement took Apple a month. 

  4. Sadly, that does not include the iPad. 

  5. I wish I could swap alt tab for ctrl tab on a Chromebook. 

Mazda ditching touch screen controls 6/20/19

By Chris Johnson

According to Motor Authority, Mazda is removing touch screens from their future car models.

“Doing our research, when a driver would reach towards a touch-screen interface in any vehicle, they would unintentionally apply torque to the steering wheel, and the vehicle would drift out of its lane position,” said Matthew Valbuena, Mazda North America’s lead engineer for HMI and infotainment.

Instead, Mazda is switching to a HUD and tried and true physical knobs and buttons.

The head-up display that top trims of the Mazda 3 get is now projected onto the windshield. The amount of time it takes the eyes to focus on the head-up display is greatly reduced because it’s now focused on a point 7.5 feet ahead of the driver.

(…) Mazda is looking to add more simple, tactile controls into the cars. A quick tilt of the volume knob to the right or left goes forward or back single tracks—or holding it left or right fast-forwards it. A tap of the button mutes the system, and holding it down quickly turns off the screen and everything if it’s currently a distraction.

I’m hoping more car manufacturers follow Mazda’s lead here. It’s dangerous enough that drivers are often distracted by their phones, and lulled into a false sense of security by “autopilot” systems.

Reflections on my digital declutter 4/21/19

By Chris Johnson

My 30 day digital declutter is over and I wanted to share my thoughts on how it went and what I’ll be doing going forward.

The first few days without Twitter, Instagram, and my RSS reader were the toughest. It’s funny how much muscle memory I’ve built up with those services. I open my phone, and without thinking, I’d pick one of those apps (usually Twitter) to open. After the first week though, I rarely had the urge.

My phone usage didn’t plummet though. Instead of three hours a day, I was using it around two hours and fifteen minutes. I used my phone for looking up information on Duck Duck Go, texting, and occasionally replying to emails while I was traveling to client meetings. My phone became more of a utility than an entertainment device.

What I did with my downtime changed significantly. I was reading more books, I wrote more blog posts, I met friends more frequently, I started a podcast (stay tuned), and I spent more time talking and enjoying the company of my wife. My attempts to add a bunch of new hobbies didn’t really stick, but being more proactive about going out and meeting friends is something that I think will be with me long term.

My ability to focus is where I was hoping to see the biggest improvement. After week one, I can say I felt more calm and relaxed throughout the day. My desire to constantly switch tasks declined. It wasn’t as big as a change as I’d hoped for, but it wasn’t nothing. However, I did feel more lonely throughout the work day. I work from a home office, and on days where I don’t have client meetings, Twitter is often how I feel connected to my colleagues and the world. To combat those feelings of disconnect, I spent more time working at local coffee shops.

So, where do I go from here? I’ve been off the declutter for a few days, and when I returned to Twitter, Instagram, and RSS I pared back the accounts I follow significantly. As a result, I feel less inclined to spend more than a few minutes perusing my feeds, but I can already feel the muscle memory I mentioned earlier returning. Even with that compulsion slowly creeping back, I realized I care less about the outrage of the day on social media than I did a month ago. With distance, it all seems a bit tiresome and counterproductive.

I think the way forward is two-fold: 1) limit my time on those services using Screen Time, and 2) setup blocks where I can’t use them at all, like mornings, nights, and weekends. I’m also hoping to convince some of my better acquaintances to join a chat room or something else a little less public.

Overall, I’m glad I gave Cal Newport’s digital declutter a try, and I’d recommend it to anyone that feels like they have an unhealthy relationship with social media and other digital services. At the very least, it will make you more intentional about how you spend your time.