Skip to main content

Glossary

Short, practical definitions for newer developers. Tables list the familiar term first, also known as, then the definition.

Fundamentals

TermAlso known asDefinition
APIapplication programming interfaceA defined interface for one program to request data or actions from another.
SDKsoftware development kitA bundle of libraries, tools, and examples for working with an API or platform.
CLIcommand line interfaceA program you run in the terminal by typing commands to perform tasks.
LTSlong term supportA release line that keeps receiving security and bug fixes for an extended period of time.
SemVersemantic versioningVersion numbers as MAJOR.MINOR.PATCH where breaking changes increase the MAJOR number, features increase the MINOR number, and fixes increase the PATCH number.

Packages and Dependencies

TermAlso known asDefinition
Dependencyruntime depA package your app needs when it runs.
Development dependencydev depA package used for build, test, or tooling, not at runtime.
Peer dependencypeer depA package your project must install because a library you use expects to use your copy, with a compatible version.
lockfilepackage lockA file that pins exact versions so installs are repeatable.

JavaScript and TypeScript

TermAlso known asDefinition
ESMECMAScript ModulesModern JavaScript modules that use import and export.
CommonJSCJSOlder Node.js modules that use require and module.exports.
compileTranslate source code to a lower-level form such as machine code or bytecode (e.g., C++ → machine code, Python → bytecode).
transpilesource-to-sourceConvert code to a similar-level language or version (e.g., TypeScript → JavaScript).
polyfillshimRuntime code that adds a missing browser feature or platform API.
type narrowingrefinementMake a type more specific after a check (e.g., typeof, in, truthy checks).
union typeA | BA value can be one of several types (e.g., soup OR salad).
intersection typeA & BA value must satisfy multiple types at once (e.g., numbers that are even AND prime).
nominal typingname based typingRequires the same declared type or an explicit relation (e.g., UserId is not assignable to PostId even if both are string).
structural typingduck typingCompatible by shape, not by name (e.g., { x: number; y: number } is assignable to Coordinates).
ambient typesglobal typesType declarations available globally without imports.
any vs unknownany disables type safety; unknown forces explicit type checking before use.
neverimpossible typeA type with no possible values.

Builds and Tooling

TermAlso known asDefinition
bundlebuild artifactCombine many source files into one or a few files the browser or Node.js can load.
minifyRemove comments and whitespace and shorten names to shrink files.
tree shakingdead code eliminationRemove code that is never imported or used.
code splittinglazy chunksBreak the app into chunks and load them on demand or by route.
source map.map fileLink compiled or minified code back to the original files for debugging.
watch modeauto rebuildRebuild automatically when files change.
hot reloadHMRSwap updated modules into a running app without a full page reload, often preserving state.

Module Behavior

TermAlso known asDefinition
exports fieldpackage exportsA map of entry points that a package exposes to importers (projects that use that package).
conditional exportsenv specific exportsChoose different entry files by environment or import kind (e.g., importindex.mjs, requireindex.cjs).
side-effect importsetup importRun the module's top-level code and import nothing (e.g., import './polyfills';).
value named importnamed importImport specific exports as bindings (e.g., import { parse } from './util';).
value default importdefault importImport the module's default export as one binding (e.g., import parse from './util';).
type-only importtype importImport types only and erase them at build time in TypeScript (e.g., import type { User } from './types';).
top level awaitTLAUse await in an ESM module's top scope.

Runtime and Browser

TermAlso known asDefinition
event loopThe system that runs one task at a time and schedules what runs next.
blocking codesynchronous stallLong synchronous work that stops the event loop so clicks and timers wait.
hydrationreattach on clientClient JavaScript takes over server-rendered HTML and wires up events.
CSRclient side renderingRender the UI in the browser after the JavaScript bundle loads.
SSRserver side renderingRender HTML on the server for each request, then hydrate in the browser.
SSGstatic site generationPre-render HTML at build time and serve static files.
CORScross origin requestsBrowser rule that blocks cross-site requests unless the server opts in with CORS headers.
CSPcontent security policyBrowser rule that allows only approved scripts and resources.

Git and Workflow

TermAlso known asDefinition
commitrevisionA saved snapshot of changes in the repository.
branchA movable line of work that points to a commit.
mergemerge commitCombine changes from one branch into another, creating a merge commit if needed.
rebaseMove commits to a new base and replay them to keep history linear.
fast forwardFF mergeA merge that only moves the branch pointer to a later commit with no new commit.
tagrelease tagA named pointer to a specific commit, often used for releases.

Testing

TermAlso known asDefinition
unit testspec, component testTests one function or module in isolation with dependencies mocked.
integration testTests how multiple parts work together across real boundaries.
end to end testE2EDrives the app like a user from UI to backend in a real environment.
mockstub, fakeA stand-in function or object with controlled behavior for a dependency.
fixturetest dataFixed sample data or files used to set up a repeatable test.
flaky testnondeterministic testSometimes passes and sometimes fails without code changes, often due to timing or external systems.

Performance and UX

TermAlso known asDefinition
debounceWait to run until input has been idle for a short time (e.g., search box).
throttlerate limitRun at most once every set interval (e.g., scroll handler).
critical pathAssets that must load before the page can render or accept input.
render blockingblocking resourceA resource that delays first paint until it finishes (often CSS or synchronous JavaScript).
a11yaccessibilityPractices that make the app usable with keyboard and assistive tech.
i18ninternationalizationPrepare for multiple locales by extracting strings and using locale-aware formats.
l10nlocalizationProvide locale-specific content and formatting for a target audience.
t9ntranslationTranslate UI strings between languages.

Security

TermAlso known asDefinition
XSScross site scriptingAttacker supplied script runs in the user's browser due to unsafe or unescaped content.
CSRFcross site request forgeryA logged in user's browser is tricked into sending a request to your site using their credentials.
sanitizationinput cleansingRemove or escape untrusted input before using it in HTML, URLs, queries, or file paths.