The whole category in one page.
STRUCTURE, PRESENTATION AND BEHAVIOUR ARE SEPARATE
Markup describes meaning, stylesheets describe appearance, scripts add behaviour.
Build so the core works without scripts — they fail, and a page depending entirely on them shows nothing when they do.
FOUR THINGS EVERY DOCUMENT NEEDS
Document type, language, character encoding, viewport setting. Without the last, a page renders as a shrunken desktop layout on a phone.
START FROM NATIVE ELEMENTS
They provide keyboard handling, focus and announcement already. Rebuilding them is where accessibility is lost.
Never remove the focus indicator, and never convey meaning by colour alone.
THE THREE RULES THAT PREVENT MOST VULNERABILITIES
Parameterise every query. Escape output for its context. Verify on every action that this user is entitled to this specific record.
That last one is the commonest serious fault in custom applications.
EVERYTHING IN THE BROWSER IS UNDER THE USER'S CONTROL
Any key in your JavaScript is public, and client-side validation can be bypassed entirely.
MEASURE PERFORMANCE ON A MODEST DEVICE AND A SLOW CONNECTION
Your own machine conceals every problem. Images are usually the largest saving; scripts cost more than their size.
For visitors on metered data, every byte is a cost, not only a delay.