Start by copying resume.md.template to resume.md, then build the site from your local resume.md.
npm install
cp resume.md.template resume.md
npm run build
npm run previewnpm run build and npm run preview both read from your local resume.md.
resume.md is intentionally ignored so you can keep personal data locally.
npm run preview watches resume.md, src/, and scripts/, rebuilds on change, and reloads the browser from dist/.
If you want a plain static server without rebuild/reload behavior, use:
npm run serveThe build writes:
dist/index.htmldist/resume.mddist/resume.pdf
PDF generation uses Puppeteer with a bundled browser download, so it also works in CI/build environments like Cloudflare Pages. If you want to force a specific local browser, set CHROME_PATH before running npm run build.
For Cloudflare Pages:
- Build command:
npm run build - Build output directory:
dist
If resume.md does not exist yet, copy the starter file first:
cp resume.md.template resume.mdThis template self-hosts a small set of open-source fonts. Their license texts are included in LICENSES/ and mapped to the tracked files in THIRD_PARTY_NOTICES.md.