poltergeist
poltergeist copied to clipboard
Astro + Notion based content platform

Poltergeist
Poltergeist is Astro + Notion based content platform.
The 🐒 idea is: you write your posts in Notion, Astro statically generates you a blog.
The 🦍 idea is: you choose where you manage your content (Notion/Obsidian/VSCode/whatever), Poltergeist provides the infrastructure and integrations, and Astro statically generates you a website.
See todo for the current status.
Setup
Poltergeist uses Notion as a blog post database. That means you need to:
1. Generate a Notion API key
- Go to Notion API.
- Create a new integration. Copy the Internal Integration Token.
- Store the token in your
.env
file asNOTION_API_KEY
.
2. Set up a Notion database
- Go to Notion.
- Create a new database. Here is an official Poltergeist Notion template if you need it.
- Add the following properties:
-
Post
(title) - the title of the post. Should point to the post's page. -
Published
(checkbox) - indicates whether the post is published or not. -
Slug
(text) - the slug of the post. -
Title
- meta title of the post. If not set, the title from thePost
property will be used. -
Description
- meta description of the post.
-
You can set different names for these properties in your .env
file. See .env.example
.
- Click Share, and copy the database id. It's the part of the URL after
notion.so/
and before the first?
. - Store the database id in your
.env
file asNOTION_DATABASE_ID
.