Beginner guides.
No background assumed. What a database, a domain or an environment variable actually is, and how to get an app you built with AI online and keep it there.
276 posts · page 2 of 12
React useState Explained: How State Actually Works
useState gives a component memory that survives re-renders and updates the screen when it changes. How it works, why the value doesn't change immediately after you set it, updating objects and arrays without mutating them, and the functional update form.
React useEffect Explained: When to Use It (and When Not To)
useEffect runs code after React renders, to sync your component with something outside React — a timer, a subscription, a browser API. How the dependency array works, cleanup functions, why effects run twice in development, and the many cases where you don't need an effect at all.
"Each Child in a List Should Have a Unique Key Prop": What It Means
React's key warning appears when you render a list without telling React which item is which. Why keys matter, why array index is a bad key for lists that change, what to use instead, and how to fix the warning in fragments and nested maps.
React "Too Many Re-renders" and "Maximum Update Depth Exceeded": Fixes
Both errors mean a component keeps updating state, which re-renders it, which updates state again — forever. The four patterns that cause it (calling a handler instead of passing it, setState during render, effects without dependencies, objects in dependency arrays) and their fixes.
"Command Not Found": The PATH Variable Explained
"command not found" or "is not recognized as an internal or external command" usually means the program is installed but your terminal doesn't know where to look. How PATH works on Mac, Linux and Windows, how to check it, and how to add a folder permanently.
What Is package-lock.json? (And Should You Commit It?)
package.json says which versions your app accepts; package-lock.json records exactly which versions were installed. Why the lock file exists, why you should commit it, npm install vs npm ci, fixing merge conflicts in it, and the equivalent files for pnpm, Yarn and Bun.
OpenAI API vs Claude API: Which Should Your App Use?
Both APIs let your app send text (and images) to a model and get an answer back. How they differ in request shape, models, tool calling, structured output, caching and pricing — and why many apps keep the choice swappable instead of picking forever.
Lovable vs Bolt vs v0: Which AI App Builder Fits Your Project?
Three AI app builders, three different bets. Lovable builds full apps with a backend for non-developers, Bolt runs a whole dev environment in your browser, and v0 is strongest at Next.js and UI. What each produces, where each struggles, and how to choose.
localStorage vs sessionStorage vs Cookies: Where Should You Store It?
Three ways to store data in the browser, with different lifetimes, sizes and security properties. What each one is for, why login tokens shouldn't go in localStorage, the size limits, and a simple rule for choosing.
LLM Temperature Explained: Why the Same Prompt Gives Different Answers
Temperature controls how random an AI model's word choices are. Low temperature gives consistent, predictable answers; high temperature gives varied, creative ones. How it works, what values to use for which tasks, top-p, and why temperature 0 still isn't fully deterministic.
How to Learn to Code With AI (Without Letting It Think for You)
AI can be the best coding tutor you've ever had, or a crutch that leaves you unable to fix anything. A practical way to learn with AI: explain-first prompts, building real projects, reading before running, deliberate practice without AI, and a 12-week outline.
JavaScript Array Methods: map, filter, reduce, find and Friends
Most JavaScript in AI-generated apps is arrays being transformed. What map, filter, find, some, every, reduce, sort and includes do, with plain examples, how to chain them, which ones change the original array, and the mistakes that cause bugs.
"TypeError: X Is Not a Function": The Common Causes and Fixes
"is not a function" means you tried to call something that isn't a function — usually undefined, an object, or the wrong kind of value. The usual suspects: .map on a non-array, wrong import, missing await, a typo, or a name collision. How to diagnose each.
How to Price Your SaaS: A Beginner's Guide to Charging for Your App
Pricing is the decision first-time founders avoid longest. How to pick a pricing model (flat, tiered, per-seat, usage), how to set a first number, why free plans are expensive, how AI costs change the maths, and how to raise prices later.
How to Center a Div (Horizontally, Vertically, or Both)
The internet's favourite CSS joke has simple answers now. How to center anything horizontally, vertically or both with Flexbox, Grid, margin auto and absolute positioning — with the Tailwind classes — and why your centering isn't working.
Hashing vs Encryption vs Encoding: What's the Difference?
Three ways to transform data that people mix up constantly — sometimes with security consequences. Encoding changes format (Base64), encryption hides data with a key you can reverse, hashing makes a one-way fingerprint. What each is for and the mistakes to avoid.
Google Search Console for Beginners: Set It Up and Read It
Search Console is Google's free tool for seeing how your site appears in search. How to verify your domain, submit a sitemap, read the Performance and Pages reports, fix 'Crawled — currently not indexed', and use URL Inspection to get a new page noticed.
Git Push Rejected: "Updates Were Rejected Because the Remote Contains Work"
git push fails with "rejected — fetch first" or "non-fast-forward" when GitHub has commits you don't. How to pull and combine them safely, when force-pushing is fine and when it destroys work, and the other rejection messages: protected branches, large files, and secrets.
"Permission Denied (publickey)" on GitHub: How to Fix It
GitHub rejected your SSH key — either you don't have one, it isn't added to GitHub, your SSH agent isn't offering it, or you're using the wrong account. A step-by-step fix with ssh -T, plus the HTTPS alternative and the 'Support for password authentication was removed' error.
Git Fetch vs Git Pull: What's the Difference?
git fetch downloads new commits from GitHub without touching your work. git pull downloads them and immediately merges (or rebases) them into your branch. When to use each, what origin/main actually is, and how to see what changed before you pull.
Git "Detached HEAD" Explained: What It Is and How to Get Out
"You are in 'detached HEAD' state" means you've checked out a specific commit instead of a branch. It's safe to look around; commits made here are easy to lose. How you got there, how to get back, and how to save work you did while detached.
Git Cherry-Pick Explained: Copy One Commit to Another Branch
git cherry-pick copies a specific commit from one branch onto another — handy for getting a bug fix into production without merging everything else. How to use it, picking ranges, handling conflicts, and when a merge is the better choice.
How to Get Your First 100 Users (Without an Ad Budget)
Launching doesn't bring users; going where they already are does. Practical ways to find your first 100 users — direct outreach, communities, launch sites, content, and your own network — and how to keep the ones you get.
GET vs POST (and PUT, PATCH, DELETE): HTTP Methods Explained
Every request to a web server has a method that says what it wants to do. GET reads, POST creates, PUT and PATCH update, DELETE removes. The differences that matter in practice — caching, safety, idempotency, where the data goes — and the mistakes AI-generated APIs make.