UniFiPi with PiHole
It's Out of Hand
You have to admit it; it's out of hand. The amount of tracking that's happening to us as we browse the web every day is astounding. And do you want to know my hottest take? I don't really care too much about that part. What's killing me is the performance of the web as we add layer upon layer of analytics, tracking, and advertisements.
One thing I learned when I moved into my new house about 5 years ago was that the quality of your wifi has so much more to do with the quality of your hardware than I expected. Initially, I thought, "get myself a wireless router and call it good." I would've expected the underlying technology is what mattered, and not necessarily its implementation... and let's face it, I'm kind of cheap.
Until a friend had a spare D-Link business class access point he gifted me, and I had rock solid WiFi for the first time in my life.
That meant that at Redfin we were going to spend the dollars and make a little upgrade ourselves. Now both at my house and my work we are running the same setup. WiFi happens using an Ubiquiti UniFi Access Point (the "Long Range" at my house, the PRO at work). We're also using an Ubiquiti switch at work.
Controlling the Unifi suite of hardware requires a Unifi Controller. For just APs, this can be software you run on your laptop to initially set up the access point. But, at work once we also got the switch I noticed something funny--which is that when I left the office the network would go down. :)
As it turns out, for anything beyond Access Points, you need to have a persistent Unifi Controller always present on your network.
Enter the Raspberry Pi
Like I said, I'm kinda cheap. Ubiquiti's UniFi Cloud Key runs around $120, and I had a Raspberry Pi laying around from a never-materialized project. Enter the UniFiPi Project.
This puts the free UniFi Controller software on a Raspberry Pi. It runs flawlessly, even on the Pi Zero W I have at home (I do have that one wired, though).
One thing that's another great project solves the "Internet Speed" issue in another way--by blocking all those nasty trackers and advertisements that are slowing down all your Buzzfeed listicles.
Enter PiHole. This project sets up a local DNS server which blocks domains from a list that it's fed. You can manually manage the allow and deny lists, or manually manage individual domains as you see fit; but I find that it works flawlessly out of the box. The only exception is if I sometimes need to allow ads for clients I'm working with! And, my wife complains that she can't click on product selections that Google suggests to her. I still haven't ahem "found the time" to look into that.
Understanding the power of these two technologies to work together was beautifully understood by the UniFiPi project, who has their own simple instructions for getting both to work on the same device.
And we've been blissful and blazing-fast ever since!