A page appearing in a browser feels like progress. The next change asks harder questions: where is its source, which file should change, and can another person reproduce the output?

My workspace contained both downloaded public pages and sites built from editable source. In one review, we could repair canonical URLs in the downloaded output without finding the original framework project. Being able to alter a file did not establish ownership or possession of the original development source.

The question I would ask as a client

Will the next change force me to rebuild everything? I want to leave a website with a clear starting point for the next edit. Delivering a site also means explaining how its owner can continue.

The three things I now separate

Source is where the next change begins. Build output is the public artifact generated from it. Deployment is the version served at a particular address. When these are treated as one folder, generated files can overwrite a repair or an edit can remain invisible online.

For this agency site, primary copy lives in content.mjs and is written into static HTML during the build. That relationship matters more than a fashionable framework: the next person or agent can identify the actual editing surface.

A handover another person can use

  1. Name the source and generated-output locations, and explain how one produces the other.
  2. Record dependencies, the build command and its output directory. Keep a static site static when no server behavior is required.
  3. Change one sentence in source, rebuild, and confirm that sentence in the generated HTML.
  4. Record the file inventory, deployment identifier and artifact checksum.
  5. Ask someone to rebuild from the instructions. Add the missing answers to the handover rather than leaving them in a chat.

Compare what was actually published

Pages Direct Upload publishes prebuilt assets. Preserve editable source separately; do not treat an upload as a substitute for source management. A rollback should also identify the source revision that belongs to the restored artifact.

Explore the implementation

Read-only example · adapt the project path

npm run build
Get-ChildItem -LiteralPath '.\dist' -Recurse -File |
  Measure-Object Length -Sum
Get-FileHash -LiteralPath '.\dist\index.html' -Algorithm SHA256

My completion criterion

A new operator can locate source, make a bounded change, rebuild it and identify the deployed result. That repeatable chain is more valuable than a page that happened to load once. If only public output was recovered, say so explicitly.