A print-ready CV/resume template for Astro. Your whole CV lives in one typed config file, ships zero client-side JavaScript, follows the system dark mode automatically, and turns into a clean recruiter-ready PDF with Ctrl+P.
- Theme demo (fictional data): cv.dzhuk.com/demo
- Author's site (real data): cv.dzhuk.com
- 📝 Single Config File - Update all your cv data in one place
- 🖨️ Print Optimized - Specially designed print styles: press
Ctrl + Pfor a clean, one-column PDF - 🌓 Dark Mode - Follows the system theme (
prefers-color-scheme) with no JavaScript and no flash - 🎨 Minimalist Design - Clean, professional layout focused on content
- 📱 Responsive - Looks great on all devices, from mobile to desktop
- ⚡ Zero JavaScript - Ships with no client-side JS for lightning-fast loads
- 🚀 Static Generation - Pre-rendered HTML for optimal performance
- 🎯 SEO Friendly - Open Graph, Twitter cards, JSON-LD
Personschema, sitemap and canonical URLs
| Dark mode | Print to PDF | Responsive |
|---|---|---|
![]() |
![]() |
![]() |
- Framework: Astro
- Language: TypeScript
- Styling: Tailwind CSS
- Node.js 22.12+
The fastest way — click Use this template to create your own copy. Or clone manually:
-
Clone the repository
git clone https://github.com/ZhukDI/cv.git cd cv -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open http://localhost:4321 in your browser
-
Customize your CV
Edit the src/data/cv.ts file to add your personal information, work experience, education, and skills. The /demo page is rendered from src/data/demo-cv.ts — a fictional dataset kept as a neutral example for the theme listing; delete the page and its data file if you don't need it.
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run screenshots |
Regenerate promo screenshots in screenshots/ (requires a prior npm run build and local Chrome) |
npm run astro ... |
Run CLI commands like astro add, astro check |
npm run astro -- --help |
Get help using the Astro CLI |
The site runs on Cloudflare Pages and is connected to this GitHub repository:
- Push or merge to
main→ automatic production build and deploy - Pull requests → automatic preview builds (see the
Cloudflare Pagescheck on the PR for the preview URL and logs)
If you prefer not to use Cloudflare, the site can be served from an nginx container:
docker build -t zhukdi/dzhuk-cv:latest .
docker compose up -d # serves the image on http://localhost:8080The multi-stage Dockerfile builds the site with Node and serves dist/ via nginx.
- Useful tools for SEO & performance - Online tools for checking page speed, meta tags, structured data, and more
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.
- Inspired by BartoszJarocki/cv - Original Next.js implementation
- Astro for the amazing framework



