A modern, fast, and beautiful personal blog built with Astro.js and Tailwind CSS.
- ✅ Dark and light mode
- ✅ Blog with MDX support
- ✅ Portfolio/Projects showcase
- ✅ About and Contact pages
- ✅ RSS Feed
- ✅ SEO optimized
- ✅ Mobile-first responsive design
- ✅ Fast page loads with static site generation
- Framework: Astro
- Styling: Tailwind CSS
- Content: MDX (Markdown + JSX)
- TypeScript: For type safety
- Hosting: Cloudflare Pages
/
├── public/ # Static assets (images, favicon, etc.)
├── src/
│ ├── components/ # Reusable Astro components
│ ├── content/ # Blog posts and projects (MDX/Markdown)
│ │ ├── blog/
│ │ └── projects/
│ ├── data/ # Site configuration
│ ├── layouts/ # Page layouts
│ ├── pages/ # Page routes
│ └── styles/ # Global styles
├── astro.config.mjs # Astro configuration
├── tailwind.config.mjs # Tailwind configuration
└── package.json
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
Create a new .md or .mdx file in src/content/blog/:
---
title: "Your Post Title"
description: "A brief description"
pubDate: 2025-10-27
tags: ["tag1", "tag2"]
---
Your content here...Create a new .md file in src/content/projects/:
---
title: "Project Name"
description: "Project description"
pubDate: 2025-10-27
tags: ["tag1", "tag2"]
projectUrl: "https://project-url.com"
githubUrl: "https://github.com/user/repo"
---
Project details...Edit src/data/site.config.ts to customize:
- Site title and description
- Author information
- Social links
- Navigation menu
- Push your code to GitHub
- Log in to Cloudflare Dashboard
- Go to Pages → Create a project
- Connect your GitHub repository
- Build settings:
- Build command:
npm run build - Build output directory:
dist
- Build command:
- Deploy!
Your site will automatically redeploy when you push to your main branch.