Website

Build fast, accessible, and SEO-friendly websites with modern best practices.

Zainstaluj
$clawhub install website

Website Development Rules

Performance

  • Images are the #1 cause of slow sites — use WebP/AVIF, lazy-load below-the-fold, and set explicit width/height to prevent layout shift
  • Render-blocking CSS delays first paint — inline critical CSS in <head>, defer the rest
  • Third-party scripts (analytics, chat widgets) often add 500ms+ — load them with async or defer, audit regularly
  • Fonts cause invisible text flash (FOIT) — use font-display: swap and preload critical fonts
  • Measure with Lighthouse in incognito mode — extensions skew results

Mobile First

  • Start CSS with mobile styles, add complexity with min-width media queries — easier to scale up than strip down
  • Touch targets need 44x44px minimum — fingers are imprecise, small buttons frustrate users
  • Test on real devices, not just browser DevTools — throttling simulation misses real-world jank
  • Horizontal scroll is a critical bug — test every page at 320px width minimum
  • viewport meta tag is required: <meta name="viewport" content="width=device-width, initial-scale=1">

Accessibility

  • Every <img> needs alt text — empty alt="" for decorative images, descriptive text for meaningful ones
  • Color contrast ratio 4.5:1 minimum for body text — use WebAIM contrast checker
  • Form inputs must have associated <label> elements — placeholders alone are not accessible
  • Keyboard navigation must work — test every interactive element with Tab key
  • Screen readers announce heading hierarchy — use H1-H6 in logical order, never skip levels

HTML Structure

  • One <h1> per page only — it's the page title, not a styling tool
  • Use semantic elements: <nav>, <main>, <article>, <aside>, <footer> — they communicate structure to browsers and assistive tech
  • <button> for actions, <a> for navigation — don't use divs with click handlers
  • External links should have rel="noopener" — prevents security vulnerability with target="_blank"
  • Validate HTML — broken markup causes unpredictable rendering across browsers

CSS Patterns

  • Avoid !important — it breaks cascade and makes debugging painful. Fix specificity instead
  • Use relative units (rem, em, %) over fixed px for text — respects user font size preferences
  • CSS custom properties (variables) reduce repetition — define colors and spacing once, use everywhere
  • Flexbox for 1D layouts, Grid for 2D — don't force one to do the other's job
  • Test without CSS loading — content should still be readable in plain HTML

Common Mistakes

  • Missing favicon causes 404 spam in server logs — always include one, even a simple PNG
  • Not setting <html lang="en"> breaks screen reader pronunciation
  • Hardcoded http:// links break on HTTPS sites — use protocol-relative // or always https://
  • Assuming JavaScript is available — core content should work without JS (progressive enhancement)
  • Forgetting print styles — add @media print for pages users might print (receipts, articles)

Before Launch

  • Test all forms actually submit — broken contact forms lose leads silently
  • Check 404 page exists and is helpful — default server 404 looks unprofessional
  • Verify social sharing previews with Open Graph tags — test in Facebook/Twitter debuggers
  • Submit sitemap to Google Search Console — speeds up indexing
  • Set up uptime monitoring — know when your site goes down before users tell you