i'm aaron. i analyze, i educate, and i build things

all things vibecoding

terms you should know

definitions

lint

/lɪnt/
definition

a tool, or the act of using it, that scans source code for likely bugs, style problems, and risky patterns without running the program. the tool itself is called a linter.

plain

an automatic proofreader for your code. it flags mistakes and sloppy spots before the app ever runs, so problems get caught early. people also say "a lint" to mean one such automated check.

in context

"i added a lint step to the build." → it wired in an automatic code checker that runs on every change, so bad code gets flagged before it ships.

ga'd

/ˌdʒiːˈeɪd/
definition

ga stands for general availability. to ga something, past tense "ga'd", is to release it from beta or preview into a stable, fully supported version available to everyone.

plain

it went from "try it at your own risk" to officially released and safe to rely on. if a feature is ga'd, it is finished and open to all users, not an experiment.

in context

"anthropic ga'd that in april." → it stopped being a limited preview in april and became the official, supported version anyone can use.

concepts

negative prompting / anti-negative prompting

definition

negative prompting is telling a model what to avoid or exclude rather than what to do, for example "do not mention pricing", or in image tools, listing what you do not want in the picture. anti-negative prompting is the counter-practice: because models tend to fixate on whatever you name, even to forbid it, you instead phrase everything as what you do want.

plain

telling the ai "don't do x" can backfire, because naming x can make it show up more. the fix is to say what you do want instead of what you don't. "write it in plain language" works better than "don't be wordy".

in context

"try rephrasing that as a positive instruction." → your "don't" rule is probably backfiring, so tell it what to do instead of what to avoid.

context poisoning

definition

when false, malicious, or low-quality information gets into a model's context window, the text it is currently working from, and then skews everything it produces afterward, because the model treats whatever is in context as true and keeps building on it.

plain

once bad info gets into the ai's working memory for a session, it keeps trusting and repeating it, so later answers get contaminated too. the usual fix is to start a fresh chat.

in context

"this thread looks context-poisoned, let's start fresh." → something wrong got into its memory for this conversation and is skewing the answers, so a clean session clears it.

building blocks

syntax

/ˈsɪnˌtæks/
definition

the exact rules for how code must be written in a given language, the required punctuation, keywords, spacing, and order, so the computer can read it. break the rules and the code will not run.

plain

grammar for code. every language has strict rules about brackets, commas, and spelling, and getting one wrong stops the whole thing from working.

in context

"that's a syntax error on line 12." → a punctuation or spelling mistake is breaking the code, not the logic, just the way it is written.

functions

definition

a named, reusable block of code that does one job. you define it once, then call it by name whenever you need that job done, optionally handing it inputs and getting a result back.

plain

a labeled mini-machine in your code. you build it once and reuse it everywhere by name, instead of rewriting the same steps over and over.

in context

"let's pull that into its own function." → those repeated steps should become one named block you can reuse, instead of copy-pasting them.

hero

definition

the large, prominent section at the very top of a page, usually a headline, a short pitch, and a main button, that is the first thing a visitor sees.

plain

the big banner at the top of a landing page. headline, one line about what you do, and the main button. it sets the first impression.

in context

"make the hero punchier." → rework that big top section so the headline and main button grab attention faster.

architecture

definition

the overall structure of a software system, how its parts are divided, what each one is responsible for, and how they connect and talk to each other.

plain

the blueprint of your app. not the individual code, but the big-picture layout of which pieces exist and how they fit together.

in context

"this won't scale, it's an architecture problem." → the issue is the overall structure of the app, not one bug, so the fix is rethinking how the pieces are laid out.

api

/ˌeɪ piː ˈaɪ/
definition

application programming interface. a defined set of requests one piece of software can make to another, and the responses it gets back, so two systems can talk without knowing each other's internals.

plain

a menu one program offers to others. you send a request in the agreed format and get data or an action back, the way an app pulls in weather or payments without building them itself.

in context

"we'll hit their api for the data." → instead of storing it ourselves, we'll request it from another service through its official menu of calls.

database

definition

an organized store of data that an app can quickly save to, search, and update, usually structured into tables of records.

plain

your app's filing cabinet. it is where the real information lives, users, orders, posts, so it sticks around and can be looked up later.

in context

"save that to the database." → store it permanently in the app's data store so it is still there after the page reloads.

schema

/ˈskiːmə/
definition

the defined shape of your data, what tables and fields exist, their names, types, and how they relate, that the database enforces.

plain

the blueprint for your filing cabinet. it spells out exactly what information each record holds and in what form, so the data stays consistent.

in context

"we need to update the schema first." → change the defined shape of the data before saving the new kind of information.

seeds

definition

starter data loaded into a database to fill it with realistic example records, so the app has something to show and test against before real users arrive.

plain

fake-but-realistic sample data you pour in so a fresh app is not empty. handy for testing screens and demos before real users show up.

in context

"i seeded the db with test users." → loaded a batch of fake accounts so the app has data to work with during development.

environment variables

definition

named values stored outside your code, like api keys, passwords, and settings, that the app reads while running. they can differ between your laptop and the live site, and keep secrets out of the codebase.

plain

settings and secrets kept outside the code. things like passwords and keys live here so they are not exposed, and can change between your machine and the real site. often shortened to env vars.

in context

"put the key in an env var, not in the code." → store that secret in the separate settings file so it does not get committed and leak.

design system

design system

definition

the shared, named set of rules and reusable parts that define how your whole app looks and behaves, its colors, spacing, fonts, and prebuilt pieces, defined once so every screen stays consistent.

plain

one rulebook for how your app looks. instead of styling each screen from scratch, you define the look once and everything pulls from it. when you tell the ai to "use the design system", it builds new screens from the agreed set instead of inventing new styles every time. the three pieces below, tokens, components, and the design contract, are what it is made of.

in context

"build it with our design system." → don't make up new colors or spacing, reuse the app's existing rulebook so the new screen matches everything else.

tokens

definition

named values for the small design decisions, colors, spacing, font sizes, corner radius, stored once and referenced everywhere instead of hard-coding the raw numbers.

plain

nicknames for your design values. instead of "#1d4ed8" you say "primary color", instead of "16px" you say "space-md". change the token once and it updates everywhere. telling the ai to "use the tokens" keeps it from sprinkling random colors and sizes around.

in context

"use the spacing tokens, don't hard-code pixels." → reference the named spacing values so it stays consistent and changes in one place, instead of typing raw numbers each time.

components

definition

the reusable, prebuilt ui pieces of a design system, the button, the card, the input, each styled to the system's rules, so you assemble screens from them instead of building each one fresh.

plain

the ready-made building blocks of your app's look, a button, a card, a form field, already styled to match. tell the ai to "use the existing component" and it reuses the one you have instead of inventing a new, slightly different button.

in context

"reuse the button component, don't make a new one." → grab the existing styled button instead of building a fresh one, so the app does not end up with five different buttons.

design contract

definition

an agreed, written spec of what a screen or component must look like and do, its layout, states, spacing, and behavior, that the build is expected to match exactly.

plain

the rules the design has to follow, written down before the build so there is a clear target. for vibecoding it is what you hand the ai so it builds to a fixed spec instead of guessing, and what you check the result against.

in context

"does this match the design contract?" → check the built screen against the agreed spec, the spacing, states, and layout it was supposed to hit.

workflow

commit

definition

a saved snapshot of your code at a point in time, recorded in version control with a short message describing what changed. the history of a project is a chain of these snapshots.

plain

a save point for your project. each commit freezes the current state with a note, so you can look back, undo, or see exactly what changed and when.

in context

"commit that before you go further." → save a snapshot of the working code now, so there is a clean point to return to if the next change breaks things.

ci/cd

/ˌsiː ˈaɪ ˌsiː ˈdiː/
definition

continuous integration and continuous delivery. an automated pipeline that, on every code change, builds the app, runs the tests, and ships it to production if everything passes.

plain

a robot assembly line for shipping code. every time you push a change, it automatically checks it and, if all is well, puts it live, so you are not doing it by hand.

in context

"ci/cd will deploy it on merge." → once the change is merged, the automated pipeline tests and ships it to the live site for you.

instant unit test

definition

a small, automated check that tests one piece of code, a single function or component, in isolation, run the instant you write it so you know right away if that piece still works.

plain

a tiny auto-check on one bit of your code that runs the moment you save. it tells you immediately if you just broke that piece, instead of finding out later.

in context

"the instant unit test caught it." → a small automatic check on that one function failed the second i changed it, flagging the break before it spread.

regression test

definition

a test that re-checks existing, already-working features after you make a change, to catch a regression, something that used to work breaking because of new code.

plain

a test that makes sure your new change did not break old stuff that already worked. it re-runs the things that used to pass, so a fix in one place does not quietly break another.

in context

"the regression tests are red." → a recent change broke something that used to work, and the automated checks for existing features are now failing.

strict linting rules

definition

a strict, enforced set of code-style and quality rules that the linter applies automatically, often paired with auto-formatters like prettier, black, or ruff that rewrite your code into the agreed style on save.

plain

turning the code proofreader up to strict and letting a formatter fix things for you. tools like prettier, black, or ruff reformat your code automatically so everything stays clean and consistent.

in context

"the linter won't let that through." → the project's strict style rules are blocking the code until it is formatted and cleaned up to match.

change log

definition

a dated, ordered list of notable changes made to a project, each new feature, fix, and breaking change, usually grouped by version or release so anyone can see what shipped and when.

plain

the "what's new" list for your app. every release adds a line or two saying what got added, fixed, or changed, so users and teammates can catch up at a glance.

in context

"add it to the changelog." → write a short line saying what this change does, so it shows up in the running list of what shipped.

developer log (dev log)

definition

a running journal kept during development, notes on what was built, what was decided and why, problems hit, and what to do next. it is for the people building the app, not the end users.

plain

the builder's diary. unlike a change log, which lists what shipped for users, a dev log captures the messy details, decisions, dead ends, and reminders, so you can pick the thread back up later.

in context

"i wrote it up in the dev log." → i recorded what i did and why in the working journal, so the context is not lost next session.

roadmap

definition

a high-level plan of what is going to be built and roughly when, ordered by priority, showing the direction of the product over the coming weeks or months.

plain

the big-picture to-do list for the whole product. it lays out what is coming next and in what order, so everyone knows the plan without the fine detail.

in context

"that's on the roadmap for later." → it is a planned future feature, just not something being built right now.

backlog

definition

the prioritized list of work not yet started, features, fixes, and ideas, waiting to be picked up. items leave the backlog when someone begins them.

plain

the holding pen for everything you want to do but have not started. new ideas land here and get pulled out when it is their turn.

in context

"add it to the backlog." → write it down on the someday list so it is not lost, without committing to do it now.