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 dev
The blog will be available at http://localhost:5173
- Create a new
.md
file 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 format
src/
├── 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