Multilingual static site for my CV and portfolio. https://cjournois.com/en
  • TypeScript 93%
  • JavaScript 4.1%
  • CSS 1%
  • Dockerfile 0.6%
  • Just 0.5%
  • Other 0.7%
Find a file
cjournois 6d372d35ac
All checks were successful
ci: resume / CI Pipeline (push) Successful in 10m57s
chore(release): resume 0.3.0
2026-06-01 09:40:23 +00:00
.github/workflows feat(deps): update pipeline to v2.5.0 2026-06-01 10:18:04 +02:00
packages/resume-helm chore(release): resume-helm 0.2.1 2026-05-18 17:41:13 +00:00
services/resume chore(release): resume 0.3.0 2026-06-01 09:40:23 +00:00
.editorconfig feat: initial project with working resume 2026-04-09 02:43:55 +02:00
.gitignore feat: adapt with farewell 2026-05-16 17:24:20 +02:00
CHANGELOG.md chore(release): resume 0.3.0 2026-06-01 09:40:23 +00:00
docker-compose.yml feat: adapt with farewell 2026-05-16 17:24:20 +02:00
justfile chore: drop commit-and-tag-version 2026-05-23 10:54:58 +02:00
LICENSE feat: adapt with farewell 2026-05-16 17:24:20 +02:00
mise.toml ci: add just to mise 2026-05-28 06:10:25 +02:00
README.md fix: replace old ref of node by bun 2026-05-21 19:34:13 +02:00
renovate.json ci: solve wrong renovate configuration path 2026-05-18 19:09:55 +02:00
repo-toolkit.json ci: update repo-toolkit description and topics 2026-05-21 21:57:46 +02:00

cjournois/resume

This project is licensed under the GNU AGPL-3.0. See the LICENSE file for details.

Multi-locale résumé site built with React, Vite, and Tailwind; static data under public/data/{locale}/, production image served by nginx.

Project structure

services/
  resume/   # React + Vite app, Containerfile, nginx config

Summary


Developer: Usage

Run the dev server locally, or build static assets for deployment. Locales are discovered at build time from public/data/*/resume.json (exposed to the app via virtual:resume-locales).

  • Development: bun start — Vite dev server (hot reload).
  • Production build: just build — TypeScript project references, then Vite build into dist/. With VITE_SITE_URL set, the Vite plugins also emit sitemap.xml and robots.txt in dist/, and copy public/data, public/assets, and optional public/robots.txt into dist/.
  • Docker: docker compose up — builds the image from Containerfile and serves on http://localhost:8080. Compose sets VITE_SITE_URL for the build stage so sitemap URLs match the published origin.

Developer: Getting Started

Requirements

Development

  • just install — Install dependencies
  • just lint — ESLint
  • just lint-fix — ESLint with automatic fixes
  • just testbun test
  • just test-coverage — Tests with coverage
  • bun start — Vite dev server
  • just build — Typecheck and production build

Optional: create a .env or .env.production with VITE_SITE_URL=https://your.domain so local production builds generate SEO files.


Maintainer: Troubleshooting

Notes for maintainers, issues, or to-do items

  • Empty sitemap in dist/: VITE_SITE_URL must be non-empty at build time; ensure it is set in CI, Docker ARG/ENV, or env files that Vite loads for the active mode.
  • Locales missing in the app: Each locale needs public/data/<code>/resume.json; the virtual module lists only those folders.