Back to blog
Sep 06, 2026
6 min read

Launch is the start line, not the finish

Getting an app online is the easy half. The final stop on the roadmap is everything that keeps it standing afterwards: deploying, testing, and the maintenance nobody warns you about.

This is the stop on my roadmap where the app finally goes live, and it is the one the tutorials skip. They get your app working on your laptop and stop, as if that is the finish. It is not. Getting it online, and keeping it healthy once real people use it, is a whole half of the job, and it is the half the blog is named for: the fundamentals, maintenance and security that decide whether a thing lasts. So this final post is longer, and it comes in two acts.

Cooking at home versus running a restaurant

Building an app on your laptop is cooking at home. It works, it tastes fine, nobody is checking. Putting it online is opening a restaurant: now strangers walk in, it has to be open at 2am, and an inspector can show up any day. The food did not change. Everything around it did.

The move from home to restaurant is two jobs. First, get the doors open (shipping). Second, keep the place running and passing inspection (staying alive). Almost nobody tells beginners that the second job is bigger than the first.

flowchart LR
  B[Built on your laptop] --> S[Ship it: get it online]
  S --> A[Keep it alive: watch, fix, update]
  A -->|forever| A

Act one: getting the doors open

Deployment just means putting your app on a computer the public can reach, at a real web address. You do not rent a bare server and wire it up by hand anymore. Beginner-friendly platforms connect to your GitHub and do the work: every time you push code, they rebuild and publish it automatically. That automatic push-to-live pipeline has a name, CI/CD (Continuous Integration and Continuous Deployment).

JobPopular toolsNote
Hosting (easy)Vercel, Netlify, Render, Railway, Fly.ioFree tiers, connect GitHub, auto-deploy
The big cloudAWS, Google Cloud, AzurePowerful and flexible, but heavy to learn
CI/CDGitHub Actions, GitLab CIFree for small projects; run tests then deploy

NOTE

You will hear “you must learn AWS”. Eventually, maybe. Not first. The big clouds (AWS, Google Cloud, Azure) can do anything, which is exactly why they overwhelm a beginner. A platform like Vercel or Render gets you online today; reach for the big cloud when you have a real need it answers, not before.

Two more words from this act, because they come up constantly:

  • Docker packages your app with everything it needs to run into a container, so it behaves the same on your laptop, a teammate’s machine, and the server. It kills the “but it works on my computer” problem. Kubernetes manages many containers at once, and is firmly a “later, at scale” concern.
  • A domain is your human-readable address (yoursite.com) that you point at your hosting.

Act two: keeping it alive

Here is the part I underestimated. Once real people use your app, three things become your actual job, and none of them is “writing new features”.

Know when it breaks, before your users tell you. In development you see errors in your terminal. In production, an error happens on a stranger’s screen, far away, and you hear nothing unless you set up error tracking: a tool that catches every crash and sends you the details, the stack trace, and what the user did just before. This is the single highest-value thing to add after launch.

Know when it goes down. An uptime monitor pings your site every minute from outside and alerts you the moment it stops answering, so you are not relying on a customer to notice.

Keep the foundations from rotting. The code you borrowed (all those npm packages) keeps getting security fixes, and staying on old versions is how apps get hacked. Automated tools watch your dependencies and open updates for you. Add regular backups of your database, and a glance at performance, and that is maintenance.

JobPopular toolsNote
Error trackingSentry, RollbarSentry has a generous free tier, the common first pick
Uptime monitoringUptimeRobot, Better StackFree tiers; external checks catch real outages
TestingVitest, Jest (unit); Playwright, Cypress (end to end)All free/OSS; catch breaks before users do
Dependency securityDependabot, Snyk, npm auditDependabot is free on GitHub, auto-opens update PRs

IMPORTANT

Testing belongs to both acts. Before shipping, tests catch a break you would otherwise send to users. After shipping, a test suite run automatically on every push (that is the CI part of CI/CD) is what lets you change code without fear. You do not need 100 percent coverage as a beginner. You need a few tests on the parts that would hurt most if they broke.

CAUTION

The most common way small apps get compromised is not a clever hacker, it is an unpatched dependency, months out of date, with a known hole anyone can look up. Turn on automated dependency updates on day one. It is free and nearly effortless, and it closes the door attackers use most.

Why maintenance is the real skill, and the whole point

Across its stops this roadmap goes from what happens when you press Enter to what happens months after launch. If one idea ties it together, it is this: building is a moment, keeping it alive is the job. Vibe coding and AI can get you to a working app faster than ever, and that is genuinely great. But the app that is still standing a year later is the one whose owner understood the fundamentals underneath it, tested it, watched it, and kept it patched. That is not the glamorous part. It is the part that lasts, and it is the reason this whole blog exists.

Anyone can open the restaurant. Staying open is the craft.

Sources

Read next