/astro-notion-blog

🚀 Begin building your very own Notion Blog with Astro.

Primary LanguageAstroMIT LicenseMIT

English | 日本語

astro-notion-blog

GitHub stars GitHub license GitHub sponsors

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

  • 🚀 Blazing 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

PC

Smartphone

🌐 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.14.1 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:4321 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. 😉

💕 Sponsorship

If you like astro-notion-blog, sponsor me so that I can keep on developing software. Thank you.

GitHub sponsors


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