Glossary

Reference · 10 min read

Glossary

Plain-English definitions of every bit of jargon you will meet.

Every bit of jargon in this guide, and most of what you'll meet elsewhere, in plain English. Skim it once now; come back when something confuses you.

The AI tools

AgentAn AI that can act — read your files, write changes, run commands — rather than just chat. Claude Code and Cursor's agent mode are agents.
Context windowThe working area holding everything the AI can currently see: your conversation plus any files it's read. Finite. When it fills, early detail is lost.
TokenRoughly three-quarters of a word. The unit AI usage is measured and billed in.
HallucinationWhen the AI confidently states something untrue — usually inventing a function or setting that doesn't exist.
PromptWhat you type. A good one contains context, task, constraints and success criteria.
System promptStanding instructions the tool sends behind the scenes. Your CLAUDE.md effectively adds to it.
Plan modeA mode where the agent proposes what it will do but can't change any files until you approve.
MCPModel Context Protocol — a standard way to give an AI tool access to other systems (your database, your issue tracker). Useful later; ignore for now.
SycophancyAn AI's tendency to tell you what you want to hear — agreeing with your idea, praising your question, folding the moment you push back. A side effect of training on human ratings, since humans rate agreeable answers highly. The reason "is this a good idea?" is a bad question.
Non-sycophantic promptingExplicitly instructing the AI to disagree with you when you're wrong, to hold its position under pushback, and to admit what it doesn't know. See Prompting for software.
Socratic interviewGetting the AI to interview you, one question at a time, until your requirements emerge from your own answers — rather than you describing the feature and it guessing at the rest. Named after Socrates, who taught by questioning.
Adversarial reviewGiving the AI the explicit job of breaking your work rather than approving it, ideally in a fresh conversation so it isn't reviewing its own homework. Called red-teaming in software teams.

Code and version control

Repository (repo)A project tracked by Git.
CommitA saved snapshot of your whole project, with a message saying what changed.
BranchA parallel version of your project where you can work without affecting the main one.
mainThe default branch. By convention, the version that works.
MergeCombining a branch's changes back into another branch.
Merge conflictTwo branches changed the same lines and Git needs a human to decide. Rare when working alone.
Pull request (PR)A proposal to merge a branch, with a place to review and discuss it first.
Push / pullSending your commits to GitHub / bringing GitHub's commits down.
CloneDownloading a repository onto a computer.
DiffThe red-and-green view of exactly what changed between two versions.
.gitignoreA list of files Git should ignore — secrets and generated folders.
Revert / restoreUndoing changes. git restore . throws away everything uncommitted.

Building blocks

FrontendEverything that runs in the user's browser. What they see and click.
BackendEverything that runs on a server. Talks to the database, holds secrets, enforces rules.
Full-stackBoth. Next.js is a full-stack framework — frontend and backend in one project.
FrameworkA pre-built structure that handles common problems so you don't. Next.js, React.
Library / package / dependencySomeone else's code that you use in your project. All roughly the same word.
npmThe tool that installs JavaScript libraries. npm install downloads everything your project needs.
node_modulesThe folder those libraries live in. Huge. Never edit it, never commit it.
package.jsonYour project's ID card: its name, its dependencies, and its available commands.
ComponentA reusable piece of UI — a button, a card, a nav bar — defined once and used many times.
PropsThe values you pass into a component to configure it. Like HTML attributes.
StateData that changes while the user is using the app, causing the screen to update.
HookA React function starting with use that adds behaviour to a component. useState, useEffect.
TypeScriptJavaScript with type checking — it catches mismatches before they become bugs.
TailwindA CSS approach where you apply small utility classes directly in the markup.
Server component / client componentIn Next.js: code that runs on the server (safe for secrets and database access) versus in the browser (interactive, but fully public).

Data

DatabaseWhere your app's data lives permanently.
PostgresThe most widely used open-source relational database. What Supabase gives you.
Table / row / columnA kind of thing / one of them / one fact about it.
SchemaThe overall structure: what tables exist, with what columns, related how.
Primary keyThe unique identifier of a row.
Foreign keyA column pointing at a row in another table. How tables relate.
QueryA request to the database to read or change data.
SQLThe language queries are written in.
MigrationA recorded, repeatable change to your database's structure. Always use these rather than clicking in a dashboard.
Row Level Security (RLS)Database-enforced rules about who can read or write which rows. Without it, your data is effectively public. The most important term on this page.
Seed dataFake data for testing.
BackupA copy of your database from a point in time. Check you have them.

Running and shipping

Terminal / command line / shellThe text window where you type commands. Same thing, three names.
localhostYour own computer. localhost:3000 is only reachable by you.
PortThe number after the colon. Different apps on your machine use different ports.
Dev serverThe process started by npm run dev that runs your app locally and reloads it as you edit.
BuildTurning your source code into the optimised version that gets served to users.
DeployPutting that build onto the internet.
ProductionThe live version real users are using.
Environment variableA setting stored outside your code — usually a secret, with different values locally and in production.
APIA way for programs to talk to each other.
API keyA password that identifies your app to a service. Never commit one.
Endpoint / routeOne specific URL that does one specific thing.
DNSThe system that turns a domain name into the address of a server.
SSL / HTTPSThe padlock. Encrypts traffic between browser and server. Free and automatic on modern hosts.
CDNA network of servers around the world that serve your site from somewhere near each user.
CacheA stored copy kept to avoid redoing work. Cause of roughly half of all "but I changed that" confusion.

When things go wrong

BugBehaviour that isn't what was intended.
Stack traceThe list of function calls that led to an error. Read the top few lines; ignore anything inside node_modules.
ConsoleThe browser's log of errors and messages. Press F12.
Hydration errorA Next.js error meaning the server and browser rendered different things.
Race conditionA bug caused by two things happening in an unexpected order. The reason double-clicking sometimes breaks things.
RegressionSomething that used to work and now doesn't.
Technical debtShortcuts that made things fast now and slow later. Some is fine; unmanaged, it compounds.
RefactorRestructuring code without changing what it does.
Edge caseAn unusual situation — empty data, a very long name, a double-click. Where most bugs live.
Root causeThe actual underlying reason, as opposed to the symptom. Always ask for this.
Explain any term properly
I'm a non-technical founder. Explain [term] to me:

1. What it is, in two sentences, with no analogies
2. What problem it exists to solve — what did people do before it?
3. Where it appears in MY project specifically (point at actual files)
4. What I'd notice if it were wrong or missing
5. The one thing beginners misunderstand about it

Then show me a real example from my own code and walk through it.
Build a glossary for your own project
Go through this project and find every piece of terminology that appears in it — library names, framework concepts, domain-specific terms, anything in the code or config that a non-technical person wouldn't recognise.

Write me a glossary, saved to docs/glossary.md, with each term explained in one or two plain sentences plus where it appears in my project.

Sort it by how often I'm likely to encounter each one, most common first. Flag the five terms I genuinely need to understand versus the ones I only need to recognise.

Create docs/questions.md. Every time you see a word you don't know, add it. Don't stop to look it up — that breaks your flow. Once a week, paste the whole list into a fresh session and ask for all of them explained in terms of your own project.

You'll know it worked when terms start moving off the list because you already know them. This is the cheapest, most reliable way to build real vocabulary, and it takes about ten minutes a week.

Written for a founder who is building the first version alone. Last updated September 2026.

Generated using Claude · wfoster.dev · helping others to unlock AI potential