English | 한국어
A blog kit utilizing Next.js and Notion API. This simple blog solution uses Notion as a CMS to manage content and serves it with Next.js and Vercel.
- 🚀 Next.js App Router based design
- 📝 Notion as CMS (Content Management System)
- 🔍 SEO optimization (metadata, sitemap, RSS feed)
- 🎨 Responsive design support
- 🌓 Dark mode support
- 💬 Comment system (Giscus) integration
- 📊 Vercel Analytics support
- 📱 Mobile-friendly interface
- Visit the Notion blog template page: Nextjs Notion Blog Kit Template
- Click the "Duplicate" button in the top-right corner to copy the template to your own Notion workspace.
- Once duplicated, get your Notion page ID from the URL:
- Look at the URL of your duplicated page.
- The page ID is the string before the "?v=" part.
- Example: In https://your-workspace.notion.site/1f4d55b8837780519a27c4f1f7e4b1a9?v=1f4d55b8837781328546000cc33d2d96, the page ID is1f4d55b8837780519a27c4f1f7e4b1a9.
 
- Set this page ID as the NOTION_PAGEenvironment variable in your.envfile.
- 
Fork the repository: - Visit the GitHub repository
- Click the "Fork" button in the top-right corner
- This will create a copy of the repository in your GitHub account
 
- 
Clone your forked repository: git clone https://github.com/yourusername/nextjs-notion-blog-kit.git cd nextjs-notion-blog-kit
- 
Install dependencies: pnpm install 
- 
Set up environment variables: Create a .envfile in the root directory and add the following:NOTION_PAGE=your_notion_page_id
- 
Run the development server: pnpm dev 
- Click the button above or create a new project in the Vercel dashboard.
- Connect your GitHub repository.
- Set the environment variable NOTION_PAGE.
- Deploy!
Edit the database/config.ts file to change site title, description, author information, etc.:
const SITE_CONFIG = {
  title: 'Your Blog Name',
  description: 'Blog description',
  author: {
    name: 'Your Name',
    // ...other information
  },
  // ...other configurations
};Styles are managed in the styles directory. You can customize styles using Vanilla Extract CSS.
nextjs-notion-blog-kit/
├── app/                  # Next.js App Router
│   ├── (home)/           # Homepage
│   ├── posts/            # Blog posts
│   └── ...
├── components/           # React components
├── database/             # Site configuration and metadata
├── api/                  # Notion API integration
├── styles/               # Style definitions
├── types/                # TypeScript type definitions
└── ...
- Next.js (14.x)
- React (18.x)
- TypeScript
- notion-client
MIT © kyoung-jnn
This project was inspired by the following open source projects:
