A modern, content-focused personal website built with Next.js and Keystatic CMS. This website serves as my digital garden where I share my writings, thoughts, and experiences.
- Content Management: Powered by Keystatic CMS with GitHub integration
- Modern Tech Stack:
- Next.js 14 with App Router
- TypeScript
- Tailwind CSS with Typography plugin
- Radix UI components
- Shiki for code highlighting
- Content Types:
- Writings (blog posts/articles)
- Authors
- Tags
- UI/UX Features:
- Dark/Light mode support
- Responsive design
- Modern typography with Geist font
- Beautiful code highlighting
- Dynamic OG images
src/
├── app/ # Next.js app router pages and layouts
├── components/ # Reusable UI components
├── content/ # Content managed by Keystatic
│ ├── authors/ # Author information
│ ├── tags/ # Content tags
│ └── writings/ # Blog posts and articles
├── lib/ # Utility functions and shared logic
└── assets/ # Static assets
- Clone the repository
- Install dependencies:
pnpm install
- Set up environment variables:
KEYSTATIC_GITHUB_CLIENT_ID=your_client_id KEYSTATIC_GITHUB_CLIENT_SECRET=your_client_secret KEYSTATIC_SECRET=your_secret APP_URL=http://localhost:3000
- Run the development server:
pnpm dev
pnpm dev
- Start development serverpnpm build
- Build for productionpnpm start
- Start production serverpnpm lint
- Run ESLint
Content is managed through Keystatic CMS, which integrates with GitHub. The CMS supports:
- Rich text editing
- Image uploads
- Draft mode
- External URL redirects
- Custom layouts for content
The website is deployed on Vercel. Make sure to set up the required environment variables in your Vercel project settings.
This project is licensed under the MIT License - see the LICENSE file for details.