返回项目列表

个人博客系统 - 全栈开发

基于 Next.js 13 App Router 和 TypeScript 开发的个人博客系统,支持 Markdown 文章、评论、标签管理等功能。

2025.05-2025.06

项目背景

个人博客系统是一个用于分享技术文章和项目经验的平台,支持 Markdown 文章编写、代码高亮、图片上传、评论互动等功能。项目需要具备良好的 SEO 优化、快速的页面加载速度和优秀的用户体验。作为全栈开发工程师,我负责从前端架构到后端 API 的全流程开发。

技术架构

项目采用 Next.js 13 App Router 架构,利用 React Server Components 和 Streaming 实现高性能渲染。后端使用 Next.js API Routes 构建 RESTful 接口,MongoDB 作为数据库,Prisma ORM 实现数据访问层,NextAuth.js 处理用户认证。前端使用 Tailwind CSS 实现响应式设计,支持深色模式和主题切换。

核心功能

文章管理:支持 Markdown 文章的创建、编辑、发布、删除等全生命周期管理

代码高亮:集成 Prism.js 实现代码语法高亮,支持多种编程语言

图片上传:支持图片上传和压缩,使用本地存储或云存储服务

评论系统:支持文章评论、回复、点赞等功能,支持 Markdown 格式

标签分类:支持文章标签和分类管理,方便内容组织和检索

搜索功能:支持全文搜索和标签搜索,快速找到相关文章

用户认证:集成 NextAuth.js 实现用户登录、注册、权限管理等功能

主题切换:支持浅色模式和深色模式切换,提供更好的阅读体验

技术栈

Next.js 13ReactTypeScriptTailwind CSSMongoDBPrismaNextAuth.jsDocker

工作职责

  • 1

    设计并实现基于 Next.js 13 App Router 的前端架构,优化页面加载性能

  • 2

    开发 Markdown 编辑器,支持代码高亮、图片上传等功能

  • 3

    构建后端 API 接口,实现文章管理、评论系统、标签分类等功能

  • 4

    集成 NextAuth.js 实现用户认证和授权系统

  • 5

    使用 MongoDB 和 Prisma ORM 实现数据存储和查询

  • 6

    配置 Docker 容器化部署,确保开发环境一致性

技术难点与解决方案

SEO 优化和页面性能

使用 Next.js 13 的 Server Components 和 Streaming 优化页面加载,实现动态元标签和结构化数据,配置图片懒加载和代码分割,最终将 LCP 优化至 0.5 秒,Core Web Vitals 全部通过

Markdown 编辑器开发

集成 react-markdown 和 remark/rehype 插件实现 Markdown 渲染,使用 CodeMirror 开发编辑器,支持实时预览和语法高亮,最终提供流畅的写作体验

图片上传和存储

实现图片上传接口,使用 sharp 库进行图片压缩和格式转换,支持本地存储和云存储,配置 CDN 加速图片访问,最终将图片加载速度提升 70%

评论系统性能优化

使用 MongoDB 的索引优化查询性能,实现评论的分页加载和懒加载,使用 Redis 缓存热门文章的评论,最终将评论加载时间优化至 200ms

项目成果

实现了支持 SEO 优化的个人博客系统,Google 搜索排名前 10

页面加载速度达到 0.5 秒,Core Web Vitals 全部通过

Markdown 编辑器用户体验优秀,支持实时预览

系统安全性良好,通过了基本的安全测试