Live demo at https://jekyll-theme-minimal-resume.netlify.app
- Install Ruby and Bundler, and Node.js (LTS recommended).
- Fork this repository and clone your fork.
- Copy or edit
_config.ymlto personalize your site (see Settings).
Styles and scripts are built from src/ into assets/ with Gulp; Jekyll then copies them into _site.
-
Ruby dependencies: use Ruby 3.x (see
.ruby-version) so Bundler can resolvegithub-pages. With rbenv or asdf:rbenv install/asdf installas needed, then:bundle install
Committing
Gemfile.lockafter a successfulbundle installkeeps CI and other machines on the same gem versions. -
Node dependencies:
npm install
-
One-off build (compile Sass/JS, then Jekyll):
npm run build
-
Live reload (assets + Jekyll rebuild + BrowserSync on
_site):npm run serve
Or preview without BrowserSync after a build:
npm run build && bundle exec jekyll serve
Requirements: Docker and Docker Compose V2 (docker compose).
Use this to try the theme without installing Ruby or Node on your machine.
docker compose up --buildOpen http://localhost:4000. The github-pages gem uses Jekyll 3.x, which does not include Jekyll 4’s built-in live reload; restart the container to pick up changes, or use the local workflow with npm run serve (BrowserSync).
-
Build only (output stays in the container, no HTTP server):
docker compose run --rm site bundle exec jekyll buildTo write
_siteon the host:docker compose run --rm -v "$(pwd)/_site:/out" site \ sh -c "bundle exec jekyll build --destination /out"
Edits to _config.yml, _includes/, src/, etc. apply after you restart the container (the entrypoint runs bundle install, npm ci, and npm run build again). Named volumes cache gems and node_modules so the host tree does not need local node_modules.
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --buildStop with Ctrl+C or docker compose down. Volumes jekyll_bundle and jekyll_node_modules persist until you remove them (e.g. docker volume rm).
| Variable | Default | Description |
|---|---|---|
JEKYLL_PORT |
4000 |
HTTP port for Jekyll |
Example:
JEKYLL_PORT=8080 docker compose -f docker-compose.yml -f docker-compose.dev.yml upIf you change the port, map it in docker-compose.yml as well (e.g. "8080:8080").
This theme does not require API keys or .env files. All customization is done via _config.yml and HTML includes.
Fill in the following in _config.yml to customize your site.
description: A short description for meta tags
baseurl: "" # subpath of your site, e.g. /blog/
url: "https://your-domain.example" # full site URL including protocol (needed for canonical URLs, Open Graph, and JSON-LD)
lang: en # document language (<html lang="...">)
social_image: /assets/favicon.png # Open Graph / Twitter preview image (path from site root)
og_locale: en_US # optional; og:locale meta tag
theme_color: "#1a222c" # optional; mobile browser chrome colorusername: Your Name
user_description: Short bio shown on the page
user_title: Your headline
email: [email protected]Set
urlandbaseurlcorrectly before you deploy (GitHub Pages, Netlify, etc.). Social preview tags (og:image, etc.) need a validurlso absolute image URLs resolve.
The three columns under “My Expertise” are driven by _data/expertise.yml: section titles, body copy, and Devicon class names per column (see Devicon for available icons bundled in the theme CSS). Edit that file instead of large HTML blocks.
After changing _data/expertise.yml, rebuild with Jekyll (or npm run build / npm run serve).
- Colors: edit Sass variables under
src/styles/(for examplesrc/styles/_vars.scss). - Particles: edit the configuration in
src/js/app.js(see particles.js for options). After changes, runnpm run buildornpm run servesoassets/js/main.jsis regenerated.
Edit _includes/header.html and _includes/footer.html for social links and layout. Use _data/expertise.yml for the expertise grid (see above). Add more pages via index.html or new files in the project root. Example link markup:
<a aria-label="My Github" target="_blank" rel="noopener noreferrer" href="https://github.com/youruser">
<i class="icon fa fa-github-alt" aria-hidden="true"></i>
</a>There are no automated tests in this repository; verify changes with npm run build and by opening the generated site under _site/.
- Open an issue to report bugs or suggest changes.
- Pull requests are welcome.
- Contact: [email protected]
See LICENSE.
If this project helped you, consider supporting the author:
