Static Sites

Use Astro by default. It is simple, fast, deploys as plain static files, and has a good built-in asset pipeline.

Best practices

  • Keep CSS and JS in a separate file so that it can be fingerprinted, compressed, and cached
  • Keep source assets high quality; let the build pipeline create production variants.
  • Use astro:assets (Image / Picture) for local images instead of plain <img src={image.src}>.
  • Prefer AVIF/WebP with a JPEG or PNG fallback.
  • Generate responsive widths and set accurate sizes.
  • Mark only the above-the-fold LCP image as priority; lazy-load everything else.
  • Configure Sharp defaults once in astro.config.mjs rather than manually editing images.
  • Run Lighthouse after changes and look first at LCP, total byte weight, and image transfer sizes.