My personal website and blog, built with Astro. Previously built with Jekyll, migrated to Astro in November 2025 for better performance and modern tooling.
Node.js v18.20.8+ or Node.js v20+ required
# Check your Node version
node --version
# If needed, upgrade Node (using nvm)
nvm install 20
nvm use 20# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewThe dev server runs at http://localhost:4321/
- Create a new file in
src/content/blog/:- Use
.mdfor standard posts. - Use
.mdxif you need to use components (like<GithubRepoCard />) inside the post.
- Use
# Example
touch src/content/blog/my-new-post.mdx- Add front matter at the top:
---
title: "Your Post Title"
pubDate: 2025-11-20T12:00:00+08:00
categories: tech # or "random"
description: "A brief description for SEO"
---
Your post content starts here...- Write content using Markdown/MDX:
- Code blocks with syntax highlighting
- Images:
(Relative path tosrc/assetsallows Astro to optimize images) - Links:
[text](url)
---
title: "Building a Modern Web App"
pubDate: 2025-11-20T14:30:00+08:00
categories: tech
description: "My experience building a web app with Astro and TypeScript."
---
## Introduction
This is my new blog post...
## Code Example
```typescript
const greet = (name: string) => {
console.log(`Hello, ${name}!`);
};
```\`
This site automatically deploys to GitHub Pages when pushed to main:
git add .
git commit -m "Add new blog post"
git push origin main- Go to Actions tab: https://github.com/cheeyi/cheeyi.github.io/actions
- Watch "Deploy to GitHub Pages" workflow (~1-2 min)
- Visit https://cheeyi.me when complete
- Source: GitHub Actions
- Custom domain: cheeyi.me (configured via CNAME file)
- Framework: Astro
- Language: TypeScript
- Styling: CSS with custom properties
- Syntax Highlighting: Shiki
- Deployment: GitHub Pages via GitHub Actions
- Package Manager: npm
- Node Version: 20+
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build production site to ./dist/ |
npm run preview |
Preview build locally before deploying |
npm run astro |
Run Astro CLI commands |
- ✅ Blog with syntax highlighting and MDX support
- ✅ RSS Feed at
/rss.xml - ✅ Sitemap automatically generated
- ✅ SEO Optimized with meta tags
- ✅ Fast Performance (Zero JS by default)
- ✅ Mobile Responsive design
- ✅ TypeScript for type safety
- ✅ Automatic Deployments via GitHub Actions
Live Site: cheeyi.me Built with: Astro Migrated from: Jekyll (November 2025)