This repository contains the source code for the Railway blog. We use a NextJS app with Notion as our CMS.
- NextJS
- TypeScript
- TailwindCSS
- Notion
We also have a detailed guide on our blog to help users deploy a similar blog using Railway.
You can find instructions on how to set up the Notion Database, TLDR you need the following fields in a Database - Inline on a page, it needs to be inline, or else it won't work.
- Page (Title) - The page containing a post
- Slug (Text) - The URL of a post
- Published (Checkbox) - Only published blog posts show up on the website
- Date (Date) - The date the post was published
- Authors (Person) - A list of users that wrote the post
- Image (Text) - The URL of the meta image for a post
- Description (Text) - The preview text for the post
- Featured (Checkbox) - Show post in the featured section
- FeaturedImage (Text) - The URL of the image to use when a post is featured
- Category (Select) - Post category options
This will be done on Notion's Manage Integration page, copy the token, this will be used as NOTION_API_TOKEN
You can get this from the URL of the page, which you can obtain by clicking the Share button in the upper-right of the page and clicking Copy Link. The link structure is https://www.notion.so/<user>/<database_Id>?v=....
, the database_Id will be used as POSTS_TABLE_ID
during the deploy.
That is it, just make sure the properties on a post within Notion are not empty.
This blog is heavily based on this example by JJ Kasper.