Introducing IPNS-Link
Tags: webhosting, ipfs, domainless, uncensorable
Published: 2021-11-18 12:41:31

You have just built your first website or web-app, from the ground up. You configure and launch a local server - Apache, Nginx or Caddy - and point your browser to `http://localhost`. And, IT WORKS! Your dream is right in front of you, a concept realized - a special moment that would remain with you forever! Awesome. 

Now, what's next? Of course, you want to share it with everybody out there, and you want it to last. So, first of all, you'd need a machine that would stay online round the clock. Your Raspberry Pi is perfect for the job. Great. Now, you'd need ... whoops, first roadblock: your ISP doesn't assign you a public IP address, i.e. your server is not reachable from the internet. No problem, you'd just use any free service such as [ngrok](https://ngrok.com), [localhost.run](https://localhost.run) or [uplink](https://getuplink.de). These services expose your site to the internet and provide an https-URL to access it. Everything works! Congrats.

After your initial joy settles down, you realize the catch with these free plans. From time to time, you have to restart the exposure process and every time you do that the URL changes, the old URL becoming invalid. Your website has an ever-changing address on the internet. What good is that? Even if you were to pay them for a static URL, what would happen if and when the service shuts down?

But, what other options do you have? You're a student, web-dev has just been an adventure and you can't really afford to get into all the hassles and costs involved in conventional web-hosting with your meagre pocket money and limited time. Are you really going to purchase a public IP or move your site to a premium hosting service? Are you prepared to spend on a domain name year after year and manage SSL setup for https?

Despair not. [IPNS-Link](https://github.com/ipns-link/specs) gives you the following alternative.

![Illustration](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dlrbxxfsyt7u3kidp8mp.jpg)
> *IPNS-Link: Bob and Grace access Alice's localhost and a blocked website using a private and public gateway respectively.*

1. Install and run a free and open-source app on your local server (the Pi in your case), following [this](https://github.com/ipns-link/ipns-link/blob/main/tutorials/QuickStart.md) easy tutorial.
2. The app would give you a long [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier). You can make a [QR code](https://www.the-qrcode-generator.com/) out of it for convenience.
3. Send the UUID or QR code to all your friends and community.
4. To access your site anytime, all they need to do is go to *any* public IPNS-Link-Gateway, such as [ipns.live](https://www.ipns.live) and put your UUID in there. Or, better yet, they can [run their own private gateway locally on their computer](https://github.com/ipns-link/ipns-link-gateway#self-hosting), and access your site directly, without any middle-man.

**That's it!** You distribute that UUID to your audience once and for all, and you're set. Even if you later port your site to a VPS or cloud hosting provider (e.g. AWS EC2 free-tier), your site can still be accessed using the same UUID. Even if you later get a domain name for your site and make it accessible from the main-stream web, the IPNS-Link exposure would continue to provide your users with decentralized routes to your site. This helps in case your domain is ever [taken down or blocked](https://ipns-link.medium.com/introducing-ipns-link-36a14c87a4aa).

IPNS-Link uses the InterPlanetary File System (IPFS) network behind the scenes. [IPNS](https://docs.ipfs.io/concepts/ipns/), or Interplanetary Name System, is a subsystem built atop IPFS. Curious? Start [here](https://ipfs.io) and work your way up to the [IPNS-Link specs](https://github.com/ipns-link/specs).

Like what IPNS-Link's doing? Spread the word ([here](https://ipns-link.medium.com/)'s another blog). Usher in a micro-hosting movement for the decentralized web to learn, experiment, tinker, showcase and grow, worry-free. [Join the community](https://github.com/ipns-link/contribute#join-the-community) and be a part. [Contribute](https://github.com/ipns-link/contribute) any way you can.

***Happy Hosting!***