How to Build a Website
Sign in
180 min · Hands-on workshop
How to Build a Website
Three hours. Zero fluff. By the end of class, you'll have a real website — with your name on it — live on the internet. Anyone in the world can visit it. Let's crack open the black box.
Block 1
What you actually see on a website — HTML, CSS, JS, DOM, DevTools
Block 2
The half you can't see — servers, APIs, frontend vs. backend
Block 3
From code to the world — Git, GitHub, Cloudflare Pages, deploy your own site

Adventure 8

Teacher's Intro
How This Class Works
Core metaphor: We open a deployed website in reverse — first what's in front of you (Block 1), then what's behind it on the server (Block 2), finally how code becomes a URL (Block 3).
Main Tool All Class
The browser's built-in DevTools. Every concept gets demonstrated live with inspect.
Three Anchor Questions
1. "Is this thing seen by the browser, or by the server?"
2. "Your AI Agent did this automatically — but THIS is what it actually did."
3. "If you don't know — open inspect and look."

Specimen site: https://ai.ethanxi.com/en/class-demos/website/ — keep this tab open all class.

Adventure 8

Pre-class · (5 min before start)
Get Everyone Online
Teacher does
  • Open specimen URL: https://ai.ethanxi.com/en/class-demos/website/
  • Open 5 tabs in advance: specimen URL, ai.ethanxi.com GitHub repo, YouTube, Cloudflare Pages dashboard, GitHub.com
Students do
  • Laptop + mouse
  • Logged into GitHub and Cloudflare in browser
  • Have your AI-built site URL and GitHub repo link ready
Roll Call
Everyone raise a hand — can you log into CF Pages? Can you log into GitHub? Fix any failures NOW, not in Block 3.

Adventure 8

Block 1 · 50 min
What You Actually See on a Website
By the end of Block 1, you can explain HTML / CSS / JS in your own words, know what DOM is, and can use inspect on any website.
01
1.1 Hook (0–5 min)
Crack open YouTube with DevTools
02
1.2 Elements Panel (5–15 min)
The DOM tree — nodes, branches, painting
03
1.3 View Source vs Elements (15–28 min)
Original HTML vs. live DOM tree
04
1.4 Three Layers (28–42 min)
HTML / CSS / JS hands-on
05
1.5 Diagram + Exercise (42–50 min)
Whiteboard diagram + inspect their own site

Adventure 8

1.1 · Hook · (0–5 min)
Today We're Going to Crack Open a Black Box
"You all use YouTube, TikTok, Instagram every day. But have you ever wondered what they're actually MADE of? Today we're going to open them up. Every computer has this tool — it's called DevTools. Free with every browser."
Demo
  1. Open YouTube homepage
  1. Right-click → Inspect (or F12)
  1. Take up half the screen with DevTools
Ask the class
  • "What do you see in this panel?" → expected: lots of code, weird text
  • "Where does this stuff come from?" → don't push for the right answer; lead into "from a server"
Bridge
"Today we won't dissect YouTube directly — too complex. I made a really simple website to teach with."

Adventure 8

1.2 · Elements Panel · (5–15 min)
The DOM Tree
"Look — it's a tree. At the top is html. Two branches: head (invisible metadata) and body (what you see). Going down: every section, every button, every image — they're all nodes on this tree."
Demo
  1. Switch to specimen tab
  1. F12 → Elements tab
  1. Expand <html> → <body> → <header> → <h1> → text
  1. Hover each node — students see the matching part of the page light up

"A 'node' is just one piece on the tree."
Ask the class
  • "If I change a <h1> text in Elements, does the page change?" → try it live — yes!
  • "Why did it change?" → because the browser paints from the tree — tree changed → page changed

"Here's what the browser does: it gets a string of HTML text → builds this tree in memory → paints the page based on the tree."

Adventure 8

📘 Concept Card
DOM (Document Object Model)

DOM = the tree the browser builds in memory after reading the HTML text.
HTML
The blueprint — the original text file
DOM
The house, already built — a live tree in the browser's memory
The Page You See
Painted from the tree — not directly from the HTML file
JavaScript
Can modify this tree — and the page updates immediately

Adventure 8

📘 Concept Card
DevTools

DevTools = the browser's built-in "inside the machine" panel. Hit F12 on any website.
Today we use 3 of its 7 tabs:
Elements
See the DOM tree — and edit it live
Console
Run JS code directly / see errors
Network
See every request the page sends out

Adventure 8

1.3 · View Source vs Elements · (15–28 min)
Frozen Recipe vs. Live Dish
"See? I clicked the button, the page changed, the tree in Elements changed. But the text in View Source — didn't move."
Demo
  1. On specimen, Ctrl+U → View Source. The "Quote of the Day" card shows <p>Click the button below to load...</p>
  1. Close View Source, open Elements
  1. Click the "Quote of the Day" button → a quote appears
  1. In Elements, expand .quote-card → the <p> content changed
  1. Re-open View Source → still says the original text — unchanged
Restaurant Analogy

View Source = the recipe the kitchen received.
Elements = the dish on the table right now. If the chef adds garnish (= JavaScript), what's on the table doesn't match the recipe anymore.
Ask the class
"On YouTube, would Ctrl+U HTML and Elements look the same?" → No — YouTube is a SPA (Single Page App)

Adventure 8

📘 Concept Card
View Source vs Elements

View Source (Ctrl+U)
Elements (F12)
Shows
Original HTML the server sent
Current DOM tree
Set when
The page first loads
Live — updates with every JS change
Does it change?
Never
Yes, in real time
Shortcut
Ctrl+U
F12

Adventure 8

📘 Concept Card
HTML / CSS / JS

Every web page has three kinds of files, each with one job.
HTML
Structure — what content is on the page
Analogy: the skeleton (where walls, doors, windows go)
CSS
Style — how that content looks
Analogy: the decoration (paint, furniture, lights)
JS
Behavior — what happens when users interact
Analogy: the smart-home (flip switch → light on / clap → curtains open)

Adventure 8

1.4 · Three Layers Hands-On · (28–42 min)
Demo: Change Things Live
Follow along — do each step on the specimen site:
Step
Change what
Where
What you see
1
<h1> text → "I'm [your name]"
Elements, double-click
Heading changed
2
.card background → red
Elements → Styles
Card turns red
3
Console: document.body.style.zoom = 0.5
Console tab
Page shrinks to half
4
Refresh (F5)
—
All changes vanish
"Refresh — and everything's gone. Because DevTools changed the in-memory DOM tree, not the source files on the server. Next block we'll go look at where those source files actually live."

Adventure 8

1.5 · Diagram #1 · (42–50 min)
The Full Picture: Browser to Server
Copy this diagram into your notes:
What you see on screen (browser paints it) ▲ │ browser paints │ DOM tree (in memory) ▲ │ browser reads + builds │ HTML + CSS + JS (text files) ▲ │ fetched via URL │ (the server)

Block 1 Takeaway: Website = HTML + CSS + JS + assets. Browser reads → builds DOM tree → paints page. DevTools shows you the tree and lets you change it temporarily.
Student Exercise (5 min)
Inspect your own AI-built site. Find: one <h1> node, one styled element, any JavaScript (inside <script>). Raise your hand when done!

Adventure 8

⏸ Break — 10 min
Stretch, grab water, keep your laptop open on the specimen site. We're going deeper next block.

Teacher: During break, check that all students are logged into both GitHub and Cloudflare. Fix auth issues before Block 3.

Adventure 8

Block 2 · 50 min
Static vs. Dynamic: The Half You Can't See
By the end of Block 2, you can explain frontend / backend / database, read the Network tab, and tell static and dynamic sites apart.
01
2.1 Recap + Hook (0–5 min)
Where did that quote come from?
02
2.2 Fetch a Quote (5–15 min)
Network tab — watch a live HTTP request
03
2.3 Real Dynamic Site (15–28 min)
YouTube Network tab comparison
04
2.4 Frontend / Backend / Database (28–35 min)
The three layers behind the curtain
05
2.5 Static vs Dynamic (35–43 min)
What kind of site is yours?
06
2.6 Hands-On (43–50 min)
Dissect your own site's Network tab

Adventure 8

2.1 · Recap + Hook · (0–5 min)
Where Did That Quote Come From?
"Last block we saw the surface — HTML/CSS/JS in the browser building the page. But think about this: the specimen has a 'Quote of the Day' button. Click it, a sentence appears — where did that sentence come from? It's not in the HTML, right?"
Demo
Ctrl+U on specimen again — confirm the quote text isn't anywhere in the HTML source. The HTML only says "Click the button below to load..."
Bridge

"Answer: from somewhere we can't see — a server. This block is all about that invisible somewhere."

Adventure 8

2.2 · Key Demo · (5–15 min)
Watch a Live HTTP Request
"The moment I clicked the button, the browser sent a letter out to that machine asking 'give me a quote'. The machine sent a letter back with a quote inside. The browser opened the letter and put the quote on the page. That two-way exchange? That's an HTTP request."
Demo
  1. Open specimen, open Network tab first (refresh once to clear)
  1. Click "Quote of the Day"
  1. New row appears in Network — pointing to dummyjson.com
  1. Click it: Request URL / Status: 200 / Response is JSON

Point out: Status 200 = "everything's fine, here's your data." That's the server saying yes.

Adventure 8

📘 Concept Card
Server

Server = a computer that stays on all the time, waiting for questions.
Your Laptop
Turns off → people can't reach you anymore
A Server
Never turns off — anyone in the world can ask it something at any time, 24/7

"Server" ≠ some mysterious supercomputer. It's just a regular computer — sometimes slower than your phone — sitting in a data center, plugged in 24/7, running a program that listens for questions.

Adventure 8

📘 Concept Card
API

API = "the menu of questions a backend will answer."
Example: dummyjson.com opens an API:
You ask ?c=i
→ It returns a famous quote
You ask ?c=a
→ It returns a love quote
You ask anything else
→ It doesn't answer. Not on the menu.

Adventure 8

📘 Concept Card
JSON

JSON = the data format frontend and backend agree on.
Looks like this:
{ "quote": "The only way to do great work is to love what you do.", "author": "Steve Jobs" }
Not code
It won't run or execute anything
Not a program
It's just data — like a filled-out form, but written with curly braces
Both sides read it
Browser and server both understand it perfectly

Adventure 8

📘 Concept Card
HTTP / Request / Response

HTTP = the rules browser and server use to talk to each other.
1
Request
Browser asks → "give me /quote"
Sent by the frontend
2
Response
Server replies → "here's {...JSON...}"
Sent by the backend

HTTPS is the encrypted version of HTTP. Same conversation, but with a lock 🔒

Adventure 8

2.3 · Real Dynamic Site · (15–28 min)
YouTube's Network Tab
"Every time you see a new video card pop up on YouTube — that's the browser asking the YouTube server: give me more videos. Server sends back JSON. Browser turns it into cards. Our specimen asks once. YouTube asks dozens of times per second. Same thing, just at scale."
Demo
  1. Open YouTube + Network tab
  1. Refresh once → 100+ requests appear in a flash
  1. Filter Fetch/XHR → only data requests
  1. Click any one, look at Response → it's JSON
  1. Scroll the homepage → new requests pop up live
Student Activity
Open Network on Instagram, Reddit, TikTok web, or Twitter.
Call out one request URL you see. 2–3 students share with the class.

Every request URL they spot is the browser "asking" some server for something.

Adventure 8

📘 Concept Card
Frontend / Backend / Database
Frontend
The part running in your browser (HTML/CSS/JS)
Also called: client
Backend
A program running on the server, handling logic and answering API requests
Also called: server-side
Database
Where the backend keeps stuff long-term — think of it as a filing cabinet. YouTube stores all video metadata in a database.

Adventure 8

2.4 · Full Chain Demo · (28–35 min)
How YouTube Serves You a Video
"YouTube serves you a video — the full chain runs: frontend (browser) asks backend (YouTube's server): give me 10 videos. Backend asks the database: which 10 are trending? Database returns the list → backend packages it as JSON → frontend draws cards."
Database Query
Backend API
Frontend Request
"Your AI-built site is frontend-only — your AI deployed it to CF Pages (a static server). No backend, no database. So it can only show fixed content."

Adventure 8

📘 Concept Card
Static vs. Dynamic
Static Site
Server hands you a pre-existing file as-is.
Examples: your CF Pages site, a blog, a marketing landing page

Static URL → maps directly to a file → returns it
Dynamic Site
Server computes a fresh answer every time, depending on who you are, what you asked, when you asked.
Examples: YouTube homepage, ChatGPT, Amazon

Dynamic URL → triggers a program → program generates content on the fly

CF Pages is for static sites only — it doesn't run your backend code, it just hands files to browsers.

Adventure 8

2.5 · Static vs Dynamic · (35–43 min)
What Kind of Site Is Yours?
"Your AI-built site is static. But like the specimen, you can use fetch to call someone else's API and make it 'feel' dynamic. To build a real site with user logins and saved data, you need your own backend — that's further down the road."
Wikipedia article page
Static or dynamic? → Static (article content rarely changes)
Instagram feed
Static or dynamic? → Dynamic (different every refresh, tailored to you)
ChatGPT
Static or dynamic? → Very dynamic (generates a fresh response every single time)

Key insight: Static frontend + someone else's dynamic API can do 80% of what you'd want.

Adventure 8

2.6 · Hands-On · (43–50 min)
Dissect Your Own Site
Each student on your own laptop:
  1. Open your AI-built site + Network tab
  1. Count: how many requests on a refresh? How many are Fetch/XHR (API calls)?
  1. Open YouTube and compare
Your Site
≈ 5–15 static requests, 0–1 API calls
YouTube
≈ 100+ requests, dozens of APIs
"Your site = static. YouTube = dynamic + static mixed. The difference is whether the backend is on."

Adventure 8

⏸ Break — 10 min
Almost there. Last block is the hands-on part — you're going to build and deploy a real website from scratch. Make sure you're logged into GitHub and Cloudflare before we start.

Teacher: This is the last chance to fix login issues. Block 3.4 requires both GitHub AND Cloudflare access. Get a TA to help anyone stuck.

Adventure 8

Block 3 · 50 min
From Code to the World: Git + GitHub + Cloudflare Pages
By the end of Block 3, you can explain Git, have built and deployed a hello.html from scratch, and have changed one line and watched it auto-redeploy.
01
3.1 Git (0–10 min)
Video game save system for your code
02
3.2 Full Pipeline (10–22 min)
Your computer → GitHub → CF Pages → CDN → user
03
3.3 CF Pages Tour (22–26 min)
Dashboard walkthrough
04
3.4 Hands-On Deploy (26–48 min)
Steps 0–6: empty repo → live URL
05
3.5 Diagram + Reflection (48–50 min)
The full chain in one picture

Adventure 8

📘 Concept Card
Git / Repository / Commit / History

Git = a version control tool. Analogy: video game save system.
Repository (repo)
All the files in a project + every historical version
Commit
One save. Snapshot the project's current state, attach a one-line note describing what changed.
History
The timeline of all your saves — you can go back to any point
"Mess something up? Don't panic. History's still there. Go back any time."

Adventure 8

3.1 · Git Demo · (0–10 min)
Browsing Real Commit History
"Every time you change something, commit it — snap a photo, write a note. All snapshots line up on a timeline = your history."
Demo
  1. Open the specimen's GitHub repo page
  1. Click Commits → see the history list
  1. Click any commit → see the diff (what changed)
  1. Show how you can time-travel back to that version
📘 Concept Card
GitHub vs Git

Git = the tool, runs on your computer.
GitHub = the website (github.com); you upload Git repos there so others can see, download, and contribute.
Git ≠ GitHub. Git is the tool. GitHub is "Dropbox + Google Docs for code, built on Git." GitHub didn't invent Git — they just use it.

Adventure 8

3.2 · Full Pipeline · (10–22 min)
Your Computer → The World
Your computer → Git → GitHub → Cloudflare Pages → CDN → User's browser
1
Git
Save your work with a commit message
2
GitHub
Push — upload your saves to the cloud
3
Cloudflare Pages
Watches GitHub, auto-builds, deploys to CDN
4
User's Browser
Fetches files from the nearest CDN hub
"What your AI Agent did was this whole chain: write code, push to GitHub, set up a CF Pages project, bind a domain, configure DNS. It did all of that for you. Now we're going to do it ourselves."

Adventure 8

📘 Concept Card
Build / Deploy / Hosting / CDN
Build
Compile source code into shippable files. Our specimen is just one index.html — nothing to build. React/Vue projects need to be built first.
Deploy
Put website files on a public server so others can reach them.
Hosting
Renting space on someone else's server to hold your site. CF Pages is a hosting service.
CDN
Globally distributed "delivery hubs." Your files are copied to all of them. Users fetch from the nearest hub — that's why sites load instantly worldwide.

Adventure 8

📘 Concept Card
Domain / DNS
Domain
The human-readable part of a URL (like ai.ethanxi.com)
IP Address
The actual numerical "house number" of a machine on the internet
DNS
The "phone book" mapping domain → IP

Analogy: Domain is a person's name (John); IP is their social security number. You say "find John"; DNS gives you the number; then you can find them.

Adventure 8

3.3 · CF Pages Dashboard Tour · (22–26 min)
What the Dashboard Looks Like
"Build log = a programmer's best friend. We're about to generate one of these ourselves."
Demo (3–4 min on the specimen project)
  1. Log into dash.cloudflare.com → open specimen project
  1. Deployments list — every push to GitHub triggers one automatically
  1. Click any deploy → Build log + Preview URL + the GitHub commit hash that triggered it

Every row in the Deployments list = one time someone pushed code to GitHub. CF Pages saw it and automatically ran a deploy.

Adventure 8

Block 3 · 3.4 · Hands-On Deploy · Steps 0–6
🎯 Key Hands-On: Deploy a Website From Scratch
Goal: Every student walks the entire pipeline by hand — start with an empty GitHub repo, write the simplest HTML, connect Cloudflare Pages, watch the auto-deploy. Then change one line and watch the redeploy.

22 minutes here — and they really get it. From scratch exposes every link in the chain. Editing an existing AI-generated repo hides the most important step: configuration.
1
Step 0
Teacher demos once (2 min)
2
Step 1
Write hello.html (3 min)
3
Step 2
Create GitHub repo + upload (4 min)
4
Step 3
Connect to CF Pages (5 min)
5
Step 4
Wait + visit URL (3 min)
6
Step 5
Change one line → watch redeploy (3 min)
7
Step 6
Reflect (2 min)

Adventure 8

Step 0 · 2 min
Teacher Demo: Watch the Whole Flow First
Teacher runs the full flow on the projector — without explaining anything. Just to plant the "this is doable" feeling before students try it themselves.

The goal of this step is purely psychological: students see that a complete stranger can go from empty repo → live URL in under 5 minutes. That makes the task feel achievable before they start.
Run through Steps 1–5 quickly. Don't stop to explain each click. When the URL goes live, just say:
"That's it. That's what you're all going to do right now."

Adventure 8

Step 1 · 3 min
Write hello.html
Copy this code — then change "Sam" to your own name:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Hello — I'm Sam</title> </head> <body> <h1>Hello, World — I'm Sam</h1> <p>This is the first website I deployed myself.</p> </body> </html>

Save this somewhere — you'll paste it into GitHub in the next step. Don't worry about what every line means yet — you already know what HTML, head, body, and h1 do from Block 1!

Adventure 8

Step 2 · 4 min
Create GitHub Repo + Upload File
1
Go to github.com/new
Repository name: my-first-site · Set to Public · don't tick "Add a README"
2
Click "Create repository"
You'll land on an empty repo page — that's expected
3
Click "creating a new file"
Filename: index.html — then paste in the code from Step 1
4
Scroll down → Commit new file
This is your first commit. Your code is now saved in Git history on GitHub.

Adventure 8

Step 3 · 5 min
Connect to Cloudflare Pages
1
Open dash.cloudflare.com
Go to Workers & Pages → Create → switch to the Pages tab → Connect to Git
2
(First time only) Authorize Cloudflare on GitHub
Choose my-first-site → Save
3
Pick the repo → Begin setup
Build settings: Framework preset = None · Build command = leave empty · Build output directory = leave empty
4
Click "Save and Deploy"
CF Pages now watches your GitHub repo. Every push will trigger a deploy automatically.

Adventure 8

Step 4 · 3 min
Wait for First Deploy + Visit Your URL
CF Pages shows the build log. Wait 30–60 seconds → you get a URL like https://my-first-site-xxx.pages.dev
"Right now the CF server is: pulling your code → seeing only one index.html, nothing to build → uploading the file to global CDN. Once that green check appears, your website is live worldwide."

Open the URL → everyone sees their own "Hello, World — I'm [your name]".

🎉 This is the empowerment moment — pause 30 seconds, let everyone celebrate. They just put a real website on the internet.

Adventure 8

Step 5 · 3 min
Change One Line → Watch the Redeploy
1
Back to GitHub → click index.html → pencil icon
Change the <h1> text — add an emoji, change the message, make it yours
2
Scroll down → Commit changes
That's it — no other steps needed
3
Don't touch CF Pages — just watch
Switch to the CF Pages tab: a new deploy appears automatically, status "In Progress"
4
Wait 30 sec → refresh your URL
Status becomes Success → your change is live on the internet

Adventure 8

Step 6 · 2 min
Reflect: What Just Happened?
"You used GitHub as a trigger — push once, CF Pages auto-runs a deploy. That's 'auto-deploy': you don't manually upload files anymore — the act of saving IS the deployment."
Ask the class
  • "If you only push to GitHub but don't connect CF Pages, can people visit your site?" → No. GitHub stores code, doesn't serve it. CF Pages (or Vercel, Netlify, GitHub Pages) is what makes it public.
  • "What if you want to add a picture?" → push a .jpg to the same repo, reference it in HTML with <img src="..."> — CF Pages auto-deploys it.

Common stuck points:
  • CF Pages OAuth waiting → use personal Cloudflare account, not a corporate/parent's
  • Build fails → 99% an HTML typo — check the red line in build log
  • URL gives 404 → filename isn't index.html
  • Committed but no new deploy → check branch is main

Adventure 8

3.5 · Diagram #3 + Reflection · (48–50 min)
The Full Chain in One Picture
Your source code (HTML/CSS/JS) ↓ git commit + push GitHub ↓ webhook fires Cloudflare Pages (build) ↓ uploads artifacts Global CDN ↓ HTTP + JSON User's browser ↓ parse → DOM tree → paint What the user sees

Block 3 Takeaway: Git = save your project's history. GitHub = put those saves in the cloud. CF Pages = watches GitHub, auto-builds, auto-deploys. CDN = puts the result everywhere on Earth. Domain + DNS = a name humans remember → the real machine.

Adventure 8

"You just did a real, full deploy — empty repo to a live URL anyone in the world can visit. Every step done by you. Next time you want to build a website? You don't need an AI. You can do it yourself."
Closing · 10 min
The Full Picture
Pick 1–2 students, have them explain in their own words the whole chain: from typing on the keyboard → to anyone in the world seeing it.
Teacher fills any gaps:
  • HTML/CSS/JS three layers
  • Browser reads files → builds DOM tree → paints
  • Static vs. dynamic
  • Frontend ↔ backend via HTTP + JSON
  • Git → GitHub → CF Pages → CDN → user

Adventure 8

Closing Discussion
Two Questions to End With
Question 1: What did your AI Agent do for you?
Let's list it together: picked the tech stack (Next.js, React, Tailwind), wrote source code, configured the build tool, registered with CF Pages, connected GitHub, set up the deploy flow, handled a bunch of weird bugs.
Question 2: What can you do now without an AI?
Inspect any website · Change text, color, or images · Write a hello.html from scratch and deploy it · Tell frontend from backend · Recognize fetch + JSON · Talk to a programmer without feeling lost.
"That's empowerment — you've gone from 'press the button and hope' to 'I get this'."

Adventure 8

After-Class Challenges (Optional)
Keep Going — Three Levels
Easy
Turn the my-first-site you built today into your own personal homepage — your name, hobbies, colors, and an image
Medium
Add a fetch to hello.html — a weather API or quote API — so it has dynamic content
Hard
Add a third dynamic card to the specimen — pick any public API and wire it up yourself

Adventure 8

Reference
Glossary (A–Z)
API
The "menu" of questions a backend will answer
Build
Compile source code into shippable files
CDN
Globally distributed delivery hubs; users fetch from the nearest one
Client
= frontend
Commit
One save in Git
Console
DevTools tab for running JS / seeing errors
CSS
The file that decides how the page looks
Database
Where the backend stores stuff long-term
Deploy
Put website files on a public server
DevTools
The browser's built-in inside-the-machine panel
DNS
Domain → IP phone book
DOM
The page tree the browser builds in memory
Domain
The human-readable part of a URL
Elements panel
DevTools tab for viewing the DOM tree
Fetch
The standard JS method for making HTTP requests
Frontend
The part running in your browser
Git
Version control tool that saves project history
GitHub
The website where you upload Git repos
History
The timeline of all your Git saves
Hosting
Renting server space to hold your site
HTML
The file that decides what content the page has
HTTP
The rules browser and server use to talk
HTTPS
Encrypted HTTP
IP address
A machine's actual numerical address on the internet
JS / JavaScript
The file that decides how the page behaves
JSON
The data format frontend and backend exchange
Network panel
DevTools tab for seeing every request the page sends
Node
One piece on the DOM tree
Push
Upload your local saves to GitHub
Repository (repo)
All the files in a project + every historical version
Request
One "ask" sent by the frontend
Response
One "reply" sent by the backend
Server
A computer that stays on all the time, waiting for questions
Server-side
= backend
Static site
Server hands you pre-existing files
Dynamic site
Server computes a fresh answer every time
View Source
The original HTML the server sent (never changes)

Adventure 8