Practical, dependency-free tutorials that start from the foundations. Every post ships with a live, editable preview of the result, no videos, no static images, the real thing.
No installers, no editors, no npm, no Docker. With only a text editor and a browser, publish your first HTML page, including a ball that falls with real weight, squashes on impact, and rises again, all with pure CSS.
Ten lines of plain JavaScript are enough for a real interactive app. Build a daily-cups habit tracker that opens with bismillâh, shifts colour at the halfway point, and closes with alhamdulillah at the eighth glass, no frameworks, no build tool.
DNS, TCP, TLS, HTTP, parse, render, the six simple steps between pressing Enter and seeing a webpage, visualised as a single packet traveling a precisely timed pipeline. Run each step yourself with dig, ping, openssl, and curl.
A single line of CSS plus a max-width builds a grid that folds cleanly from three columns to one across desktop, tablet, and mobile; hover one card and :has() dims the rest. The four vanilla primitives and five modern tricks that quietly replace most of a utility framework.
Drip pricing, fake urgency, pre-ticked add-ons, fake discounts. The patterns that erode trust and the cart-summary shape that refuses them. Half technique, half mizan (measure).
No React Hook Form, no Zod. Required, minlength, pattern, autocomplete, plus a small ValidityState-driven script that reveals friendly errors on blur. :user-invalid is the CSS pseudo-class you have been waiting for.
Clamp, floor, validate. One plus-minus input with HTML5 bounds and a 15-line guard. Then Intl.NumberFormat for honest currency display across USD, TRY, EUR, and JPY, including the JPY no-decimals gotcha.
Open, close, Escape, backdrop-click, body-scroll-lock, and accessibility. The universal cart drawer pattern, built from two fixed elements, a transform, and a 20-line script.
A search box that narrows the product catalog as the user types, with substring match, debouncing, and a live match counter. No Lunr, no Fuse, no backend.
Mobile, tablet, desktop, ultra-wide, all handled by a single grid-template-columns rule. No media queries, no framework. The difference between auto-fit and auto-fill, and why you always want one of them.
A cart counter that survives refreshes, tab closes, and offline weeks. Twelve lines of plain JavaScript, zero backend, one small key-value store built into every browser.
Sixty lines of HTML, forty of CSS, ten of JS, and you have a product card every e-commerce site on the internet sits on top of: semantic article, SVG placeholder image, honest price block, and a CTA that acknowledges the click.
Eight tutorials wired into one live shop. Admin on the left, store in the middle, cart on the right. Add products, place orders, watch the animated checkout confirm the sale. Real UX, no framework, no server.
Everything you read here, try it on your own Webstree space. Free to start, nothing to install.