Launch your SEO-friendly, responsive blog, powered by Notion.
A modern, fast, and customizable blog template powered by Notion as a CMS and Next.js. This template allows you to use Notion as your content management system while serving your blog with Next.js.
NOTION_TOKEN
)
https://www.notion.so/20bf471a8ac78080a3d4dad6ed77ca17?v=...└───────── Database ID ─────────┘
.env.local
file in your project root:
NOTION_TOKEN=your_integration_token_hereNOTION_DATABASE_ID=your_database_id_hereNEXT_PUBLIC_SITE_URL=your_site_url_here
npm installnpm run dev
Visit http://localhost:3000
to see your blog.
src/lib/notion.ts
:
export interface Post {// ... existing properties ...yourNewProperty?: string; // Add your new property}export async function getPost(pageId: string): Promise<Post | null> {try {// ... existing code ...const post: Post = {// ... existing properties ...yourNewProperty: properties.YourNewProperty?.your_property_type?.value,};// ... rest of the code ...}}
src/app/posts/[slug]/page.tsx
to change the blog post layoutsrc/components/mdx-component.tsx
to customize markdown renderingAccess your integration settings anytime:
Create new blog posts:
The template uses these default properties:
Title
- The post title (required)Status
- Publication status (Published/Draft)Published Date
- Post publication dateAuthor
- Post authorTags
- Post tags (multi-select)Category
- Post category (select)Featured Image
- Cover image URLFeel free to submit issues and enhancement requests!
MIT License - feel free to use this template for your own blog!
Launch your SEO-friendly, responsive blog, powered by Notion.
A modern, fast, and customizable blog template powered by Notion as a CMS and Next.js. This template allows you to use Notion as your content management system while serving your blog with Next.js.
NOTION_TOKEN
)
https://www.notion.so/20bf471a8ac78080a3d4dad6ed77ca17?v=...└───────── Database ID ─────────┘
.env.local
file in your project root:
NOTION_TOKEN=your_integration_token_hereNOTION_DATABASE_ID=your_database_id_hereNEXT_PUBLIC_SITE_URL=your_site_url_here
npm installnpm run dev
Visit http://localhost:3000
to see your blog.
src/lib/notion.ts
:
export interface Post {// ... existing properties ...yourNewProperty?: string; // Add your new property}export async function getPost(pageId: string): Promise<Post | null> {try {// ... existing code ...const post: Post = {// ... existing properties ...yourNewProperty: properties.YourNewProperty?.your_property_type?.value,};// ... rest of the code ...}}
src/app/posts/[slug]/page.tsx
to change the blog post layoutsrc/components/mdx-component.tsx
to customize markdown renderingAccess your integration settings anytime:
Create new blog posts:
The template uses these default properties:
Title
- The post title (required)Status
- Publication status (Published/Draft)Published Date
- Post publication dateAuthor
- Post authorTags
- Post tags (multi-select)Category
- Post category (select)Featured Image
- Cover image URLFeel free to submit issues and enhancement requests!
MIT License - feel free to use this template for your own blog!