Reference · Frontend for backend developers

Glossary

The vocabulary, with the Python analogy where one honestly exists. Terms used in this sense throughout every lesson.

The platform

DOM
Document Object Model — the browser's live, in-memory tree of objects representing the page. Not your HTML file; what the browser built from it. the live database tables, where your HTML is the .sql dump
Render
React calling your component function to produce a description of the UI. Distinct from the browser painting pixels. A render that produces the same description causes no DOM change at all.
Re-render
React calling a component function again because its state or props changed. Frequent and normal — not inherently a performance problem.
Reconciliation
React comparing the new description against the previous one and issuing the minimum set of real DOM operations to close the gap. a migration diff: desired state vs. current state → the ALTERs needed
Hydration
Server-rendered HTML arrives already painted; React then attaches event handlers and state to that existing markup rather than rebuilding it. Only relevant with SSR (Lesson 6).

The build

Bundler
Tool that compiles and packs many source files into few optimised output files. Vite 8 bundles with Rolldown.
Vite
The build tool. Two modes: dev server (npm run dev, on-demand compilation + HMR) and production build (npm run builddist/). uvicorn --reload, and a packaging step, in one tool
HMR
Hot Module Replacement — swapping a changed module into the already-running page without a full reload, preserving state.
Transpile
Translating source into equivalent source in another language — TSX to JS. Distinct from compiling to machine code, though the boundary is blurry and people use the words loosely.
JSX / TSX
The HTML-looking syntax inside JavaScript. Not a template language: it compiles to plain function calls. .tsx is JSX in a TypeScript file.
SPA
Single-Page Application. The server sends a near-empty HTML shell; JavaScript builds everything and handles navigation without full page loads.
SSR
Server-Side Rendering. HTML for the first request is generated on the server, then hydrated in the browser.
node_modules
Installed dependencies. Never committed; regenerate with npm install. .venv/site-packages
package.json / lockfile
Declared dependencies and scripts / the exact resolved versions. pyproject.toml and the lock file — commit both

React

Component
A capitalised function taking a props object and returning JSX. The unit of reuse. UI = f(state).
Props
The single object argument passed to a component. Read-only inside it — a component never writes to its own props. keyword arguments, as a frozen dataclass
State
A value a component owns that survives between renders and, when changed through its setter, triggers a re-render. Created with useState.
Hook
A function named use* that hooks into React's machinery. Callable only at the top level of a component or another hook — never inside a condition, loop or nested function.
Lifting state up
Moving state to the closest common ancestor of every component that needs it, then passing it back down. The default answer to "two components need the same fact".
Prop drilling
Passing a prop through components that do not use it, only to relay it further down. Mildly bad; frequently a symptom of a missing composition rather than a missing tool.
Composition / children
Passing JSX into a component via the special children prop, so the element is built where its data already lives. The first fix for drilling.
Context
A value provided by an ancestor and readable at any depth below without props. For wide, rarely-changing data only. a ContextVar — dynamic scoping, with the same trade-offs
Controlled component
A form input whose displayed value comes from React state, with an onChange writing back to it. The state is the source of truth, not the DOM node.
key
A stable identifier on each element of a rendered list, letting React match items across renders. Use a real id. Array indices break on reorder.
Pure component
One whose output depends only on its props, with no side effects during render. The easy kind to test, reuse and reason about. Aim for these.

Styling

Utility class
A class doing one thing — p-4 is padding: 1rem. Tailwind's atom.
Variant
A prefix scoping a utility to a state or breakpoint: hover:, focus:, md:, dark:. The capability inline styles lack.
@theme
The Tailwind v4 block, written in CSS, where you define design tokens. Replaces the old tailwind.config.js.
@apply
Bundles utilities into a named CSS class. Treat as a smell — usually a component wanting to exist.

TanStack Start

File-based routing
Files under src/routes/ define URLs. $param.tsx marks a URL parameter; __root.tsx is the document shell.
Loader
A route's data-fetching function, run before its component renders. Isomorphic — runs server-side on first load, client-side on in-app navigation.
Isomorphic
The same code running on both server and client. The source of most "why is this undefined" confusion in SSR frameworks.
Server function
createServerFn — always executes on the server, callable from anywhere with end-to-end types. Where secrets and DB access belong. a FastAPI endpoint whose client is generated for you
<Outlet />
The placeholder in a parent route where the matching child route renders.
routeTree.gen.ts
Generated from your file layout. Never edit; never hand-merge.