Built with the Next.js 16 App Router, using a static-first page delivery approach
portfolio-nextjs-notion — Next.js Portfolio Template
By lufigir
A static-first portfolio template based on the Next.js 16 App Router and the Notion API, using ISR to fetch content from a Notion database and building the interface with Tailwind CSS and shadcn/ui.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Uses Notion as a headless CMS, fetching content through Notion API v5.6.0
Uses Incremental Static Regeneration (ISR) and provides an app/api/revalidate revalidation endpoint
Uses TypeScript, together with Tailwind CSS and shadcn/ui components
Supports light and dark mode
The README provides links to a complete tutorial from Notion database structure to Vercel deployment
Template Details
This is a portfolio website template whose content is managed through Notion as a headless CMS, delivered in a static-first manner, and updated using Incremental Static Regeneration (ISR). The README states that its tech stack includes the Next.js 16 App Router, Notion API v5.6.0, TypeScript, Tailwind CSS, and shadcn/ui, with Vercel as the deployment target. The project structure includes the home page and the ISR revalidation endpoint (api/revalidate) under the app directory, items/sections/ui components under components, and data-fetching logic, the Notion client, type definitions, and utility functions under lib. The README also mentions that the template supports light/dark mode and provides links to a complete tutorial covering project setup, Notion database structure, data fetching, ISR and on-demand revalidation, and Vercel deployment.
The README does not provide specific environment variable names, the Notion database field structure, local run commands, or deployment configuration details; these require consulting the linked tutorial. Statements such as "production-ready" in the README are the project's own description, and this introduction does not infer actual production readiness from them.
Is it right for your project?
Use Cases
- Developers who want to maintain portfolio content in a Notion database and avoid editing code directly
- Personal portfolio sites that need static-first pages and want to update content through ISR
- Those who want a project structure example for integrating the Next.js App Router with the Notion API
- Scenarios that plan to deploy the portfolio to Vercel and need an on-demand revalidation mechanism
Suitable For
- Individual developers who use Notion to manage portfolio content
- Developers familiar with or willing to learn the Next.js App Router and TypeScript
- Frontend projects that need a light/dark mode portfolio template
- Users who want to set up and deploy to Vercel step by step following the README tutorial
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
The README does not list the required environment variable names; consult the linked complete tutorial (the felipego.com blog post)
- 2
The README does not provide local installation and run commands; consult the tutorial or the configuration files in the repository
- 3
The Notion database structure, fields, and integration method are not expanded on in the README; the tutorial covers them
- 4
The deployment target is Vercel, and the README provides a one-click Vercel clone deployment link
- 5
The README does not state the Node.js version or other runtime environment requirements
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis listing covers the free version in a public repository under the MIT license; the free scope is the code of that version and does not mean that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of that version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis
https://github.com/lufigir/portfolio-nextjs-notion/blob/main/LICENSEhttps://github.com/lufigir/portfolio-nextjs-notion/blob/main/README.mdPermission is hereby granted, free of charge
Original License Text
Compiled by DeepSeek based on repository license and README ·2026-10-14. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 88 / 100
- Technologies
- Next.js · React
- Website type
- Portfolio
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-01-02
- Screenshot last checked
- 2026-10-14
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: codex-user-requested-batch-review-20261017 · 2026-10-16
Inspect the recorded source material
SHA-256: f3fa3762b7d3399bcc180952661f2556863bf80c00418b166c7bddfc436e7cb6
2026-10-14T14:44:42.234Z
Source file / repository<div align="center">
<img src="https://res.cloudinary.com/dntqogcgc/image/upload/v1767316792/677shots_so_mhyjwf.png" alt="Portfolio banner" />
<h1>Next.js 16 ISR Portfolio with Notion CMS</h1>
<p>
A modern, minimal portfolio built with <strong>Next.js 16 (App Router)</strong> and
<strong>Notion as a headless CMS</strong>, using
<strong>Incremental Static Regeneration (ISR)</strong> for high performance and easy content updates.
</p>
<p>
Content is managed directly from Notion and delivered with a static-first approach.<br />
Built with <a href="https://nextjs.org/">Next.js</a>,
powered by <a href="https://developers.notion.com/">Notion API v5.6.0</a>,
styled using <a href="https://tailwindcss.com/">Tailwind CSS</a> and
<a href="https://ui.shadcn.com/">shadcn/ui</a>.
</p>
<p>
<a href="https://felipego.com/blog/nextjs-notion-portfolio-isr">Complete Tutorial</a> ·
<a href="https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fastrxnomo%2Fportfolio-nextjs-notion">Deploy with Vercel</a>
</p>
</div>
---
## Complete Guide
This project includes a **full, in-depth tutorial** covering everything from zero to production:
- Project setup
- Notion database structure
- Data fetching with the Notion API
- ISR and on-demand revalidation
- Deployment on Vercel
Read the full tutorial here:
**https://felipego.com/blog/nextjs-notion-portfolio-isr**
## Tech Stack
- Next.js 16 (App Router)
- Notion API v5.6.0
- TypeScript
- Tailwind CSS + shadcn/ui
- Incremental Static Regeneration (ISR)
- Vercel
## Features
- Content managed entirely from Notion
- Fast, static-first performance with ISR
- Light / Dark mode
- Fully typed and production-ready
## Project Structure
```txt
portfolio/
├── app/
│ ├── api/revalidate/ # ISR revalidation endpoint
│ ├── globals.css # Global styles and theme variables
│ ├── layout.tsx # Root layout and providers
│ └── page.tsx # Home page (ISR)
├── components/
│ ├── items/ # Individual UI items
│ ├── sections/ # Page sections
│ └── ui/ # Shared UI components
└── lib/
├── data/ # Data fetching logic
├── notion/ # Notion client and types
└── utils.ts # Utility functions
```
## License
MIT — free to use for personal or commercial portfolios.
Explore similar templates
Compare previews and descriptions within the same stack and category.

react-resume-template
A personal resume website template for software developers, built with Next.js, React, and TypeScript and styled with Tailwind CSS. Site content is driven by a single data file at /src/data/data.tsx, with types in dataDef.ts and images in src/images/.
Next.js · Portfolio

nxt-lnk
nxt-lnk is a Next.js-based bio link page template that manages personal information and links via BioData.js and LinksData.js, positioned as a self-hosted alternative to Linktree. It groups links by type, supports enabling/disabling individual links, and offers hexagonal or oval avatars.
Next.js · Portfolio

sylph
Sylph is a minimal portfolio and blog template built on Next.js, supporting MDX/Markdown writing, light/dark themes, and automatic OG image generation. It includes sitemap, robots.txt, metadata, and syntax highlighting, with automatic blog timestamps.
Next.js · Portfolio

sleek-portfolio
A modern, responsive portfolio template built with Next.js 15, TypeScript, Tailwind CSS, and Shadcn UI. It includes an MDX blog, project showcase, work experience timeline, and a contact form that receives messages via Telegram Bot.
Next.js · Portfolio

research-website-template
A React + Next.js template for research personal websites, aimed at PhD students and researchers. It centralizes publications, projects, and other content in src/data as arrays of objects, with optional fields automatically generating UI components.
Next.js · Portfolio

shadcn-portfolio
A developer portfolio template built with Next.js 15, shadcn/ui, Tailwind CSS, and Framer Motion, featuring an MDX blog, light and dark modes, responsive design, and SEO meta tags.
Next.js · Portfolio
