A modern, responsive CV/resume builder built with SvelteKit and TypeScript. Create beautiful, professional CVs with a clean design and interactive timeline visualization.
Check out the live demo: View Live Demo
svelte-cv/
āāā src/
ā āāā lib/
ā ā āāā components/ # Svelte components
ā ā ā āāā AppCV.svelte # Main CV component
ā ā ā āāā AppCVHeader.svelte
ā ā ā āāā AppCVSections.svelte
ā ā ā āāā AppCVTimeline.svelte
ā ā ā āāā ... # Other components
ā ā āāā stores/ # Svelte stores
ā ā āāā types/ # TypeScript type definitions
ā ā āāā utils.ts # Utility functions
ā ā āāā cv.json # CV data structure
ā āāā routes/ # SvelteKit routes
ā āāā app.html # HTML template
āāā static/ # Static assets
āāā package.json
āāā svelte.config.js
āāā vite.config.ts
āāā tsconfig.json
The CV data is stored in src/lib/cv.json
and follows this structure:
{
"header": {
"name": "Your Name",
"title": ["Job Title"],
"email": "[email protected]",
"phone": "+1234567890",
"location": "City, Country",
"avatar": "https://example.com/avatar.jpg",
"avatarPosition": "left",
"gender": "male",
"github": "https://github.com/username",
"linkedin": "https://linkedin.com/in/username",
"website": "www.example.com"
}
}
{
"navigation": [
{
"anchor": "summary",
"icon": "IconUserFilled",
"text": "Summary"
}
]
}
Each section contains different data structures:
{
"anchor": "summary",
"title": "Summary",
"description": "Professional summary...",
"icon": "IconUserFilled",
"summary": [
"Key point 1",
"Key point 2"
],
"summaryIcon": "IconArrowBigRightLineFilled"
}
{
"anchor": "projects",
"title": "Projects",
"description": "Project showcase...",
"icon": "IconFoldersFilled",
"projects": [
{
"title": "Project Name",
"description": "Project description",
"technologies": ["React", "TypeScript"],
"demo": "https://demo.com",
"github": "https://github.com/project"
}
]
}
{
"anchor": "skills",
"title": "Technical Skills",
"description": "Skills description...",
"icon": "IconCarambolaFilled",
"skills": {
"categories": [
{
"name": "Languages",
"mainSkills": [
{
"name": "JavaScript",
"rating": 5
}
],
"additionalSkills": ["PHP", "Python"],
"additionalSkillsCut": 10
}
]
}
}
{
"anchor": "experience",
"title": "Experience",
"description": "Work experience...",
"icon": "IconBriefcase2Filled",
"experience": [
{
"title": "Job Title",
"company": "Company Name",
"startDate": "January 2023",
"endDate": "Present",
"duration": "1 year 5 months",
"logo": "https://company-logo.png",
"keywords": "React, TypeScript",
"bullets": [
"Achievement 1",
"Achievement 2"
]
}
]
}
{
"anchor": "timeline",
"title": "Career Timeline",
"description": "Career progression...",
"icon": "IconChartAreaLineFilled",
"timeline": {
"startYear": 2008,
"endYear": 2025,
"roles": [
{
"name": "Frontend Development",
"color": "#f97316",
"periods": [
{
"start": "2021-10",
"end": "current",
"duration": "current"
}
],
"totalDuration": "current"
}
]
}
}
{
"anchor": "languages",
"title": "Language Proficiency",
"description": "Language skills...",
"icon": "IconMoodHappyFilled",
"languages": [
{
"name": "English",
"level": "Advanced",
"proficiency": 4,
"description": "Professional working proficiency"
}
]
}
{
"anchor": "education",
"title": "Education",
"description": "Academic background...",
"icon": "IconBookFilled",
"education": [
{
"degree": "Master of Science",
"university": "University Name",
"startDate": "2008",
"endDate": "2010",
"duration": "2 years",
"logo": "https://university-logo.png",
"scholarship": "Scholarship for best students",
"entries": [
{
"label": "Specialization",
"value": "Computer Science"
}
]
}
]
}
{
"anchor": "certifications",
"title": "Certifications",
"description": "Professional certifications...",
"icon": "IconBadgeFilled",
"certifications": [
{
"title": "Certification Name",
"date": "October 2018",
"logo": "https://issuer-logo.png",
"verifyLink": "https://verify.com/cert",
"entries": [
{
"label": "Issuer",
"value": "Issuer Name"
},
{
"label": "Credential ID",
"value": "CERT-123"
}
]
}
]
}
Clone the repository
git clone https://github.com/yourusername/svelte-cv.git
cd svelte-cv
Install dependencies
npm install
Start development server
npm run dev
Open your browser
Navigate to http://localhost:5173
src/lib/cv.json
with your informationAppCVSections.svelte
src/app.css
(see @theme
and .dark
blocks)npm run build
The built files will be in the build
directory, ready for deployment.
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm run check
- Type check with Svelte Checknpm run lint
- Lint code with ESLintnpm run format
- Format code with Prettiersrc/lib/components/
cv.json
AppCVSections.svelte
The project uses Tailwind CSS for styling. You can:
src/app.css
(@theme
and .dark
blocks)src/app.css
The project uses Tabler icons. To add new icons:
@tabler/icons-svelte
. List of supported icons is available hereThis project is configured for static site deployment:
Build the project
npm run build
Deploy to your preferred platform:
build
folderbuild
folderNo environment variables are required for basic usage. The project is self-contained.
git checkout -b feature/amazing-feature
)git commit -m 'Add amazing feature'
)git push origin feature/amazing-feature
)This project is licensed under the MIT License - see the LICENSE file for details.
Made with ā¤ļø using SvelteKit