Publication Rail is the smallest useful deployment boundary for this project: build locally, publish statically, and keep the authoring repository separate from the output repository.
Problem
The public site needs a repeatable deployment path, but it does not need a server. The publish step should therefore be easy to audit and easy to replace.
Architecture
GitHub Actions runs the build and then pushes only the dist/ folder to the Pages repository. The token is stored as a secret, and the workflow keeps the source repo free of deploy credentials.
Highlights
- Source repo remains the system of record
- Output repo receives only generated files
- The deploy secret is documented, not embedded