Freedom has done wonders for helping with my productivity. It blocks websites efficiently, comes with several pre-built block lists, has a strong notification system, and while it may not block apps effectively, I understand this to be a fault with the AppStore generally, as opposed to this app specifically.
Blocking websites is a core feature, and is very simple to implement. You can either choose from the aforementioned prebuilt block lists or create your own by typing in the website address. Once that’s done, you select a length of time, a block list, and the device/s you want Freedom to run on. Once you set it, it goes until it’s done with no exceptions. The caveat here being, of course, that this app can be disabled via deleting Freedom from your phone, or killing the functionality on a laptop. That said, it’s a simple, effective system that will work as long as you do.