Astro + Notion + Blog
What is different from astro-notion-blog?
- Stylish theme inspired by Creek
- 100% TypeScript ready
- Easy to customize
- Simpler implemetation: Notion's rendering is achieved simply by markdown-izing pages
- Notion cache ready: it works on Cloudflare Pages
- Support Astro v5 and TailwindCSS v4
💡 Powered by notiondown
- Fetching Notion pages in a database
- Cache Notion pages automatically and reduce build time
- Downloading images in Notion pages automatically
- Basic blocks support
- Code syntax highlighting
- Math equation rendering
- Mermaid diagram rendering
- Automatic OG image generation
These files can be customized without concern for conflicts:
public/*src/customization/*
Click the "Use this template" button on GitHub to create your own repository.
- Duplicate this blog template to your Notion workspace
- Customize the icon, title, and description as you like
- Note the
DATABASE_IDfrom your page URL:https://notion.so/your-account/<DATABASE_ID>?v=xxxx
- Go to My Integrations and create a new integration
- Copy the "Internal Integration Token" as
NOTION_API_SECRET - Go back to your Notion database page, click "..." → "Connections" → "Connect to" and select your integration
- Go to Cloudflare Pages and create a new project
- Connect your GitHub repository
- Set the following environment variables:
NOTION_API_SECRET: Your Notion integration tokenDATA_SOURCE_ID: Your Notion database ID
- Click "Save and Deploy"
After publishing a new post in Notion, you need to trigger a new deployment. You can do this manually from the Cloudflare Pages dashboard, or set up automatic deployments using GitHub Actions or webhooks.
- Support embed and bookmark blocks
- Search
- Related Posts
- i18n support
