A clean, minimalist blog build with Next.js (App Router), Tailwind CSS, and Notion as the CMS.
- 🚀 Next.js 14 App Router
- 🎨 Tailwind CSS for styling
- 📝 Notion as CMS (write posts in Notion, publish automatically)
- ⚡ Fast & SEO Friendly (Server-side rendering / Static generation)
- 📱 Responsive Design
Rename .env.example to .env (or create one) and add your Notion credentials:
NOTION_TOKEN=secret_xxxxxxxxxxxxxxxxx
NOTION_DATABASE_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx- NOTION_TOKEN: Your Notion Integration Token (create one at Notion Developers).
- NOTION_DATABASE_ID: The ID of your Notion database.
npm install
npm run devOpen http://localhost:3000 with your browser.
- Push your code to a Git repository (GitHub/GitLab/Bitbucket).
- Import the project into Vercel.
- IMPORTANT: In the Vercel Project Settings > Environment Variables, add:
NOTION_TOKENNOTION_DATABASE_ID
- Deploy!
If your deployed site returns 404 errors (especially on blog post pages or the home page):
- Check Environment Variables: Ensure
NOTION_TOKENandNOTION_DATABASE_IDare correctly set in Vercel Project Settings. - Check Notion Permissions: Ensure your specific Notion Database is shared with your Notion Integration (click the
...menu on the database page ->Add connections-> select your integration). - Check Build Logs: Look at the Vercel build logs. If the token is missing, the build might succeed but generate empty pages or fail to fetch routes.
- Check Runtime Logs: If using dynamic rendering, check the "Functions" logs in Vercel dashboard for errors like "API Response Error".