--- title: "Website Publishing Pipeline" date: "2026-07-31" --- HOW THIS SITE GETS BUILT AND DEPLOYED -------------------------------------------------- ## STACK - Quarto renders every `.qmd` to both HTML and plain text - nginx on the VPS does user-agent detection: `curl` gets `.txt`, browsers get `.html` - `deploy.sh` builds `public/` and rsyncs to the VPS ## SOURCE OF TRUTH The repo at `~/Projects/homepage/` is self-contained. `blog/` holds these posts as flat `.qmd` files; `blog/index.qmd` is the listing page, newest first. ## PUBLISHING (voidlaptop agent) 1. Write `blog/.qmd` with title + date frontmatter 2. Add a numbered entry to `blog/index.qmd` 3. Commit, push to meru (sync hub), `./deploy.sh` 4. Verify: `curl https://jayrup.me/blog/` ## WHY THIS WORKS `deploy.sh` finds every `.qmd` recursively, so new posts are built with zero script changes. nginx's `try_files` cascade resolves `/blog/` to the `.txt` for curl and the `.html` for browsers. -------------------------------------------------- BACK: [BLOG](https://jayrup.me/blog) | [HOME](https://jayrup.me)