
CSS
24 min
CSS Specificity Explained: The Complete Cascade Guide
You write a rule that should win. It doesn't. You add !important. Now something else breaks. Specificity fights are the most common source of CSS frustration — and most tutorials only teach half the picture. This guide covers the complete system, including :is(), :where(), @layer, CSS Nesting's hidden specificity trap, and how Tailwind, Vue scoped styles, and CSS Modules each handle specificity differently.

JavaScript
26 min
AI That Reads PDFs in JavaScript — Three Strategies
Every AI PDF tutorial uses Python and LangChain. This one doesn't. Learn three pure JavaScript strategies for making AI read PDFs — direct text extraction, GPT-4o Vision for scanned documents, and structured JSON extraction — all in a single browser file. Plus the PDF.js worker gotchas, the API-key-in-the-browser elephant, and a free Tesseract.js OCR fallback nobody documents.

HTML
24 min
HTML datalist — Native Autocomplete & Search UI Guide
Most datalist tutorials show three lines of HTML and stop. Nobody explains how to detect when a user actually picked from the list, how to show a friendly label while submitting a hidden ID, or which iOS Safari versions silently break the whole feature. This is that tutorial.

HTML
29 min
HTML5 Form Validation Without JavaScript — The Complete Guide
Every tutorial shows you required and pattern then stops. Nobody explains why :invalid turns inputs red before the user touches them, how to fix it with :user-invalid, how autofill silently breaks validation, or how to validate all 11 ValidityState conditions. This is that tutorial.

JavaScript
25 min
Vercel AI SDK in Plain JavaScript (No Next.js)
Every Vercel AI SDK tutorial assumes Next.js. This one doesn't. Learn how to use AI SDK Core in a plain Node.js script, build a minimal Express server that streams to vanilla HTML, switch providers with one line, and generate structured JSON with Zod — zero framework required.

CSS
16 min
CSS calc() Explained: Dynamic Values Without JS
You can't write width: 100% - 32px in plain CSS — the browser doesn't know what 100% minus 32 pixels equals until layout time. calc() defers that calculation to the browser, solving it at render time when both values are known. No JavaScript needed.

CSS
11 min
CSS object-fit & object-position: Stop Stretching
You have a card grid where every thumbnail should be the same height. You set width:100% and height:200px on the images — and they all stretch and distort. The fix is two words: object-fit: cover. This guide covers all 5 values, the focal-point trick with object-position, and why object-fit sometimes silently does nothing.

JavaScript
15 min
WebLLM: Run LLMs in the Browser with JavaScript
WebLLM uses WebGPU to run quantized Llama, Phi, Gemma, and Mistral models entirely inside your browser tab. No server, no API key, no data ever sent to the cloud. The model downloads once, caches in the browser, and runs at near-native GPU speed.

HTML
18 min
HTML details & summary — Beyond Basic Accordions
Most developers use details for a one-off toggle and move on. But the native details element has exclusive accordion behavior built into HTML, smooth animation via a pure CSS grid trick, and direct SEO impact through FAQ rich results. Here's everything it can do — zero JavaScript required.

HTML
22 min
The HTML Popover API — Complete Guide (No Libraries)
Popper.js, Floating UI, Tippy.js — developers reach for JS libraries just to position a tooltip. The native Popover API does it with a single HTML attribute. Here's everything it can do, from basic tooltips to a full command palette, with zero dependencies.

JavaScript
13 min
Build a RAG App in the Browser with JavaScript
RAG lets AI answer questions about your own documents by retrieving the most relevant passages before generating a response. This tutorial builds a complete in-browser RAG system in vanilla JavaScript — embeddings, vector search, and GPT generation all without a backend.

CSS
14 min
CSS ::before and ::after Pseudo-Elements Explained
Decorative arrows, tooltips, notification badges, quote marks, and animated underlines — without adding a single extra span or div to your HTML. This guide explains how ::before and ::after work, 8 real use cases, and the 5 reasons they silently stop showing.