A modern, responsive personal website built with Vue 3, Vite, and TypeScript. This site showcases my work as a Backend Engineer and includes both technical blog posts and travel experiences.
- Modern Tech Stack: Vue 3 with Composition API, Vite, TypeScript
- Responsive Design: Mobile-first approach with Bootstrap 5
- Dark/Light Theme: Toggle between themes with persistent preference
- Markdown Support: Write blog posts in Markdown with syntax highlighting
- SEO Optimized: Meta tags, Open Graph, and structured data
- Fast Performance: Vite for lightning-fast development and builds
- Type Safety: Full TypeScript support for better development experience
- Frontend: Vue 3, TypeScript, Vite
- Styling: SCSS, Bootstrap 5, Custom CSS Variables
- Build Tool: Vite
- Markdown: markdown-it with Prism.js syntax highlighting
- Deployment: Netlify (configurable)
- Node.js 18+
- npm, yarn, or pnpm
-
Clone the repository
git clone https://github.com/barissari/personal-website.git cd personal-website -
Install dependencies
npm install # or yarn install # or pnpm install
-
Start development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser Navigate to
http://localhost:3000
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLintnpm run format- Format code with Prettiernpm run type-check- Run TypeScript type checking
src/
├── components/ # Reusable Vue components
│ ├── Author.vue # Author profile component
│ ├── PostCard.vue # Blog post card component
│ └── ...
├── pages/ # Page components
│ ├── Index.vue # Homepage
│ ├── TechBlog.vue # Tech blog listing
│ └── TravelsBlog.vue # Travel blog listing
├── templates/ # Post templates
│ ├── Post.vue # Tech post template
│ └── TravelPost.vue # Travel post template
├── utils/ # Utility functions
│ └── markdown.ts # Markdown processing
├── assets/ # Static assets
│ ├── style/ # SCSS styles
│ └── icons/ # SVG icons
└── admin/ # Admin panel
Create markdown files in content/posts/ with frontmatter:
---
title: "Your Post Title"
date: "2024-01-01"
description: "Post description"
tags: ["tag1", "tag2"]
---
Your post content here...Create markdown files in content/posts/travels/ with the same frontmatter format.
- Place images in
content/posts/images/ - Use descriptive filenames like
post-slug-front.jpg - Images are automatically optimized by Vite
- Modify
src/assets/style/variables.scssfor color schemes and spacing - Update
src/assets/style/index.scssfor global styles - Component-specific styles are in each
.vuefile
- Update
src/components/Author.vuefor personal information - Modify social links in the same component
- Update site metadata in
index.html
- Vite configuration:
vite.config.js - TypeScript configuration:
tsconfig.json - ESLint configuration:
.eslintrc.js
- Connect your repository to Netlify
- Build settings:
- Build command:
npm run build - Publish directory:
dist
- Build command:
- Deploy - Netlify will automatically build and deploy
The built files in the dist directory can be deployed to any static hosting service:
- Vercel
- GitHub Pages
- AWS S3 + CloudFront
- Firebase Hosting
- Vite for fast development builds
- Code splitting for optimal loading
- Image optimization
- CSS purging in production
This project is licensed under the MIT License - see the LICENSE file for details.
- Email: bayrambariss@gmail.com
- LinkedIn: baris-sari
- GitHub: barissari
- Website: barissari.com
Built with ❤️ by Baris Sari