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.
- Step 1ReadStart with Deployment checklist before touching tools.
- Step 2BuildBuild toward: Complete the deployment checklist and document the result.
- Step 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.
Check whether the app can be opened from outside localhost.
Keep the runtime path repeatable.
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.
Build
Produce the artifact
Complete the lab and keep the result visible: Complete the deployment checklist and document the result.
Record
Save review evidence
Capture what changed, what broke, and how Deployment checklist became clearer through the work.
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.
Ecosystem references
Platform and company logos are ecosystem references only: no affiliation, endorsement, interview access, hiring preference, salary outcome, or placement guarantee.
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.
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.
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
Skill signal
Deployment checklist is the market word. The lesson makes it visible through a small working artifact.
Proof artifact
The inspectable artifact is: Complete the deployment checklist and document the result.
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.
Public
Written lesson stays open
Read the prepare and review material for lesson 10 on the public site before buying anything.
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.
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
cloudflaredinstall - Lesson 08's
config.jsondriving 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:
┌────────────┐ ┌────────────┐ ┌──────────────┐ ┌──────────────┐
│ 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
| Term | Simple Meaning |
|---|---|
| Milestone | A verification ritual at the end of a phase — does the whole system work? |
| End-to-end test | Verify the full path from user input to system output, on a real environment |
| CORS | Cross-Origin Resource Sharing — the browser security rule that sometimes blocks API calls from different domains |
| 502 Bad Gateway | The reverse proxy is up, but the origin behind it is unreachable (your container died) |
| Portfolio artefact | A 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:
- Verified the Docker container runs:
docker psshows your game's container with statusUp X seconds. If not, restart withdocker run -d --name snake -p 3000:3000 snake-game. - Verified the tunnel is up:
cloudflared tunnel --url http://localhost:3000is running in a separate terminal, showing a*.trycloudflare.comURL. - Verified locally: load
http://localhost:3000in your browser. Game loads. The quote/weather/joke from your API call appears. - Verified externally: load the
*.trycloudflare.comURL on your phone, with WiFi turned off (mobile data only). Game loads. The API call still appears with live data. - 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 ifconfig.jsonis baked in; or mount it as a volume — both options are good practice.) - 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.
- Sent the URL to one friend — through WhatsApp, Slack, email, whatever. Got back confirmation that it loaded for them. Asked them what they thought.
- 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.
- Wrote a 100-word summary of what you built. Save it somewhere —
MILESTONE.mdin 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:
- 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.
- 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.mdsummary 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. 🎊