# Cache rules, split by whether a filename changes when its contents do.
#
# The build fingerprints JavaScript and CSS — chunk-LQ2OPIJL.js, styles-SWSJV4HU.css
# — so a changed file is always a new name and can be cached forever. index.html
# cannot: it keeps its name and is the file that names all the others, so
# caching it is how visitors get pinned to an old deploy, loading chunks that no
# longer exist. It must be revalidated every time.
#
# Assets are the awkward middle. They are copied under their own names without a
# fingerprint, so `immutable` would leave anyone who has seen a design stuck
# with the old artwork for a year after you replace it. A day is long enough to
# be worth caching and short enough that a correction actually lands.

/index.html
  Cache-Control: public, max-age=0, must-revalidate

/*.js
  Cache-Control: public, max-age=31536000, immutable

/*.css
  Cache-Control: public, max-age=31536000, immutable

/assets/*
  Cache-Control: public, max-age=86400

# The admin screen shows customers' names, addresses and phone numbers. Keep it
# out of search results even though it needs signing in to reach.
/admin
  X-Robots-Tag: noindex

/admin/*
  X-Robots-Tag: noindex
