Publish blog drafts and deploy to production
Publish saminprogress to production. This handles the full pipeline: drafts → blog → build → deploy.
Check src/drafts/ for .md files (excluding ideas.md).
For each draft found:
status: edited first (these have been through the editor skill)status: draft but note they haven't been edited yetsrc/content/blog/ in the projectstatus field, set draft: falsesrc/drafts/ (it now lives in src/content/blog/)If the user says "publish <slug>", find and publish that specific draft.
If no drafts are found in src/drafts/, also check the legacy Obsidian location at /mnt/c/Users/saman/Obsidian/Cherry-Tasks/blog-drafts/ as a fallback. For Obsidian drafts, rename with suffix after copying.
.publishedIf no drafts are found anywhere, skip to step 2.
pnpm build
If the build fails, report the error and stop.
rsync -avz --delete dist/ [email protected]:/tmp/saminprogress-dist/
ssh [email protected] "docker run --rm -v saminprogress_web:/data -v /tmp/saminprogress-dist:/src:ro alpine sh -c 'rm -rf /data/* && cp -r /src/* /data/' && rm -rf /tmp/saminprogress-dist"
curl -sI https://saminprogress.tech | head -5
Report the HTTP status code to confirm success.
If a draft is missing frontmatter, use this template:
---