DEV Community

Cover image for How I Escaped "Tutorial Hell" (And Put My First Real App on the Internet)
Zakariyau Mukhtar
Zakariyau Mukhtar

Posted on

How I Escaped "Tutorial Hell" (And Put My First Real App on the Internet)

Have you ever watched hours of coding tutorials, felt like you learned a lot, but still couldn't build a real project from scratch?

That is called "tutorial hell." As someone diving into Cloud and DevOps engineering, I was stuck there. To break out, I realized I needed to stop watching videos and start building. Instead of creating a fake practice project, I took a real website my brother built and challenged myself to put it live on the internet using professional tools.

Here is exactly how I did it, without the heavy tech jargon:

1. Packing It Up in a "Magic Box":
Usually, a website that works perfectly on one computer might completely break on another. To fix this, I used a tool called Docker. Think of Docker as a magic shipping container. I packed my brother's website, along with everything it needs to run, inside this invisible box. Now, no matter whose computer or cloud server opens that box, the website works perfectly every single time.

 A picture of your multi-stage Dockerfile

2. Fixing the "Refresh" Bug:
When I first tested the box on my laptop, the site loaded beautifully. But I noticed a bug: if I clicked on a different page and hit "refresh," the whole site crashed and gave me a 404 Not Found error.

The web server was getting confused and looking for files that didn't exist. I had to write a custom rule basically giving the server a map so it knew how to route lost visitors back to the right place. Bug squashed!

 A picture of your custom Nginx configuration or the initial 404 error

3. Automating the Boring Stuff:
I didn't want to manually repackage and upload the website every single time my brother wanted to change a button color. So, I wrote an automation script using GitHub Actions.

Now, I have a "robot" working for me in the cloud. The second my brother saves new code, this robot wakes up, tests the code to make sure it isn't broken, packages it into a new Docker box, and securely gets it ready for the internet.

 A picture of your GitHub Actions pipeline with the green checkmark

4. The Trap of Over-Engineering:
This is where I almost made a huge mistake. When it was time to put the app on the internet, the idea of using Kubernetes came up. Kubernetes is a massive, highly complex system used by giant tech companies to keep thousands of servers running.

I took a step back and asked: "Isn't this total overkill for a simple web app?" It absolutely was. Using Kubernetes for this would be like buying a commercial airplane just to go to the grocery store. We scrapped that idea and went with a simple, free cloud hosting platform called Render instead.

A picture of your Render dashboard showing the green

The Big Takeaway
This project taught me one of the most important lessons in tech: a good engineer doesn't just use the fanciest, most complex buzzwords. They use the right, simple tool for the exact job in front of them.

If you are just starting your tech career, stop watching videos. Grab a project, break it, figure out how to fix it and put it on the internet. There is no substitute for building!

DevOps #TechJourney #LearnInPublic #CloudComputing

Top comments (0)