Next.jsReact作品集博客

nextjs-portfolio-website — Next.js 作品集模板

作者 fabwaseem

基于 Next.js 的作品集与博客平台,内置后台管理、Prisma 数据库和大量可切换主题,采用 MIT 许可。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-13查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

内置后台管理,可管理博客、项目、分类、标签、推荐语和站点设置

02

提供大量预置主题,支持一键切换整站配色,并区分深色与浅色变体

03

博客支持分类、标签、搜索、阅读时长、浏览量以及草稿/发布/归档状态

04

项目展示支持技术栈图标、演示链接、GitHub 链接和 YouTube 视频嵌入

05

集成 Better Auth 认证、AWS S3 图片上传、SMTP 邮件通知和可选的 OpenAI 内容生成

06

使用 Prisma 连接 PostgreSQL,并提供管理员创建脚本

模板详细介绍

这是一个面向个人作品集与博客场景的 Next.js 项目,前端使用 App Router 与 TypeScript,数据层通过 Prisma 连接 PostgreSQL,并配有独立的后台管理界面。公开页面包含项目展示、博客文章、分类标签、搜索、联系表单和推荐语等模块;后台则提供博客、项目、分类、标签、推荐语和站点设置的增删改查,以及访问统计。认证使用 Better Auth,图片上传依赖 AWS S3 预签名 URL,邮件通知通过 SMTP,AI 生成内容为可选的 OpenAI 集成。项目强调主题切换,仓库中提供大量预置配色方案,并包含 GSAP 与 Framer Motion 动画、自定义光标等交互效果。

使用前需要自行准备 PostgreSQL 数据库、S3 存储桶和 SMTP 账号等外部服务,AI 功能还需额外的 OpenAI API Key。仓库以 MIT 许可发布,允许免费使用、修改、商用和分发代码,但演示图片、字体、图标等第三方素材需单独核对许可,域名、托管、数据库、支付或 AI 等外部服务也可能产生费用。

Next.js作品集博客

适合你的项目吗?

适用场景

  • 搭建个人作品集网站,集中展示项目、技术栈和经历时间线
  • 运营带后台的个人博客,发布文章并管理分类与标签
  • 需要频繁更换站点配色,希望从预置主题中快速切换外观
  • 在项目或博客中接入 AI 辅助生成内容与 SEO 信息
  • 将 Next.js 应用部署到 Vercel 或其他支持 Next.js 的平台

适合人群

  • 熟悉 Next.js、TypeScript 和 Prisma 的开发者
  • 能自行准备 PostgreSQL、S3 与 SMTP 等外部服务的个人或团队
  • 需要作品集与博客合一、并带内容管理后台的用户
  • 接受 MIT 许可条款并会自行核对第三方素材许可的使用者

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    需要 Node.js 18+ 与 PostgreSQL 数据库,并配置包含数据库、认证、S3、SMTP 等变量的 .env 文件

  2. 2

    安装依赖后运行 Prisma 迁移与生成命令,再通过 npm run create-admin 创建管理员账号

  3. 3

    图片上传依赖 AWS S3 存储桶,邮件通知依赖 SMTP 账号,AI 功能需要可选的 OpenAI API Key

  4. 4

    后台入口为 /admin/login,主题切换与站点配置在后台设置面板中完成

  5. 5

    部署到 Vercel 或其他平台时需设置全部环境变量并执行数据库迁移

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 图片上传功能依赖 AWS S3 存储桶,需自行开通并配置 AWS 账号与访问密钥,可能产生存储与流量费用。
  • 项目需要自行准备 PostgreSQL 数据库,数据库的托管或云服务可能产生额外费用。
  • AI 博客生成与 SEO 优化功能需要额外的 OpenAI API Key,属于可选的外部付费服务。
  • 邮件通知依赖 SMTP 账号(示例为 Gmail),需自行提供邮箱服务凭据,可能涉及服务条款或费用。
  • 后台认证使用 Better Auth,需自行配置认证密钥与回调地址,属于项目特定的外部依赖。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

- AWS S3 bucket (for image uploads)

README 原文

- PostgreSQL database

README 原文

- OpenAI API key (optional, for AI features)

README 原文

SMTP_HOST=smtp.gmail.com

README 原文

- **Better Auth** - Authentication

README 原文
https://github.com/fabwaseem/nextjs-portfolio-website/blob/main/LICENSEhttps://github.com/fabwaseem/nextjs-portfolio-website/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-13。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 85 / 100
技术栈
Next.js · React
网站类型
作品集 · 博客
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-03-15
截图检查日期
2026-10-13

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: [email protected] · 2026-10-13

查看当时使用的来源资料

SHA-256: 6258f74e4243299c6a73d1454cda81b1fafcaf422380e90fb73e09a2736195d1

2026-10-13T06:16:50.919Z

来源文件 / 仓库
# 🚀 Next.js Portfolio & Blog Platform

<div align="center">

![Next.js](https://img.shields.io/badge/Next.js-16.1-black?style=for-the-badge&logo=next.js)
![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue?style=for-the-badge&logo=typescript)
![Prisma](https://img.shields.io/badge/Prisma-7.2-2D3748?style=for-the-badge&logo=prisma)
![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)
![Themes](https://img.shields.io/badge/Themes-178+-purple?style=for-the-badge)

**A modern, feature-rich portfolio and blog platform with 178+ themes built with Next.js 16, TypeScript, and Prisma**

[Live Demo](https://fabwaseem.vercel.app) · [Report Bug](https://github.com/fabwaseem/nextjs-portfolio-website/issues) · [Request Feature](https://github.com/fabwaseem/nextjs-portfolio-website/issues) · [View Themes](THEMES.md) · [Highlights](HIGHLIGHTS.md)

</div>

---

## ✨ Features

### 🎨 Modern Design & Theming

- **178+ Beautiful Themes** - Massive collection of pre-built color schemes
- **One-click theme switching** - Change your entire site's look instantly
- **VS Code-inspired UI** with sleek, developer-friendly interface
- **Dark/Light mode** variants for each theme
- **Fully responsive** design that works on all devices
- **GSAP animations** for engaging user experience
- **Custom cursor effects** and interactive elements
- **Theme categories**: Vibrant, Pastel, Dark, Light, Nature, Neon, and more

### 📝 Content Management

- **Full-featured blog** with categories, tags, and search
- **Project showcase** with filtering and sorting
- **Rich text editor** with markdown support
- **Image upload** to AWS S3 with presigned URLs
- **SEO optimization** with meta tags, Open Graph, and JSON-LD
- **Reading time** and **view counter** for blog posts
- **Featured content** highlighting
- **Draft/Published/Archived** status management

### 🤖 AI-Powered Features

- **AI blog generation** using OpenAI GPT
- **Automatic SEO optimization** for projects and blogs
- **Smart content suggestions**

### 👨‍💼 Admin Dashboard

- **Secure authentication** with Better Auth
- **Complete CRUD operations** for blogs, projects, testimonials
- **Category and tag management**
- **Settings panel** for site configuration
- **Analytics dashboard** with view statistics
- **Bulk operations** and content management

### 🎯 Portfolio Features

- **Project showcase** with demo links and GitHub integration
- **Tech stack display** with icons
- **Video integration** (YouTube support)
- **Testimonials section**
- **Experience timeline**
- **Skills showcase**
- **Contact form** with email notifications

### 🔧 Developer Experience

- **TypeScript** for type safety
- **ESLint** and **Prettier** for code quality
- **Husky** git hooks for pre-commit checks
- **Conventional Commits** enforcement
- **Hot reload** development
- **Prisma ORM** for database management

---

## 🛠️ Tech Stack

### Frontend

- **Next.js 16** - React framework with App Router
- **React 19** - UI library
- **TypeScript** - Type safety
- **Tailwind CSS 4** - Utility-first CSS
- **Framer Motion** - Animations
- **GSAP** - Advanced animations
- **Radix UI** - Accessible components
- **React Hook Form** - Form management
- **Zod** - Schema validation

### Backend

- **Next.js API Routes** - Serverless functions
- **Prisma** - Database ORM
- **PostgreSQL** - Database
- **Better Auth** - Authentication
- **Nodemailer** - Email service

### Services

- **AWS S3** - Image storage
- **OpenAI API** - AI content generation
- **YouTube API** - Video integration

### DevOps

- **Vercel** - Deployment platform
- **Husky** - Git hooks
- **ESLint** - Code linting
- **Commitlint** - Commit message linting

---

## 🚀 Quick Start

### Prerequisites

- Node.js 18+ and npm/yarn/pnpm
- PostgreSQL database
- AWS S3 bucket (for image uploads)
- OpenAI API key (optional, for AI features)

### Installation

1. **Clone the repository**

```bash
git clone https://github.com/fabwaseem/nextjs-portfolio-website.git
cd nextjs-portfolio-website
```

2. **Install dependencies**

```bash
npm install
# or
yarn install
# or
pnpm install
```

3. **Set up environment variables**

```bash
cp .env.example .env
```

Edit `.env` and add your configuration:

```env
# Authentication
BETTER_AUTH_SECRET=your-secret-key-here
NEXT_PUBLIC_BETTER_AUTH_URL=http://localhost:3000

# Database
DATABASE_URL=postgresql://user:password@localhost:5432/portfolio

# AWS S3
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
AWS_REGION=us-east-1
AWS_S3_BUCKET_NAME=your-bucket-name

# Email (SMTP)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
[email protected]
SMTP_PASS=your-app-password

# OpenAI (Optional)
OPENAI_API_KEY=your-openai-key

# Site URL
NEXT_PUBLIC_BASE_URL=http://localhost:3000
```

4. **Set up the database**

```bash
npx prisma migrate deploy
npx prisma generate
```

5. **Create an admin user**

```bash
npm run create-admin
```

6. **Run the development server**

```bash
npm run dev
```

Open [http://localhost:3000](http://localhost:3000) to see your portfolio!

---

## 📖 Usage

### Admin Panel

Access the admin panel at `/admin/login` and use the credentials you created.

**Admin Features:**

- 📝 Create and manage blog posts
- 🎨 Manage projects with images and videos
- 💬 Add and organize testimonials
- 🏷️ Create categories and tags
- ⚙️ Configure site settings
- 📊 View analytics and statistics

### Content Management

#### Creating a Blog Post

1. Navigate to `/admin/blog/new`
2. Fill in the title, excerpt, and content
3. Add categories and tags
4. Upload a featured image
5. Use AI to generate content (optional)
6. Publish or save as draft

#### Adding a Project

1. Go to `/admin/projects/new`
2. Enter project details
3. Add tech stack, demo link, and GitHub link
4. Upload thumbnail and cover images
5. Optionally add a YouTube video
6. Publish when ready

### Customization

#### Changing Themes

The platform includes 178+ pre-built themes! Change your site's entire look with one click:

1. Go to `/admin/settings`
2. Navigate to "Theme Settings"
3. Browse through available themes
4. Click on any theme to preview
5. Save to apply

**Popular Themes:**

- Aurora Borealis - Northern lights inspired
- Matrix - Classic green terminal
- Sunset - Warm evening colors
- Ocean Breeze - Cool blue tones
- Cherry Blossom - Soft pink aesthetics
- Midnight Oil - Deep dark theme
- Golden Hour - Warm golden tones
- And 171+ more!

**Theme Categories:**

- 🌈 Vibrant (Neon, Spectrum, Joker)
- 🌸 Pastel (Blush, Lavender, Peach)
- 🌑 Dark (Obsidian, Midnight, Abyss)
- ☀️ Light (Snow, Pearl, Vanilla)
- 🌿 Nature (Forest, Moss, Bamboo)
- 🎨 Artistic (Chaos Theory, Witch Girl, Godspeed)

#### Changing Site Information

Edit `app/layout.tsx` to update:

- Site name and title
- Meta description
- Social links
- SEO keywords

#### Styling

- Modify `app/globals.css` for global styles
- Update Tailwind config in `tailwind.config.ts`
- Customize components in `components/` directory

#### Theme

The project uses a VS Code-inspired theme. To customize:

- Edit color variables in `globals.css`
- Modify theme provider in `components/providers/theme-provider.tsx`

---

## 📁 Project Structure

```
nextjs-portfolio-website/
├── app/                      # Next.js app directory
│   ├── (pages)/             # Page routes
│   │   ├── (web)/          # Public pages
│   │   └── admin/          # Admin dashboard
│   ├── api/                # API routes
│   └── globals.css         # Global styles
├── components/              # React components
│   ├── admin/              # Admin components
│   ├── layouts/            # Layout components
│   ├── providers/          # Context providers
│   └── ui/                 # UI components (Radix)
├── lib/                    # Utility functions
├── prisma/                 # Database schema
├── public/                 # Static assets
├── scripts/                # Utility scripts
└── config/                 # Configuration files
```

---

## 🔒 Security

- **Authentication** via Better Auth with secure session management
- **Environment variables** for sensitive data
- **Input validation** with Zod schemas
- **SQL injection protection** via Prisma ORM
- **XSS protection** with React's built-in sanitization
- **CSRF protection** on API routes

---

## 🚢 Deployment

### Deploy to Vercel (Recommended)

1. Push your code to GitHub
2. Import your repository on [Vercel](https://vercel.com)
3. Add environment variables in Vercel dashboard
4. Deploy!

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/fabwaseem/nextjs-portfolio-website)

### Other Platforms

The app can be deployed to any platform that supports Next.js:

- **Netlify**
- **Railway**
- **Render**
- **AWS Amplify**
- **DigitalOcean App Platform**

Make sure to:

1. Set all environment variables
2. Run database migrations
3. Configure build command: `npm run build`
4. Set start command: `npm start`

---

## 🤝 Contributing

Contributions are welcome! Please follow these steps:

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'feat: add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

Please ensure your commits follow [Conventional Commits](https://www.conventionalcommits.org/).

---

## 📝 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

## 👨‍💻 Author

**Waseem Anjum**

- Website: [waseemanjum.com](https://waseemanjum.com)
- GitHub: [@fabwaseem](https://github.com/fabwaseem)
- LinkedIn: [fabwaseem](https://linkedin.com/in/fabwaseem)
- Twitter: [@fabwaseeem](https://twitter.com/fabwaseeem)

---

## 🙏 Acknowledgments

- [Next.js](https://nextjs.org/) - The React Framework
- [Vercel](https://vercel.com/) - Deployment platform
- [Radix UI](https://www.radix-ui.com/) - Accessible components
- [Tailwind CSS](https://tailwindcss.com/) - CSS framework
- [Prisma](https://www.prisma.io/) - Database ORM
- [Better Auth](https://www.better-auth.com/) - Authentication

---

## 📊 Stats

![GitHub stars](https://img.shields.io/github/stars/fabwaseem/nextjs-portfolio-website?style=social)
![GitHub forks](https://img.shields.io/github/forks/fabwaseem/nextjs-portfolio-website?style=social)
![GitHub issues](https://img.shields.io/github/issues/fabwaseem/nextjs-portfolio-website)
![GitHub pull requests](https://img.shields.io/github/issues-pr/fabwaseem/nextjs-portfolio-website)

---

<div align="center">

**If you find this project helpful, please give it a ⭐️!**

Made with ❤️ by [Waseem Anjum](https://github.com/fabwaseem)

</div>
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。