Computers are awesome. Also computers really suck… the time out of my day. The same goes for phones and tablets and anything that can access the internet. I've been addicted to way too many different internet activities: Reddit, TV, Instagram, Twitter, Hackernews, product reviews, travel blogs, tech blogs, the EA forum, etc, etc, etc. Even Wikipedia can be a huge time sink for me! Maybe I have less self control or less willpower than others? Regardless, my internet time wasting got pretty bad over the years. Working from home during the pandemic finally set me off a cliff where I realized I really needed to solve the problem.
“Every advance in productivity afforded by technology has been quickly swallowed by a corresponding reduction in the barriers to procrastination.”
So, in late 2020, I started putting together a system of blocks that make my computer and phone helpful rather than destructive. I wasn’t successful immediately. I’ve made many little tweaks in that time and patched up gaps and cracks. But, the result is a system that solves most of my internet addiction problems without completely disabling my devices! Over time, the urge to do addictive things online has also faded a lot, but I have no plans to loosen the controls.
Blocking

The flowchart above describes the algorithm for my blocks. The basic principles are:
- My laptop is almost exclusively for work. Non-work stuff, even if it’s not addictive like a bank website, should be blocked. Having different devices for different purposes really helps to keep me doing what I want to be doing.
- I use a “deep work” whitelist of acceptable apps and websites for times when I really want to get some coding or writing done.
- My phone and tablet can be used for anything else. But very addictive stuff is either completely blocked or is tightly time limited.
- All my electronic devices should stop being useful or fun at night so that I am more likely to go to sleep. I don’t get sleepy at night until very very late. But, if I lie down for ten minutes, I will fall asleep. So if I want to go to bed on time, I need to reduce the attractiveness of staying awake.
- I can violate these rules with permission from a few different people who share a password that unlocks these blocks. For example, if I want to watch a TV show with a friend, we’ll either use their laptop or they will use the password to unblock my tablet for an hour. I do not know the password!
In painstaking detail:
- I use Cold Turkey Blocker for blocking websites and apps on my laptop. I have six block lists in Cold Turkey:
- “Permanent” - These are things that I should never use my computer for. Some obvious suspects are in there: TV shows, Instagram, Strava, Twitter, news websites. But also, there are also a lot of online shopping, blogs, and product review sites. This block is password protected with the password.
- “Non-addictive” - websites that are not work but are also not addictive. Normally I shouldn’t be using my laptop for these tasks. But, if I need to, I can type 150 characters of random text to unlock this block. This is mostly financial and bill-paying related stuff like my bank, credit card websites, airline websites, Mint.

- “Whitelist” - This blocks every website and app except for those on a list that I’ve built over the years. I will typically enable this in an irreversible way for 1-3 hours but sometimes for a whole day. When I first started, I couldn’t enable the whitelist for more than 20 minutes without having trouble getting work done. But, I’ve just noted down sites whenever I find something that I need access to and then I add the site after the current whitelist session is over. Being able to completely block almost all distraction potential for an hour gives me a lot of momentum even after that hour is over.

- “Email” - This is just for email websites and apps. Email can be very addictive! Especially when I’m expecting an important message. Knowing that I absolutely can’t access my email until later in the day is helpful for focusing on other tasks. After a morning email session, I block access to my email until the evening. (“Start and lock for 7 hours”)
- “All apps at night” - This blocks every last app on my computer from 9:15pm until 2am. Just like “Non-addictive”, if I need to, I can type 200 characters of random text to unlock this block.

- “Whitelist at night” - even if I unlock “Everything at night”, the whitelist also enables from 9:15 pm to 2am. This block is password protected. So, I can only use my laptop for work during that time. If there’s some work emergency, this means I can handle it. Also, I sometimes get very motivated in the night and want to work. I don’t object to that and don’t want to prevent myself from doing that. This double night-time block evolved out of an issue where I would want to work in the evening and would disable my night-time block. Then, I would work from say 10pm to midnight. But, after I was done working, I would take advantage of the unlocked laptop and stay up until 3am wasting time online by doing something like watching a TV show.
- The phone and tablet blocks (synced together) are much simpler. I use the built-in Screen Time tools and allow myself:
- 12 minutes a day on Twitter. I get a lot of value from Twitter but it has a lot of addictive potential.
- 10 minutes a day on Discord.
- 20 minutes a day summed across all apps or website in a big list of time-sinks like YouTube, Reddit, etc. There are 114 websites on this list right now.
- One hour a day on Safari. This covers the “Do nothing**” in the flowchart. If a website isn’t blocked some other way, I’m still limited to at most an hour on that site. And normally much less time because I will have already used up some Safari time for other purposes.
- Complete blocks on Instagram, a few video games and all TV/Movie streaming services.
- Other web browsers are blocked so I can’t evade the Safari block.
- Most apps are completely blocked after 9:45pm. The exception to this are apps that have no potential to keep me up late and are useful while traveling or out late: Messages, WhatsApp, Weather, Calendar, Uber, etc.
- I should probably block the App Store but having access hasn’t caused me problems yet.
- I maintain and update these lists above by automatically tracking my time use. Lots of other folks have written about this. I use Timing for this on my laptop. On my phone, I use the built-in Screen Time app. Once a week, I look at the websites and apps I’ve used over the last week. If there’s anything that should be added to a block. If I realize I got distracted by a site, I’ll update the block lists immediately.
- I also use Daily. It pops up a window in the corner of my screen every ten minutes asking what I’m doing. I can respond with one key press whether I’m working (“w”) or not working (“n”). Since my laptop is intended for work, it’s useful to track when I’m using it for non-work purposes and try to adjust the system to push that kind of thing off to a different device. It’s also nice to know how much I’ve worked in that past week or month. “Oh yeah, that’s why I’m tired! Maybe I’ll go for a long run in the mountains tomorrow.” or “Gosh, I didn’t get much done this week. I wonder why?”

Appendix
Implementation details that I left out above:
- If you open “App Limits” and try to add a time limit for Safari, you will sadly be unable to find the app! But there’s a workaround. Go back to the main Screen Time page and click “See All Activity”. Then, scroll down to the “Most used” list and select “Safari”. Click “Add Limit” and you’ll be able to set a limit. Source
- Make sure you select “Block at End of Limit” when setting up an App Limit. The default is to just yell at you but not actually block anything.
- I haven’t found a good way to block an app completely in Screen Time in a way that also allows using a password to temporarily unlock the block. Instead I just set a 1 minute App Limit. For most things, one minute is a short enough time to make the app useless. You can’t watch a TV show in one minute.
- To set up my night time block in Screen Time, I set a schedule in “Downtime”, then I turned off “Block at Downtime” so that my phone is still usable. Finally, I select which apps are acceptable in “Always Allowed”.
- In Cold Turkey, I give an allowance of five minutes for the night time block. Without this, all my apps would suddenly close at 9:20pm. That’s normally not a big deal, but it is nice to be able to leave some browser or IDE tabs open overnight. Occasionally, killing all my apps is a big deal like when I’m running some code overnight and I didn't remember to launch the job inside tmux.
Technical problems that I’d love a solution for:
- Cold Turkey doesn’t allow a scheduled block to also be temporarily activated. So, I need to keep my night-time whitelist manually in sync with my day-time whitelist.
- Cold Turkey doesn’t have a way to temporarily turn off a block. So if I disable a block, I need to make sure to turn the block back on. In contrast, Screen Time allows choosing to disable a block for either 15 minutes, 1 hour or all day. It's nice that I can't accidentally leave a Screen Time block disabled.
- It’d be nice to be able to request access to an app/website remotely with Screen Time. If I need a Cold Turkey block on my laptop disabled remotely, I can do a screen share and let someone remotely type in the password without telling me the password. But, iOS has no mechanism for remotely controlling a phone like that. So, at the moment, if I’m traveling and need to unblock something, I just use my laptop. I've managed to get through quite a few trips without needing to disable anything!
<!-- Footnotes themselves at the bottom. -->
Notes