frontend-101
GitHub
The DOM
Responsiveness
Components
State
API Calls
Frameworks
OverviewSee the DifferenceLandscape
Accessibility
API CallsAccessibility

frontend-101 — a learning resource for new frontend devs.

© 2026 · MIT LicenseFound an issue?

Frameworks

A pre-built foundation that handles the repetitive parts of building an app.

What is a framework?

Writing vanilla HTML and JavaScript is like giving a driver turn-by-turn directions: turn here, update this element, now remove that one. A framework is like getting in and saying “take me to the airport.” You say where you want to end up, and it handles the route.

That is what a framework is: a pre-built foundation that handles the repetitive, error-prone parts of building a UI, from DOM updates to state management to routing. Instead of telling the browser how to change the page step by step, you describe what it should look like, and the framework works out the steps.

Why it matters

Without a framework, you create, update, and remove HTML elements by hand every time the data changes. For a lone counter that is fine. For a real app juggling forms, navigation, and live data, it turns into a tangle of DOM code where every new feature risks breaking the last.

A framework is not magic. Under the hood it is a JavaScript library with a well-chosen set of abstractions that keep the UI in step with the data and hand you reusable structure instead of a blank page. This entire site runs on Next.js, which is built on React.

DOM manipulation

Creating, updating, and removing HTML elements by hand is tedious and easy to get wrong. A framework does it for you.

State to UI sync

When the data changes, the screen has to change with it. Frameworks track that relationship so you never wire it up yourself.

Component reuse

Build a button once, use it everywhere.

Routing and structure

Real apps need navigation, shared layouts, and data loading. Rather than invent conventions for each one, you inherit a set that already works.

If you remember one thing

A framework keeps your UI in sync with your data, so you describe what the screen should show instead of writing every step to update it.

See the difference for yourself