A modern, fast, and elegant personal blog built with SvelteKit. Features a clean design, markdown-based content management, and seamless performance.
- Modern Stack: Built with SvelteKit 5 + TypeScript
- Markdown Content: Write articles in markdown with frontmatter
- Syntax Highlighting: Beautiful code highlighting with Shiki
- Responsive Design: Mobile-first approach with elegant animations
- SEO Optimized: Automatic sitemap generation and meta tags
- Fast Performance: Optimized builds with minimal JavaScript
- Dynamic Theming: Custom CSS properties for consistent styling
- Node.js (v18+)
- pnpm (recommended) or npm
# Clone the repository
git clone https://github.com/abdrizik/blog.git
cd blog
# Install dependencies
pnpm install
# Start development server
pnpm devThe blog will be available at http://localhost:5173
- Create a new
.mdfile insrc/content/ - Add frontmatter with required fields:
---
title: 'Your Article Title'
description: 'Brief description of your article'
publishAt: '2025-01-15'
category: 'Web Development'
slug: 'your-article-slug'
---
Your article content here...title- Article titledescription- Meta description and excerptpublishAt- Publication date (YYYY-MM-DD)category- Article categoryslug- URL slug for the articleupdatedAt- Last updated date (optional)
# Development server
pnpm dev
# Build for production
pnpm build
# Preview production build
pnpm preview
# Type checking
pnpm check
# Format code
pnpm formatsrc/
├── content/ # Markdown articles
├── lib/
│ ├── components/ # Reusable Svelte components
│ ├── styles/ # Global CSS and theme
│ ├── utils/ # Utility functions
│ └── types.ts # TypeScript definitions
├── routes/ # SvelteKit routes
└── app.html # HTML template
Edit src/lib/styles/theme.css to customize colors:
:root {
--color-sea-blue: #04a5bb;
--color-dark-sea-blue: #00758f;
/* Add your custom colors */
}The blog uses modular components in src/lib/components/:
ui/- Main UI componentsicons/- SVG icon componentscontent/- Content-specific components
- Push your code to GitHub
- Connect your repository to Netlify
- Build settings:
- Build command:
pnpm build - Publish directory:
build
- Build command:
- Deploy!
The blog includes:
- Automatic sitemap generation
- Dynamic SSL certificates
- CDN distribution
- Form handling support
The blog uses @sveltejs/adapter-auto which automatically detects and configures for:
- Vercel
- Netlify
- Cloudflare Pages
- And more...
- Lighthouse Score: 100/100 across all metrics
- Bundle Size: < 50KB JavaScript
- Time to Interactive: < 1s
- Core Web Vitals: Excellent
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is open source and available under the MIT License.
- Live Site: abdrizik.xyz
- Author: Abdelrahman Rizik
- Built with: SvelteKit
Built with ❤️ by Abdelrahman Rizik