December 30, 2020 · networking personal selfhost

Launching a New Service

For the past few months, I have been busy working on a project called Hoppy Network. Initially, I believed the ambitions for this "side project" to be relatively small, but it ended up occupying a significant chunk of my free time and being a lot more complicated than I expected. I think I will save writing about that for another post. So enough fluff, what is Hoppy?

Hoppy is a service that reroutes network packets destined for a specific IP address directly to your device. That device may be in your house, your car, or the coffee shop, it doesn't matter. Your device essentially owns an IP address range, and isn't tied down to a specific location.

To ELI5, Hoppy is like a co-op for people who want to own a small amount of IP address range. This is tricky because on their own, network packets are very primitive; they follow a fixed route to their destination IP address, and if you want to announce to the world to use a different route, it takes a long time before everybody else agrees to. And for the deathblow, IP addresses can only be managed and purchased as a grouping of 256 IP addresses, meaning if someone wants to own just 1 or 2 IP addresses, it becomes economically unviable. Hoppy acts like a distributor, accepting packets for IP addresses in groupings of 256 or more at a time, then redistributing smaller ranges to our users using a VPN protocol called WireGuard. It's named Hoppy because we provide that final "hop" 🐇 before the packets reach your device.

Being the astute reader that you are, you may be asking what problems does Hoppy solve, or better yet what inspired it. After all, not everybody has a burning desire to get IP address space. At its core, Hoppy attempts to solve the difficulty of allowing others to connect to your device. This could be someone who wants to show off their local web project to their friend, or a user who needs to SSH into their home server when they are abroad.

However, the inspiration is a lot more interesting, and arose from my self-hosting journey, where I document creating my own server for email, calendar, contacts, etc. and deactivating my iCloud account. I highlight privacy issues and unethical behavior in my rationale to self-hosting, but it's also becoming clear that we need to take physical ownership over our data, and acknowledge the risks of getting locked out by the largest internet companies. With powerful computers the size of a credit card and fast home internet, I believe now is the best time to unplug yourself from the cloud.

However, like any exciting story, there is an antagonist to this plan: the ISP. Unfortunately, almost all Internet Service Providers are horrible and seem to be stuck in the year 1995. Here is a classic example of Oligopolistic ISP Syndrome from Bell Canada, in the year 2020:


Note the extremely high price for a simple feature of having an IP address that doesn't change. Not only that, but Bell requires you to upgrade to their expensive business internet connection before you can even buy this addon. Static IP addresses are very helpful when hosting your own services at home, however the price and unavailability of this feature means people have to use bandaid solutions like DDNS clients to get around this. Furthermore, ISPs often block ports needed for running your own services, especially port 25. They are known to hijack DNS packets, or inject ads, and with the weak net neutrality rules in the US, they are now allowed to slow down your packets to a competitor they don't like. All these issues make self-hosting more and more difficult. However, it gets worse...

Enter the horrid creation that is Carrier Grade NAT.

So it turns out that IPv4 space is getting harder to acquire and a lot more expensive, largely due to cloud services such as AWS scooping up billions of dollars worth of IPv4 addresses. Because of this phenomenon, ISPs now have a financial incentive to skimp on IP address space, which resulted in an evil technology called CGNAT. If your ISP uses CGNAT, you don't even get a real IPv4 address, but a fake IPv4 address, effectively disabling you from doing any self-hosting from home. An overly optimistic article from 2011 assumed that ISPs would use CGNAT as a temporary solution before finally implementing IPv6, which would alleviate this issue. What the author didn't know is that getting ISPs to migrate to IPv6 is a difficult and almost futile task. The fact that some ISPs view CGNAT as a permanent solution means some users will be unable to self-host any services.

As mentioned earlier, Hoppy is here to save the day, providing you with unrestricted, static IPv4 and IPv6 (yes we joined the cult) addresses, thus allowing you to circumvent ISPs with all their filtering, hijacking and NAT. Unfiltered and unpasteurized packets allow you to experience the internet in its most free form. Finally here is a screenshot of our management page:


At Hoppy, we believe that by providing better access to the Internet, we are sustaining the openness and freedoms that created these technologies. We are not satisfied with the current state of ISPs, and so we use this opportunity to not only allow people to easily self-host services, but to encourage IPv6 adoption and achieve better privacy. We hope that people will find interesting use cases for our services.

Personally, I have gone through an incredible journey from setting up my first mail server in 2017 to being able to start a company like this, and I would like to truly thank my co-founder for his work and guidance on this project. As for the release date, we are both excited to be sending signup links to our beta testers in the next few days!

Update: Hoppy Network signups are now open to all users!