A resume/CV static site generator — parse your information from YAML files plus Pug templates, and output a deployable static website. Think of it as a resume-focused Hexo. Deploy effortlessly to GitHub Pages or any static hosting service.
- Node.js (with npm)
npm install -g barn-cli
# or
yarn global add barn-cli-
Initialize a project
barn init cd barn-starterThis clones the barn-starter template and removes the
.gitdirectory so you can start fresh. -
Configure
Edit
config.ymlto set your preferred theme, deploy repository, custom domain (CNAME), and other options. -
Fill in your information
Edit YAML files under
themes/<your-theme>/content/with your personal details (profile, education, work experience, skills, etc.). Each YAML file corresponds to a page — for example,index.ymlfor the Chinese version anden.ymlfor the English version. -
Preview locally
barn server
This starts an HTTP dev server (default port 3579) with live reload. Any file changes are detected automatically — the pages regenerate and refresh in your browser in real time. Repeat steps 2–3 until you are satisfied.
-
Deploy
barn deploy
This generates the final static site into
dist/, then pushes it to the remote repository configured inconfig.yml. Turn on GitHub Pages for your repo (instructions) and your resume will be live.
| Command | Alias | Description |
|---|---|---|
barn init |
barn i |
Clone the barn-starter template to bootstrap a new project. |
barn generate |
barn g |
Render Pug templates with YAML data, minify HTML/CSS, and output the static site to dist/. |
barn server |
barn s |
Generate the site, start a dev server with live reload, and open it in the browser. Use -p <port> to specify a custom port. |
barn deploy |
barn d |
Generate the site and deploy to a git-based hosting service (e.g., GitHub Pages). |
barn -v |
Show the version. | |
barn -h |
Show the help manual. |
| Theme | Description |
|---|---|
default |
Two-column layout with a gray sidebar. |
latex |
LaTeX-style academic resume — single-column, serif fonts, horizontal rules, print-friendly. |
To switch themes, change the theme field in config.yml. You can also place additional themes in the themes/ directory.
Contributions of new themes are welcome! See below for guidelines.
- Create a repository named following the pattern
barn-theme-XXXX. - Place Pug templates in the root directory (
./), CSS files in./css/, and images in./image/. - Provide starter YAML files in
./content/so users know what data fields to fill in. - Include a README with documentation and usage instructions.
- Submit a PR to this project to have your theme listed above. If your theme requires a template engine other than Pug, please note that in the PR.
Prefix any command with DEBUG=barn-cli to enable verbose logging:
DEBUG=barn-cli barn server- barn-cli — The CLI tool
- barn-starter — The starter template
- Maples7 — Creator and maintainer
- ShadowWood — Author of the
defaulttheme

