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_PAGE
environment variable in your.env
file.
-
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
.env
file 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
- Vanilla Extract CSS
MIT © kyoung-jnn
This project was inspired by the following open source projects: