Skip to content

About

A reference for building on the web platform itself — HTML, CSS, and JavaScript as browsers actually implement them, plus the media, performance, and accessibility practices that go with them.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Web Development Helps

This is a living document — updated as often as possible to keep the helps, references, and resources below current and relevant.

A reference for building on the web platform itself — HTML, CSS, JavaScript, and Web Components as browsers actually implement them, plus the media, performance, accessibility, PWA, and testing practices that go with them — with no UI frameworks layered on top. Each topic below is a short pointer to the best resource I've found on it, not a full explanation in itself.

Contents

HTML

Semantic elements

Picking the right element (<article>, <nav>, <section>, <aside>...) instead of a generic <div> for everything gives structure meaning to browsers, screen readers, and search engines.

Document structure & metadata

What belongs in <head> — title, charset, viewport, favicons, and the meta tags that control how a page is described and shared.

Forms & validation

Native HTML can validate a lot of form input on its own — required, pattern, type="email" — before you'd reach for JavaScript.


CSS

Kevin Powell is worth a general mention here — a genuine expert on all things CSS, and a great resource beyond any single topic below.

CSS reference

The full set of CSS rules and properties as browsers implement them, not tied to any one topic below.

Selectors & specificity

Why one rule beats another when two selectors target the same element — the ID/class/type weighting system that decides it.

The box model

Content, padding, border, margin — and why box-sizing: border-box fixes most of the confusion around element sizing.

Flexbox

One-dimensional layout — a single row or column — for distributing and aligning items within a container.

Grid

Two-dimensional layout — rows and columns together — for page-level and component-level layouts that flexbox isn't suited for.

Custom properties & cascade layers

Native CSS variables (--my-color) for values you reuse, and @layer for controlling which groups of rules win without fighting specificity.

Responsive design & media queries

Building layouts that adapt to viewport size without a framework's grid system doing it for you.


JavaScript

Core language: scope, closures & this

The parts of native JS that feel like magic until they click — where a variable is visible from, why an inner function can still see an outer function's variables after it has returned, and what this is bound to depending on how a function is called.

The DOM

Selecting, creating, and modifying elements directly with querySelector, createElement, and friends — no jQuery required.

Events

Listening and reacting to what happens on a page — clicks, input, keypresses — with addEventListener.

Async JS: promises & async/await

Handling things that don't finish immediately — fetch requests, timers — without nesting callbacks.

ES modules

Splitting code across files with native import/export — no bundler required for the browser to understand it.


Web Components

Custom elements

Defining your own HTML tags (class MyWidget extends HTMLElement) with their own behavior, registered with customElements.define().

Shadow DOM

Attaching an encapsulated DOM subtree to an element, with its own scoped styles that don't leak in or out of the rest of the page.

HTML templates & slots

<template> for declaring inert, reusable markup that isn't rendered until cloned into the DOM, and <slot> for composing content passed into a custom element.


Media

Responsive images

Serving the right image — size, resolution, even a different crop — for the viewport and device requesting it, with srcset, sizes, and <picture>.

Image formats & lazy loading

Modern compressed formats like WebP and AVIF beat JPEG/PNG on file size, and the native loading="lazy" attribute defers offscreen images without a library.

Native video & audio

The <video> and <audio> elements, <source> for format fallbacks, and <track> for captions/subtitles — no video.js or other player library required.


Performance

The critical rendering path & resource loading

How the browser goes from HTML/CSS/JS to pixels on screen, and what blocks it along the way — the foundation for most other performance work.

Resource hints

Giving the browser a head start with preconnect, preload, and prefetch — without a bundler or framework doing it automatically.

Web fonts

Fonts are often the biggest render-blocking resource on a page — font-display, self-hosting, and subsetting fix most of it.

JavaScript: code-splitting

Loading only the JavaScript a page actually needs upfront, using native dynamic import().

Core Web Vitals

The three field metrics — LCP, INP, CLS — Google uses to measure real-world loading speed, responsiveness, and visual stability.


Accessibility

Semantic HTML & ARIA

The first rule of ARIA is not to use it — reach for the right native element before reaching for ARIA attributes on a <div>.

Keyboard focus

Making sure everything reachable with a mouse is also reachable — and visibly focused — with just a keyboard.

Color & contrast

Meeting WCAG contrast ratios, and respecting prefers-color-scheme/prefers-contrast for users with low vision or color blindness.

Accessible forms

Labels, descriptions, and error messages connected to their fields programmatically, not just visually.


PWA

Web app manifest

manifest.json — the name, icons, theme color, and display mode that let a browser treat a site as an installable app.

Service workers & offline caching

A script that sits between the page and the network, intercepting requests to serve cached responses — the basis of offline support.

Installability & app-like UX

What makes a site eligible to be installed, and the beforeinstallprompt event for offering your own install UI.

Push notifications

Re-engaging users outside the browser tab with the Push API and Notifications API.


Testing

Unit testing

Fast, isolated tests for individual functions and modules, run without a browser.

End-to-end / browser testing

Simulating real user flows in a real browser — clicking, typing, navigating — to catch what unit tests can't.

Accessibility testing

Automated checks that catch a subset of accessibility issues, worth running as part of a test suite — but no substitute for manual and assistive-tech testing.


My Resources

A running, personal collection of the tools, references, and people I follow for front-end work — kept separately and updated over time.


About

A reference for building on the web platform itself — HTML, CSS, and JavaScript as browsers actually implement them, plus the media, performance, and accessibility practices that go with them.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors