How I Use Notion as a Database for My Portfolio Content
9/22/2025 • 3 min read
#Notion #Blog #Static-Content
When building my personal portfolio, I wanted it to be fast, minimal, and easy to maintain. Instead of relying on a heavy CMS, I decided to use Notion as a lightweight database for all my static content — from blog posts to project descriptions and about-me sections.
Here’s why and how I did it:
Why Notion?
Notion gives me:
- A clean content editor – I can focus on writing without dealing with code.
- An API – Perfect for fetching data dynamically into my portfolio.
- Centralized content management – Everything is in one place: posts, pages, metadata, and more. This way, I don’t have to redeploy my website every time I want to add a blog post or update a description.
Static Content for a Fast Website
My portfolio is built with Astro + Tailwind. I fetch the content from Notion during build time, so the blog posts are transformed into static HTML pages.
The benefit?
- No database queries on every visit.
- Fast load times because everything is pre-rendered.
- SEO-friendly static pages. It’s the best of both worlds: dynamic content creation with a static website’s performance.
How I Structure My Content in Notion
I keep a single Notion database with:
- Title: Post title
- Slug: Used for the URL
- Date: Publishing date
- Tags: For filtering on the blog page
- Content: The body of the post From there, my portfolio fetches the database, maps each entry, and generates the blog pages automatically.
Writing Posts Becomes Effortless
Now, whenever I want to create a new blog post:
- I open my Notion page.
- Write the post.
- Publish it by simply toggling a property in Notion. Next time my site rebuilds, the post is live — no coding needed.
Results
- Content management feels natural because Notion is easy to use.
- My blog page stays fast with static rendering.
- I focus on writing instead of fiddling with markdown files or CMS setups. This approach has been a game-changer for keeping my portfolio simple yet dynamic.