内置后台管理,可管理博客、项目、分类、标签、推荐语和站点设置
nextjs-portfolio-website — Next.js 作品集模板
作者 fabwaseem
基于 Next.js 的作品集与博客平台,内置后台管理、Prisma 数据库和大量可切换主题,采用 MIT 许可。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
提供大量预置主题,支持一键切换整站配色,并区分深色与浅色变体
博客支持分类、标签、搜索、阅读时长、浏览量以及草稿/发布/归档状态
项目展示支持技术栈图标、演示链接、GitHub 链接和 YouTube 视频嵌入
集成 Better Auth 认证、AWS S3 图片上传、SMTP 邮件通知和可选的 OpenAI 内容生成
使用 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 等外部服务也可能产生费用。
适合你的项目吗?
适用场景
- 搭建个人作品集网站,集中展示项目、技术栈和经历时间线
- 运营带后台的个人博客,发布文章并管理分类与标签
- 需要频繁更换站点配色,希望从预置主题中快速切换外观
- 在项目或博客中接入 AI 辅助生成内容与 SEO 信息
- 将 Next.js 应用部署到 Vercel 或其他支持 Next.js 的平台
适合人群
- 熟悉 Next.js、TypeScript 和 Prisma 的开发者
- 能自行准备 PostgreSQL、S3 与 SMTP 等外部服务的个人或团队
- 需要作品集与博客合一、并带内容管理后台的用户
- 接受 MIT 许可条款并会自行核对第三方素材许可的使用者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Node.js 18+ 与 PostgreSQL 数据库,并配置包含数据库、认证、S3、SMTP 等变量的 .env 文件
- 2
安装依赖后运行 Prisma 迁移与生成命令,再通过 npm run create-admin 创建管理员账号
- 3
图片上传依赖 AWS S3 存储桶,邮件通知依赖 SMTP 账号,AI 功能需要可选的 OpenAI API Key
- 4
后台入口为 /admin/login,主题切换与站点配置在后台设置面板中完成
- 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 原文
https://github.com/fabwaseem/nextjs-portfolio-website/blob/main/LICENSEhttps://github.com/fabwaseem/nextjs-portfolio-website/blob/main/README.md- **Better Auth** - Authentication
README 原文
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">      **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! [](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     --- <div align="center"> **If you find this project helpful, please give it a ⭐️!** Made with ❤️ by [Waseem Anjum](https://github.com/fabwaseem) </div>
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

tailwind-nextjs-starter-blog
tailwind-nextjs-starter-blog 是一个面向个人技术博客的 Next.js 与 Tailwind CSS 启动模板,其 v2 版本基于 App Router 与 React Server Comp…
Next.js · 博客

react-resume-template
A personal resume website template built with React.js, Typescript, Next.js, and styled with Tailwind css
Next.js · 作品集

Nextjs-tailwindcss-blog-template
⭐Build SEO optimized personal blog website with Next.js, Tailwind CSS and Contentlayer. If you want to learn t…
Next.js · 博客

Next-js-Blog-Boilerplate
Next-js-Blog-Boilerplate 是一套面向个人与技术博客的启动代码,基于 Next.js 12 与 Tailwind CSS 3 构建,同时集成了 TypeScript、ESLint、Prettier …
Next.js · 博客

nextjs-blog-theme
nextjs-blog-theme 是 Netlify 团队维护的一个博客启动模板,基于 Next.js 15(Pages Router)和 Tailwind CSS 4.x 构建,设计由 Bejamas 机构完成。
Next.js · 博客

blog
🚀 My personal blog made with Tailwind CSS and NextJS. Template from Timlrx. Feel free to fork, follow and use…
Next.js · 博客
