intentional.el is my attempt at making the perfect productivity application for site-blocking. It turned out to be probably the most advanced site-blocking software that I’ve ever came across and it all is due to how all of the pieces of Emacs work together.
The application is based on the concept of constant whitelist blocking. Most software that goes the blacklist route and this has the problem that there are a near unlimited number of sites that you can waste time on and you can’t possibly block them all. Even if you could, some of those sites may be necessary to unblock for different types of work. The whitelist approach usually has the downside that the number of sites you need to stay productive is also nearly endless and thus you’re constantly updating your whitelist to suit your task… a lot of manual work.
intentional.el solves this whitelist blocking problem by integrating with the org clock. Whenever you clock into a task, intentional.el takes over and scans any site that is listed as one you’d possibly need. It then, in conjunction with a browser plugin, blocks all sites except the ones deemed necessary. Upon clock-out, the sites go back to being blocked.