A clean and modern web app that renders a minimalist CV/Resume with a print-friendly layout.
- π Single Config File - Update all your resume data in one place
- π¨ Minimalist Design - Clean, professional layout focused on content
- π± Responsive - Looks great on all devices, from mobile to desktop
- π¨οΈ Print Optimized - Specially designed print styles for physical copies
- β¨οΈ Keyboard Navigation - Press
Cmd/Ctrl + K
to quickly navigate through sections - π Fast Performance - Built with Next.js 14 and optimized for Core Web Vitals
- π Auto Layout - Sections automatically adjust based on your content
- π GraphQL API - Access your resume data programmatically at
/graphql
- π― SEO Friendly - Optimized metadata for better search visibility
- π³ Docker Support - Easy containerized deployment
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui (Radix UI)
- GraphQL: Apollo Server + TypeGraphQL
- Package Manager: pnpm
- Deployment: Optimized for Vercel
- Node.js 18+
- pnpm 8+
-
Clone the repository
git clone https://github.com/BartoszJarocki/cv.git cd cv
-
Install dependencies
pnpm install
-
Start the development server
pnpm dev
-
Open http://localhost:3000 in your browser
-
Customize your CV
Edit the src/data/resume-data.tsx file to add your personal information, work experience, education, and skills.
pnpm dev # Start development server
pnpm build # Build for production
pnpm start # Start production server
pnpm lint # Run ESLint
src/
βββ app/ # Next.js App Router
β βββ layout.tsx # Root layout with metadata
β βββ page.tsx # Main resume page
βββ components/ # React components
β βββ ui/ # shadcn/ui components
β βββ icons/ # Icon components
βββ data/ # Resume data configuration
β βββ resume-data.tsx
βββ images/ # Static assets
β βββ logos/ # Company logos
βββ apollo/ # GraphQL server setup
βββ resolvers.ts
βββ type-defs.ts
All resume content is stored in a single configuration file:
// src/data/resume-data.tsx
export const RESUME_DATA = {
name: "Your Name",
initials: "YN",
location: "Your City, Country",
about: "Brief description",
summary: "Professional summary",
// ... more fields
}
The app uses Tailwind CSS for styling. You can customize:
- Colors in
tailwind.config.js
- Global styles in
src/app/globals.css
- Print styles are defined separately for optimal printing
# Build the container
docker compose build
# Run the container
docker compose up -d
# Stop the container
docker compose down
# Build the image
docker build -t cv-app .
# Run the container
docker run -p 3000:3000 cv-app
No environment variables are required for basic usage. The app works out of the box!
The app is optimized for printing. For best results:
- Use Chrome/Chromium for printing
- Enable "Background graphics" in print settings
- Set margins to "Default"
Contributions are welcome! Feel free to:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- shadcn/ui for the beautiful UI components
- Vercel for hosting and deployment
- All contributors who have helped improve this project
Made with β€οΈ by Bartosz Jarocki