DEV Community

Cover image for Share your Web Projects Easily
Pratik Singh
Pratik Singh

Posted on • Updated on

Share your Web Projects Easily

This article is about sharing your localhost as a link that anyone can access. We will achieve this using ngrok

what-is-localhost.png

As a Web Developer, whatever you work on has to be shared as a link that others can access. Irrespective of whether you are a Front-End or a Back-End dev, a MERN Stack or a LAMP Stack dev, I am assuming you know the importance of https://localhost/.

What if I told you that the work on your localhost can be shared with others in a few simple steps?🤯

There are several methods of deploying your project on a server as a shareable link.
But the problem with this process that you have to-

  • Commit your code and Push it to an external server before anyone can see your progress.
  • If your organisation follows DevOps Pipelines. Your colleague will only be able to test your code after the next build is ready.(Assuming there is a case of "It works on my machine")
  • As a #CodeNewbie the process is even more tiresome as you have to learn all about git, GitHub, Heroku, AWS, etc.

The answer to all of these Problems is sharing your work without committing the code and pushing it to an external server. This is possible by tunneling your localhost on the internet using ngrok

Ngrok exposes local servers behind NATs and firewalls to the public internet over secure tunnels.

> Lets get started

  • Download from here
  • Unzip the downloaded folder
  • Run the ngrok.exe
  • Log in to your account and head to the Dashboard
  • In the .exe file Command

    ./ngrok authtoken Your_Authentication_Key

  • Now Fire it up

    ./ngrok http 3000

    if your project is hosted on http://localhost:3000/

  • The terminal must look like this now-
    8d090eb7-d978-4824-8d29-ffc02751a359.jpg

  • This link you see can be shared with others to see your work.

So this link can be accessed by anyone and will work as long as you run the program on your computer.

> Why should you use ngrok?

They have very good documentation, easy to use, and have a lot of uses that can help you with many projects that you might work on.

Screenshot 2020-12-24 142724.png

> Use Case

I have been a Web Developer both Front-end and Back-end. I currently work in DevOps. This is a major gap that I have seen.
There is always a case where, "It works on my machine ¯_(ツ)_/¯ ". Yes, DevOps solves this problem majorly, but for minor changes triggering the CI/CD pipelines seems like a waste of resource to me.

Here are some scenarios, I have seen this to be helpful:

  • Front end developers wanna present their work to clients/managers before committing the work.
  • Students in a Hackathon can use it share their project easily. Not all student have credit cards to signup for AWS or similar cloud services.
  • Back-end developer has a Server with a local database. They use it make sure with the front-end team can correctly consume the data.(Did at work!)
  • SSH to a Raspberry Pi
  • Test and build a Web-hook integrations
  • Applications with web-sockets, those which have to be running on at least two ends to be tested.

> Conclusion

This method seems like a good bridge to help out both front-end and back-end developers.
There can be doubts on it's security and privacy concerns. And Yes, those are point of concern. But the platform is still building. There are many BETA features and also a few paid services.

Overall, an easy and short alternative to deploying your work on the internet.

Top comments (23)

Collapse
 
bias profile image
Tobias Nickel

once I implemented my own version for a localhost proxy. custom localtunnel.

When doing this, I definetly found the value in using it just as a service. i think it is great for exposing my raspberry pi.

Collapse
 
destro_mas profile image
Shahjada Talukdar

I made a video on ngrok few days back-

Collapse
 
kitarp29 profile image
Pratik Singh

Now that's Awesome.
Thanks for the video and reading my article

Collapse
 
ahmedghazi profile image
Ahmed

been using it for a while. Great to fix things live with clients.
But was hoping the livereload would work. Hope it will come in the next iteration.

Collapse
 
kitarp29 profile image
Pratik Singh

The next update hopefully covers this issue🤞

Collapse
 
rakesh profile image
Rakesh

didn't know this...thanks for sharing pratik

Collapse
 
kitarp29 profile image
Pratik Singh

My pleasure Rakesh.
Thanks for reading my article.
If you found it helpful do share it so that it might help others as well

Collapse
 
rakesh profile image
Rakesh

sure

Collapse
 
jcubic profile image
Jakub T. Jankiewicz

Thanks for reminding about ngrok.

Collapse
 
kitarp29 profile image
Pratik Singh

My Pleasure.
Thanks for reading my artcle

Collapse
 
cdthomp1 profile image
Cameron Thompson

Can’t wait to try this!

Collapse
 
kitarp29 profile image
Pratik Singh

Yeah 🤘

Collapse
 
kzzm profile image
Kris M.

Thank you. A nice alternative to spinning up something on Heroku (or similar).

Collapse
 
kitarp29 profile image
Pratik Singh

My pleasure😊
Thank you for reading my article

Collapse
 
koas profile image
Koas

ngrok it's a great piece of software, I've been using it a lot recently while developing a Telegram bot, it allows you to get the Telegram messages on your localhost.

Collapse
 
kitarp29 profile image
Pratik Singh

I agree the possibilities are great.
I was planning to use it on a Raspberry pi Once

Collapse
 
sahamalam profile image
Saham Alam

Great tool.

Collapse
 
kitarp29 profile image
Pratik Singh

I know Right🤯👏

Collapse
 
somos404 profile image
Somos 404

fuaaaaaaaaaaaa me salvaste de un problemazo que estaba teniendo con una pasarela de pagos. Muchas gracias!

Collapse
 
kitarp29 profile image
Pratik Singh

El gusto es mio.
Gracias por leer mi artículo

Collapse
 
aadswebdesign profile image
Aad Pouw • Edited

Instead of 'localhost' can use this service for 'mywebsite.local' too?

Some comments may only be visible to logged-in visitors. Sign in to view all comments.