A modern, obviously vibe-coded, dark-mode portfolio/resume website template built with SvelteKit. Perfect for software engineers, full-stack developers, DevOps engineers and other technical professionals who want a clean, professional online presence.
Clone this template
git clone [email protected]:Kxpi/yadr.git my-portfolio
cd my-portfolio
Install dependencies
npm install
Customize your data
src/lib/config.ts - Site-wide settingssrc/lib/data/profile.ts - Your experience, skills, etc.static/profile.jpg with your photoRun development server
npm run dev
Open http://localhost:5173 to see your site.
Build for production
npm run build
Static files will be generated in the build/ directory.
src/lib/config.ts)export const siteConfig = {
title: "Your Name | Software Engineer",
description: "Your professional summary",
url: "https://yourname.dev",
github: "https://github.com/your-username",
linkedin: "https://linkedin.com/in/yourusername",
email: "[email protected]",
formspreeId: "YOUR_FORM_ID" // Get from https://formspree.io
};
src/lib/data/profile.ts)Update these sections:
profile - Name, title, tagline, summaryskills - Your tech stack (organized by category)experience - Work historyhighlights - Top 4 achievementseducation - Degree infocertifications - Optional certifications listReplace static/profile.jpg with your own photo. Recommended:
Edit the categories in src/lib/components/sections/Skills.svelte:
const categories = [
{ key: "frontend", label: "Frontend" },
{ key: "backend", label: "Backend" },
{ key: "databases", label: "Databases" },
{ key: "tools", label: "Tools & DevOps" }
];
The project uses ESLint and Prettier for code quality and formatting:
# Check for linting errors
npm run lint
# Auto-fix linting errors
npm run lint:fix
# Check code formatting
npm run format:check
# Auto-format all files
npm run format
# Type check with svelte-check
npm run check
The project uses Husky and lint-staged to automatically run checks on staged files before each commit:
.js, .ts, .svelte filesSetup:
npm install # Installs Husky hooks automatically
Manual checks:
If you want to run all checks manually:
npm run lint && npm run format && npm run check
Skip pre-commit (not recommended):
git commit --no-verify -m "message"
All checks run automatically in GitHub Actions:
.github/workflows/ci.yml):.github/workflows/deploy-gh-pages.yml):The template uses Tailwind CSS v4 with shadcn-svelte's zinc theme. To change colors:
Edit src/app.css and modify the CSS variables:
.dark {
--background: oklch(...);
--primary: oklch(...);
/* etc */
}
All sections are in src/lib/components/sections/. To remove a section:
Highlights.svelte)src/routes/+page.svelteNavigation.svelteThe template uses Lucide Icons throughout. To change icons:
import Rocket from "lucide-svelte/icons/rocket";
<Rocket class="h-6 w-6" />
Example - Changing Highlights Icons:
Edit src/lib/components/sections/Highlights.svelte:
// Replace these imports with your preferred icons
import Code from "lucide-svelte/icons/code";
import Layers from "lucide-svelte/icons/layers";
import Zap from "lucide-svelte/icons/zap";
import Users from "lucide-svelte/icons/users";
const icons = [Code, Layers, Zap, Users];
The icons array matches the order of highlights in profile.ts, so the first icon corresponds to the first highlight, and so on.
Replace static/favicon.svg with your own icon.
xabcd123)formspreeId in src/lib/config.tsFree tier includes 50 submissions/month.
This project is configured to automatically deploy to GitHub Pages when you push to the main branch.
Push to GitHub
git init
git add .
git commit -m "Initial commit"
git remote add origin [email protected]:Kxpi/yadr.git
git push -u origin main
Enable GitHub Pages
gh-pages / rootAccess your site
gh-pages branchhttps://kxpi.github.io/yadr/Note: If deploying to Cloudflare Pages with a custom domain, you'll need to remove the base path from svelte.config.js:
paths: {
base: ""; // Remove or comment out the base path
}
Push to GitHub
git init
git add .
git commit -m "Initial commit"
git remote add origin [email protected]:Kxpi/yadr.git
git push -u origin main
Deploy to Cloudflare Pages
npm run buildbuildAdd Custom Domain (Optional)
yourname.dev)Both work great with SvelteKit. The build settings are the same:
npm run buildbuildMIT License - feel free to use this template for your portfolio!
Found a bug or have a suggestion? Feel free to open an issue or submit a PR.
build directory is specified (not dist)NODE_VERSION=18 environment variablesrc/lib/config.tsstatic/ folder/filename.jpg (leading slash)