A lot of people start learning web development by jumping straight into React or Next.js. They can copy a tutorial, make a page look impressive, and get something running. But ask what the browser actually does, how a request reaches a server, or where the data lives, and the whole thing can suddenly feel like magic.
That is learning web development backwards: starting with the power tools before understanding the job they are meant to do. I owe the core inspiration for this way of looking at it to Amospikins — The Tech Prophet on YouTube. His teaching helped make the fundamentals click for me, especially the body analogy below. This article expands on his original teachings and analogies; the credit for that inspiration is his.
The Body of the Web: HTML, CSS, and JavaScript
Before worrying about a framework, understand the three everyday building blocks that make a web page feel like a web page.
HTML: Structure
Technical definition: HTML (HyperText Markup Language) defines the structure and meaning of web content: headings, paragraphs, links, forms, images, and buttons.
Everyday example: HTML is the bones. It gives the page its shape. Without bones, there is no structure to hold everything else in place.
CSS: Styling
Technical definition: CSS (Cascading Style Sheets) controls how that structure looks and is laid out, including colours, spacing, typography, alignment, and responsive behaviour on different screen sizes.
Everyday example: CSS is the flesh. It fills out the structure and gives it a visible appearance. The same underlying bones can look very different depending on how they are presented.
JavaScript: Interactivity
Technical definition: JavaScript is a programming language used to add behaviour and interactivity to web pages. It can respond to clicks, validate a form, update content, and request data. JavaScript can also run on servers, not just in the browser.
Everyday example: JavaScript is the soul that makes the body function in this analogy. It is what makes the page react instead of just sit there looking pretty.
Put them together: HTML lays out a menu, CSS makes it readable and attractive, and JavaScript can let someone filter dishes or add one to an order. A framework can help organise all of that, but it does not erase the roles of HTML, CSS, or JavaScript.
Frontend vs. Backend: The Dining Area and the Kitchen
Technical definition: The frontend is the client-side part of an application that people interact with, usually in a browser. The backend is the server-side part that handles application rules, permissions, data access, and work the client should not be trusted to do on its own.
Everyday example: Think of a restaurant. The dining area is the frontend: customers see the menu, talk to staff, and place orders. The kitchen is the backend: customers do not see every step, but the staff there prepare the meal, follow the rules, and coordinate what happens behind the scenes.
A beautiful dining area cannot cook a meal by itself. In the same way, a polished frontend cannot safely replace backend logic. And a kitchen that works perfectly is not much use if customers have no clear way to order.
APIs: The Waiter and the Menu
Technical definition: An API (Application Programming Interface) is a defined way for one piece of software to ask another piece of software to do something or return data. It sets out the operations that are available, what a request should look like, and what kind of response to expect.
Everyday example: Think of a waiter and a restaurant menu. You do not walk into the kitchen and start opening cupboards. The menu tells you what you can order, and the waiter takes your order to the kitchen in a form the staff understand. When the food is ready—or something is unavailable—the waiter brings the answer back.
The API is that agreed menu and ordering interface. The waiter is the person carrying the request and response; the kitchen is the backend doing the work. In software, an API is usually an interface exposed by the backend, not a separate little server sitting between the two.
For example, a website might call an API operation to load your profile or create a booking. The API defines what fields may be sent and what the response means. The backend still has to validate the input, check permissions, apply business rules, and access the database when needed.
One important distinction: HTTP is the communication protocol used to carry many web API requests and responses. The API is the contract describing what the client is allowed to ask for and how the application answers. They work together, but they are not the same thing.
DNS: The Internet's Phonebook
Technical definition: DNS, the Domain Name System, looks up the IP address associated with a domain name so a device can find the right server on a network.
Everyday example: It is like your phone's contact list. You save a number under “Best Friend” because you do not want to memorise the whole 10-digit number every time you call. DNS lets people use a name such as kweeziperez.com instead of having to remember an IP address.
There is more happening under the hood—resolvers, cached answers, and DNS records—but the basic idea is simple: the name is convenient for humans; the address helps machines route traffic.
HTTP: Placing an Order and Getting an Answer
Technical definition: HTTP (Hypertext Transfer Protocol) defines how a client and a server exchange requests and responses. A request can say what resource is needed and include a method, headers, and sometimes a body. The response returns a status, headers, and usually content.
Everyday example: Imagine ordering at a restaurant. You tell the waiter, “One cheeseburger, no onions.” That is your request. The kitchen processes it. The waiter brings back the meal—or explains that something is unavailable. That is the response.
When a browser asks for a page or an app asks to load a profile, the exchange follows the same broad pattern. HTTP is not the kitchen itself; it is the agreed way to ask for something and receive the result.
Databases: The Pantry and Refrigerator
Technical definition: A database is an organised collection of data that an application can store, retrieve, update, and manage. Relational databases, for example, keep related information in tables and use rules to help maintain consistency.
Everyday example: A database is the pantry and refrigerator in the kitchen. They hold the ingredients the kitchen needs to fulfil an order. In a web application, those ingredients might be user accounts, blog posts, products, bookings, or payment records.
The backend decides what it is allowed to do with that data and asks the database for what it needs. The database does not replace the backend, just as a refrigerator does not decide what meal to cook. And if the pantry is poorly organised—or the kitchen has no safe access rules—the whole service suffers.
Frameworks: Kitchen Appliances, Not the Kitchen Itself
Technical definition: A framework is a collection of pre-written code, conventions, and tools that gives developers a structure for building software and automating repeated tasks. Frameworks can help with things such as components, routing, rendering, and application organisation.
Everyday example: Frameworks are kitchen appliances. A blender, oven, or food processor can help you work faster and more consistently, but it does not replace the kitchen, the ingredients, or the person who understands the recipe. You still need to know what you are making and why.
React and Next.js are useful tools. Learn them. Use them. But if you do not understand the HTML they produce, the JavaScript they run, HTTP requests, server-side work, or where application data is stored, you can end up knowing how to operate a tool without understanding the system around it.
The Golden Cycle: Request → Process → Data → Response
Here is a practical mental model for how many web features work. The steps can overlap or vary by application, but this sequence gives you somewhere solid to start:
- Request: A person does something, such as opening a page or clicking “View profile.” The browser may first use DNS to find the server, then send an HTTP request.
- Process: The backend receives the request, checks what is being asked, validates inputs, applies business rules, and verifies permissions where needed.
- Data: If the work needs stored information, the backend reads from or writes to a database. Some requests may not need a database at all.
- Response: The server sends back a result—perhaps HTML, JSON, an image, or an error status—and the frontend presents the outcome to the user.
Think about loading your profile. Your browser asks for it. The server checks the request and your access. The application retrieves the permitted profile data. A response comes back, and the page displays it. Suddenly, the web is not a pile of unrelated buzzwords. It is a process you can trace.
Understand the Machine Before the Tools
You do not need to master every browser specification, database engine, or networking detail before building anything. Start with the fundamentals, build small things, and keep connecting each new tool to the job it performs.
Learn HTML before relying on a component library. Understand CSS before assuming a utility class will solve every layout problem. Learn JavaScript before treating React as magic. Understand requests, servers, and data before assembling a full-stack framework.
If you do not know how a kitchen works, buying a fancy new stove will not make you a chef. The stove can help you cook faster, but it cannot give you an understanding of ingredients, timing, hygiene, or what the customer ordered.
Learn the machine first. Then let the frameworks make you faster—not more confused.
Sources and further reading
- How the web worksMDN Web Docs
- Overview of HTTPMDN Web Docs
- Web technology references: HTML, CSS, and JavaScriptMDN Web Docs