/astro-notion-blog

🚀 Begin building your very own Notion Blog with Astro.

Primary LanguageAstroMIT LicenseMIT

English | 日本語

astro-notion-blog

GitHub stars GitHub license

astro-notion-blog enables you to create a blog using Notion and generates it statically, resulting in lightning-fast page views.

  • 🚀 Lightning-fast page views
  • 📝 With the ability to write blog content in Notion
  • 🛠️ Customize your site's appearance to your liking
  • ✅ Take advantage of the official Notion APIs

Screenshots

Demo

https://astro-notion-blog.pages.dev

Quick Start

Requirements

Steps

  1. If you enjoy using this repo, don't forget to give it a star! 😉
    • This is very motivating!
  2. Simply duplicate the blog template into your Notion workspace.
  3. Once you've duplicated the page (database), customize it to your liking by changing the icon, title, and description.

  1. For future reference, identify the DATABASE_ID by noting the portion of the duplicated page (database) URL that appears as https://notion.so/your-account/?v=xxxx.

  1. Create an integration and note "Internal Integration Token" as NOTION_API_SECRET
  2. To integrate your application with Notion, share a database with your integration.
  3. To make a copy of this repository in your own account, fork it by clicking on the 'Fork' button in the top-right corner of the repository page.
  4. Go to Cloudflare Pages and sign in
  5. Create new project with "Connect to Git" with your forked repository <your-account>/astro-notion-blog, then click "Begin setup"
  6. In "Build settings" section,
    1. Select "Astro" as "Framework preset"
    2. Open "Environment Variables (advanced)" and set NODE_VERSION, NOTION_API_SECRET and DATABASE_ID

  1. After clicking the 'Save and Deploy' button, your Notion Blog will be published once the deployment process is complete.

Please note that the astro-notion-blog requires manual deployment every time you publish a new post or make updates. You can deploy manually from the Cloudflare Pages dashboard or set up a scheduled deploy using CI tools such as GitHub Actions.

How to customize

Additional requirements

  • Node.js v18 or higher

Steps

  1. To set your secrets as environment variables, run the following commands in your terminal:
export NOTION_API_SECRET=<YOUR_NOTION_API_SECRET>
export DATABASE_ID=<YOUR_DATABASE_ID>
  1. Install dependencies and start local server
npm install
npm run dev
  1. Open http://localhost:3000 in your browser
  2. Press Ctrl+C in the terminal to stop

For more information

See wiki.

Bug reports & feature requests

To report an issue, please create a new Issue. You can use either English or Japanese to describe the issue. 😉

🐦 Twitter community

In our community, you have the opportunity to both support and be supported by other members.

Contribution

We welcome pull requests from anyone who wants to contribute to our project. Your contributions are greatly appreciated!


astro-notion-blog is based otoyo/notion-blog