ABCsteps lesson path

Milestone: Your App Is Online

Review the build, container, and deployment path, then verify the app is reachable outside your local machine. Build one artifact, keep one review trail, and make the work easy to inspect later.

Lesson
10
Time
45 min
Access
public lesson

Learning objective

Verify deployment readiness instead of assuming the app is online.

Lab outcome

Complete the deployment checklist and document the result.

Module milestone

Containerize and share a working app through a verified deployment path.

Lesson proof workflow

Read, build, then review the evidence.

  1. Cloudflare hero workflow iconStep 1ReadStart with Deployment checklist before touching tools.
  2. Docker hero workflow iconStep 2BuildBuild toward: Complete the deployment checklist and document the result.
  3. GitHub hero workflow iconStep 3ReviewReview the evidence using Runtime packaging.

Toolchain

Deployment is only real after reachability and behavior are verified.

These are the practical surfaces used in this lesson. Learn the habit first, then connect it to the wider engineering ecosystem.

Cloudflare iconCloudflareReachability

Check whether the app can be opened from outside localhost.

Docker iconDockerPackaging

Keep the runtime path repeatable.

GitHub iconGitHubEvidence

Document what was shipped and how to run it.

Proof of work

Leave one inspectable trail from this lesson.

The useful output is not a passive note. It is a small artifact another person can inspect: a working file, a command result, a commit, a screenshot, a README note, or a demo link.

Lesson lab: Complete the deployment checklist and document the result.

Tool and platform logos are ecosystem references only: no affiliation, endorsement, interview access, hiring promise, salary promise, or placement guarantee.

Cloudflare proof icon

Build

Produce the artifact

Complete the lab and keep the result visible: Complete the deployment checklist and document the result.

Docker proof icon

Record

Save review evidence

Capture what changed, what broke, and how Deployment checklist became clearer through the work.

GitHub proof icon

Explain

Write the vocabulary

Use your own words for Public demo proof and Runtime packaging; this is what makes the lesson inspectable later.

Skills companies recognize

Translate the lesson into inspectable work language.

This lesson turns one small lab into the language a learner can use in a README, demo note, or technical conversation. The point is not to collect logos; the point is to explain work clearly enough that another engineer can inspect it.

Where this skill appears

Release discipline separates a local experiment from work another person can open, test, and discuss.

Platform teamsProduct engineeringQA and release teams

Ecosystem references

AWS skill ecosystem logoGoogle Cloud skill ecosystem logoMicrosoft skill ecosystem logoGitHub skill ecosystem logoCloudflare skill ecosystem logoOpenAI skill ecosystem logoGoogle skill ecosystem logo

Platform and company logos are ecosystem references only: no affiliation, endorsement, interview access, hiring preference, salary outcome, or placement guarantee.

Cloudflare skill proof icon

README line

Name the artifact

Lab proof: Complete the deployment checklist and document the result. Connect it to Deployment checklist so the result reads like work, not a passive note.

Docker skill proof icon

Review line

Explain the stack

Use Cloudflare, Docker, GitHub to explain Public demo proof and what changed between the first attempt and the inspected result.

GitHub skill proof icon

Conversation line

Answer with evidence

If a team asks about Runtime packaging, use this proof line: Show the public URL, the verification checklist, and the short release note that proves what shipped.

Proof translation

Cloudflare proof translation icon

Skill signal

Deployment checklist is the market word. The lesson makes it visible through a small working artifact.

Docker proof translation icon

Proof artifact

The inspectable artifact is: Complete the deployment checklist and document the result.

GitHub proof translation icon

Interview answer

Use Public demo proof and Runtime packaging to explain what changed, what failed, and how you verified it.

Paid guidance

Read publicly. Upgrade when guidance will help you finish.

This lesson remains part of the public written syllabus. Paid help is online-only and human-led: video walkthroughs as they roll out, live class context, WhatsApp Q&A, and project review around the same work.

No account wall, automated checkout, or placement promise is introduced here. Enrollment stays human-led by WhatsApp or call, and the useful proof remains the learner's own artifact.

Cloudflare paid guidance icon

Public

Written lesson stays open

Read the prepare and review material for lesson 10 on the public site before buying anything.

Docker paid guidance icon

Recorded

Recorded and live guidance clarify the work

Paid guidance can add founder-led video walkthroughs as they roll out and live online class context; the teaching explains the work, but does not replace the written lesson.

GitHub paid guidance icon

Human

Questions use real context

When stuck, useful guidance starts from the route, error, screenshot, repo fragment, and the lab artifact: Complete the deployment checklist and document the result.

Phase 1 · Briefing

Lesson briefing

Before You Study (5 mins)

Lesson focus: Today is a milestone — not a new technology, but a verification ritual. Module B taught four things: containerize (Lesson 06), expose (Lesson 07), structure data (Lesson 08), call APIs (Lesson 09). Today you compose those four into one verifiable outcome: your Snake game runs in a container, is reachable from any phone in the world via a Cloudflare tunnel, reads its settings from JSON, and calls a real public API for live data. If all four are working, you have built and deployed a complete cloud-aware application — the same foundational stack a senior engineer ships when they ship anything to the public internet.

What you should have ready:

  • Lesson 06's Docker image of your game (you can rebuild from your Dockerfile)
  • Lesson 07's cloudflared install
  • Lesson 08's config.json driving your game settings
  • Lesson 09's fetch() call to a public API (quote, weather, joke — whatever you picked)
  • About 60 minutes — half is verification, half is making the artefact share-worthy
  • A friend or family member you can text the link to — the social verification matters

The Concept

Software-engineering milestones are not ceremonies. They are verification rituals — moments where you stop and ask "does the system actually work, end-to-end, the way I think it does?" Most learners skip this step and discover months later that something they assumed worked actually didn't. Senior engineers build verification rituals into their cadence: at the end of every meaningful sprint, every release, every refactor, you check the full path from input to output and confirm reality matches expectation.

Today's milestone has a specific shape. Module B was four lessons; the milestone tests the composition of those four lessons:

text
   ┌────────────┐    ┌────────────┐    ┌──────────────┐    ┌──────────────┐
   │  Lesson 06 │    │  Lesson 07 │    │   Lesson 08  │    │   Lesson 09  │
   │  Docker    │    │  Tunnel    │    │   JSON       │    │   APIs       │
   └─────┬──────┘    └─────┬──────┘    └──────┬───────┘    └──────┬───────┘
         │                 │                  │                   │
         ▼                 ▼                  ▼                   ▼
   container          public URL        config-driven         live data
   runs anywhere      reachable          settings              from internet
                      from world
                                  │
                                  ▼
                  ╔═══════════════════════════════════╗
                  ║   Milestone deliverable           ║
                  ║   A real link, in a real chat,    ║
                  ║   to a real friend, who plays a   ║
                  ║   real game running on your laptop║
                  ║   that pulls real data from a     ║
                  ║   real public API.                ║
                  ╚═══════════════════════════════════╝

Two of the four can fail silently in ways you won't notice unless you check:

  • The tunnel can be running but the container can be stopped — the URL returns 502 Bad Gateway. You only see this when you try the URL from outside your network.
  • The API call can be running on localhost and failing on the deployed URL because of CORS, missing API keys in the deployed environment, or a different network path. The same code runs differently in two contexts.

The way to catch these is always test the full path on a different network than your development machine. Today's verification routine — load the URL on mobile data, not WiFi — is the rehearsal for every production deploy you'll ever ship. Senior engineers test on a network they can't accidentally trust.

The other thing milestones do is make the work visible. The work you've done over the last five lessons exists, mostly, on your laptop and in your head. The milestone is the moment you turn it into a shareable artefact — a URL, a GitHub link, a screenshot — that someone else can experience without your help. This is also where the portfolio starts to grow.

Quick Concepts

TermSimple Meaning
MilestoneA verification ritual at the end of a phase — does the whole system work?
End-to-end testVerify the full path from user input to system output, on a real environment
CORSCross-Origin Resource Sharing — the browser security rule that sometimes blocks API calls from different domains
502 Bad GatewayThe reverse proxy is up, but the origin behind it is unreachable (your container died)
Portfolio artefactA piece of your work that exists outside your laptop and can be shared with one URL

What We Will Build

By the end of this lesson, you will have done these specific things:

  1. Verified the Docker container runs: docker ps shows your game's container with status Up X seconds. If not, restart with docker run -d --name snake -p 3000:3000 snake-game.
  2. Verified the tunnel is up: cloudflared tunnel --url http://localhost:3000 is running in a separate terminal, showing a *.trycloudflare.com URL.
  3. Verified locally: load http://localhost:3000 in your browser. Game loads. The quote/weather/joke from your API call appears.
  4. Verified externally: load the *.trycloudflare.com URL on your phone, with WiFi turned off (mobile data only). Game loads. The API call still appears with live data.
  5. Verified config is wired: change a value in config.json (e.g., speed: 25), reload the page on your phone — observe the change live. (You may need to rebuild the Docker image if config.json is baked in; or mount it as a volume — both options are good practice.)
  6. Verified API failure handling: stop your computer's WiFi for ten seconds while the game is loading on your phone. The game should still load (with the fallback message you wrote in Lesson 09's try/catch), not crash.
  7. Sent the URL to one friend — through WhatsApp, Slack, email, whatever. Got back confirmation that it loaded for them. Asked them what they thought.
  8. Captured a screenshot or short screen recording of the game running. This becomes a portfolio artefact you'll attach when you publish to GitHub in Module C, or when you eventually apply to a role.
  9. Wrote a 100-word summary of what you built. Save it somewhere — MILESTONE.md in your repo is a good place. Future you, in three months, will not remember the details. Past-you should leave them written down.

Think About

Before studying, consider:

  1. The first time anyone outside your home loads your game, something will surprise you. Maybe the API call fails. Maybe the styling is broken on mobile. Maybe the URL is too long to remember. Each surprise is an actual lesson — write it down.
  2. Your laptop is currently the production server for this app. What happens when you close the lid? When the wifi disconnects? When you restart? Module C and beyond will graduate you to real hosting where the server stays up. But the disciplines you learn this week — checking the URL, testing on different networks, handling failure gracefully — are the disciplines that don't change.

By the End

After this lesson, you'll:

  • ✅ Have verified all four Module B technologies are composing correctly
  • ✅ Have proof — your URL, opened by someone outside your house, working
  • ✅ Have at least one friend's confirmation that they could play the game
  • ✅ Have a screenshot or screen recording as a portfolio artefact
  • ✅ Have a 100-word MILESTONE.md summary of what was built
  • ✅ Be ready for Module C — Full-Stack Systems, where the server moves out of your basement

Module B in three lines: you containerized, you tunneled, you connected. Tomorrow we go full-stack. 🎊