I've been using an app called Concentrate (http://www.getconcentrating.com/) for probably 5 years that does the same thing, but it also lets you define apps and services to block (so for example, if I want to get really focussed, I block my Mail app so that I can't check it for the next hour).
I had the pleasure of working with Made By Rocket (makers of Concentrate) when I was a senior in high school (I was 17). Living alone in downtown Boise Idaho, working 40 hour weeks for two different startups, and finishing high school, man that was a rough year.
In my experience, it's not about making accessing these sites impossible, just harder. An alternative is artificially injecting a 30-second delay to any interaction with those websites. When it takes that long for a page to load, it can slowly teach you to un-learn compulsive checking.
* blocks distracting websites (and arbitrary hosts so I can't SSH to my IRC bouncer!)
* starts playing some elected noise (either generated -- pink noise -- or pre-selected rain/ocean/etc.)
* blocks notifications (can the OSX notification stuff be set to DnD?)
* is a Pomodoro timer: will unblock everything by itself in 25min (or whatever time is elected)
Unfortunately, I don't have the time to make it :(.
Just to add, I'd love the ability to block notifications as well (as possible with the built-in "non-distracted mode") except for a chosen few applications. For example, I'd like if iCal could still keep me updated on schedules via notifications.
Nice, exactly what I'm looking for. A few ideas for features:
More options in the filter preferences. How are wildcards handled and multiple domains?
A system-wide hotkey for turning on and off the distraction (I'm an avid Vim user and do a lot of text editing so I'd prefer not to use the mouse too much). Maybe even make it work together with Alfred.
Nice touch showing a motivational quote when you try to visit the blocked website.
I've been using Concentrate so far with great results. It has a few more options (such as a growl message every X seconds) but no nice motivational quote for websites! :) Also – the first version is actually free (click the buy button).
There's a great free Safari extension called WasteNoTime which does something similar without a proxy, and also has the added benefit of tracking the time you spent daily, weekly, or monthly across all sites (including non-blocked ones) so you can see which ones you need to block.
Most time-wasting sites never need to be accessed, though some of them are occasionally useful.
I think the app should let you access blocked sites when you need to, but make it difficult in some way. E.g. it could pop up with a warning and require user to enter a code. Often people waste time impulsively so a small block is enough to get them back to work.
(Alternatively, it could send out an email or post it online when a user over-rides a blocked site. Or it could fine the user!)
I am using DNSCrypt from OpenDNS, but when I disable it, I still can't get Focus to work. I have Automatic Proxy Discovery and Automatic Proxy Configuration turned off in System Preferences -> Network, but turning these on didn't seem to work either.
Could you add a quick install guide with the required settings?