cv Documentation

Print-friendly, minimalist CV page

9,678 stars TypeScript TypeScript 1 file ยท ~1,044 tokens #nextjs#react#shadcn-ui#tailwindcss
RAW Doc

Technical Documentation: BartoszJarocki/cv

โ„น๏ธ Provenance: Multi-Tier Ingestion ยท CodeWiki Reference

Overview (`README.md`)

minimalist cv [](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FBartoszJarocki%2Fcv)



simple web app that renders a minimalist CV with print-friendly layout.

maintained by an ai robot ๐Ÿค–, with a human pressing merge.

requirements

  • node 22.15 or later. pnpm verify refuses to run on older versions.
  • pnpm

getting started

bash
git clone https://github.com/BartoszJarocki/cv.git
cd cv
pnpm install
pnpm dev
# open http://localhost:3000
# edit src/data/resume-data.ts to customize

scripts

bash
pnpm dev          # start development server
pnpm build        # build for production
pnpm start        # start production server
pnpm lint         # run biome linting checks
pnpm lint:fix     # run biome linting with auto-fix
pnpm format       # check code formatting with biome
pnpm format:fix   # format code with biome
pnpm check        # run both linting and formatting checks
pnpm check:fix    # run both linting and formatting with auto-fix
pnpm verify       # check the page that pnpm build prerendered

project structure

text
scripts/
โ””โ”€โ”€ verify.mjs          # checks run by pnpm verify
src/
โ”œโ”€โ”€ app/                # next.js app router
โ”‚   โ”œโ”€โ”€ components/     # page-level components
โ”‚   โ”‚   โ”œโ”€โ”€ education.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ header.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ projects.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ skills.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ summary.tsx
โ”‚   โ”‚   โ””โ”€โ”€ work-experience.tsx
โ”‚   โ”œโ”€โ”€ apple-icon.png  # home screen icon
โ”‚   โ”œโ”€โ”€ favicon.ico     # browser tab icon
โ”‚   โ”œโ”€โ”€ globals.css     # color palette and base styles
โ”‚   โ”œโ”€โ”€ layout.tsx      # root layout with metadata
โ”‚   โ”œโ”€โ”€ opengraph-image.tsx
โ”‚   โ”œโ”€โ”€ page.tsx        # main resume page
โ”‚   โ”œโ”€โ”€ robots.ts
โ”‚   โ””โ”€โ”€ sitemap.ts
โ”œโ”€โ”€ components/         # shared components
โ”‚   โ”œโ”€โ”€ icons/          # social icon components
โ”‚   โ”œโ”€โ”€ ui/             # presentational components
โ”‚   โ”œโ”€โ”€ command-menu-dialog.tsx
โ”‚   โ””โ”€โ”€ command-menu.tsx
โ”œโ”€โ”€ data/               # resume data configuration
โ”‚   โ”œโ”€โ”€ avatar.jpg      # your photo
โ”‚   โ””โ”€โ”€ resume-data.ts
โ””โ”€โ”€ lib/                # utilities and types
    โ”œโ”€โ”€ resume.ts
    โ”œโ”€โ”€ structured-data.ts
    โ”œโ”€โ”€ types.ts
    โ””โ”€โ”€ utils.ts

customization

all resume content lives in a single file:

typescript
// src/data/resume-data.ts
export const RESUME_DATA = {
  name: "Your Name",
  location: "Your City, Country",
  siteUrl: "https://cv.example.com", // where this CV is deployed
  about: "One line under your name", // also the meta description and share image text
  summary: "A paragraph for the About section",
  // ... more fields
}

export const SECTION_TITLES = {
  summary: "About",
  work: "Work Experience",
  // ... education, skills, projects
}

SECTION_TITLES, in the same file, holds the section headings. to rename or translate a section, change its heading there. the page skips any section whose data is empty, such as projects: [].

replace src/data/avatar.jpg with your own square photo, a jpeg or a png. to use another file name, put the file directly in src/data and change the avatar import in src/data/resume-data.ts.

replace src/app/favicon.ico and src/app/apple-icon.png with your own icons. next.js links them by file name, so no config is needed.

styling uses tailwind css. the palette is six oklch color roles in src/app/globals.css, one set for light and one for dark. tailwind.config.js maps the tailwind color names onto those roles. src/app/opengraph-image.tsx and the themeColor list in src/app/layout.tsx set their own hex colors, so a palette change in globals.css does not reach the share image or the browser theme color.

license

MIT


--- METRICS ---