I'm still young so maybe my mind hasn't matured enough to where I can combat this well. So I went heavy-handed - I have a button on my desk that when I press it, my server's DNS server (through which all my devices and router resolve) begins rejecting requests to reddit, instagram, twitter, hackernews, news.google.com, etc.
For the next two hours, there is nothing I can do outside of SSH'ing through my mobile device (purposefully don't have an app for it) and resetting the countdown on the DNS server and restarting the server, to allow these DNS requests. It denies all SSH connections from my home network, and doesn't even resolve its own subdomain (dns.my-domain.com for the DNS dashboard) for me to reset it.
My /etc/hosts file on the machine I work on all day blocks 68k hosts 24/7. No social media sites at all except Twitter. No ads.
Meanwhile, the Leechblock browser add-on stops me from using the few things I do otherwise (bits of Reddit, HN) allow between 09:00 and 17:00 which is not perfect but it's a start. Except ... I disable it a lot :(
would you share the hosts file by any chance? 68k seems better than what I have