Next.jsReactSaaS

ShipMore — Next.js SaaS模板

作者 nuknal

ShipMore 是一个基于 Next.js 15 App Router 的应用模板,集成 NextAuth.js 认证、Stripe 支付、next-intl 多语言、主题切换与 Drizzle ORM + PostgreSQL 数据库,帮助开发者跳过基础设施搭建,直接编写业务逻辑。

看看你的网站会是什么样

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

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

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

全部页面与视图 3

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

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

值得关注的模板亮点

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

01

基于 NextAuth.js 的用户认证,支持邮箱/密码登录与 GitHub、Google、Apple 等社交登录,并包含邮箱验证与会话管理

02

Stripe 支付集成,README 描述包含订阅管理、账单历史与用量统计

03

基于 next-intl 的多语言支持,提供中英文切换与本地化路由

04

暗色/亮色主题切换,支持系统主题检测与设置持久化

05

使用 Drizzle ORM 与 PostgreSQL 作为数据库层,并提供迁移、推送、Studio 与种子数据脚本

06

采用 Tailwind CSS 与 Shadcn UI 构建界面,并声明为响应式设计

模板详细介绍

ShipMore 是一个 Next.js 应用模板,README 将其定位为帮助开发者更快构建现代 Web 应用的基础项目。它把常见的应用基础设施预先集成好,包括基于 NextAuth.js 的用户认证、Stripe 支付与订阅、基于 next-intl 的多语言支持、暗色/亮色主题切换,以及使用 Drizzle ORM 连接 PostgreSQL 的数据库层。UI 采用 Tailwind CSS 与 Shadcn UI,并声明为响应式设计。

项目使用 Next.js 15 的 App Router 与 TypeScript,目录结构按 app/[locale] 划分多语言路由,并区分 (auth) 与 (unauth) 页面分组,同时包含 components、db、hooks、i18n、lib、locales、services、styles、types、utils 等目录。README 提供了从克隆、安装依赖、配置环境变量、初始化数据库到启动开发服务器的完整步骤,以及 Vercel 部署说明,并称可部署到其他支持 Next.js 的平台。

README 未提供模板的在线演示地址、版本号、性能数据或生产环境验证情况,也未说明除 Stripe 之外支付集成的具体实现细节;文档中同时出现 Stripe 与 Creem 的表述,二者关系未作解释。

Next.jsSaaS

适合你的项目吗?

适用场景

  • 需要快速搭建带用户认证与订阅付费的 SaaS 类 Web 应用原型
  • 希望以 Next.js App Router 为基础,直接开始编写业务逻辑而非配置基础设施
  • 需要多语言路由与主题切换能力的应用项目
  • 使用 PostgreSQL 并希望通过 Drizzle ORM 管理 schema 与迁移的项目

适合人群

  • 熟悉 Next.js、TypeScript 与 Tailwind CSS 的开发者
  • 需要认证、支付、多语言等常见能力作为起点的应用项目
  • 计划部署到 Vercel 或其它支持 Next.js 平台的项目

上手与定制指南

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

  1. 1

    克隆仓库后使用 pnpm install 安装依赖

  2. 2

    复制 .env.example 为 .env.local,并配置 DATABASE_URL、NEXTAUTH_SECRET、NEXTAUTH_URL、GitHub/Google OAuth、Stripe 以及 Resend、Cloudflare R2 等环境变量

  3. 3

    通过 pnpm db:generate 生成迁移、pnpm db:push 推送数据库结构,可选执行 pnpm db:seed 写入种子数据

  4. 4

    执行 pnpm dev 启动开发服务器,访问 http://localhost:3000 查看应用

  5. 5

    Vercel 部署需连接 GitHub 仓库并配置环境变量;README 称也可部署到 Netlify、Railway、Render 等支持 Next.js 的平台

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

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

使用时需要遵守

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

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 需要自备 PostgreSQL 数据库连接串(DATABASE_URL),模板本身不提供数据库服务。
  • 需自行生成并配置 NEXTAUTH_SECRET 与 NEXTAUTH_URL 才能运行认证。
  • GitHub 社交登录需自行申请并配置 GITHUB_ID 与 GITHUB_SECRET。
  • Google 社交登录需自行申请并配置 GOOGLE_CLIENT_ID 与 GOOGLE_CLIENT_SECRET。
  • Stripe 支付功能需自备 Stripe 密钥(含 webhook secret),属外部付费服务账号。
  • 邮件相关功能依赖 Resend 服务,需自行申请 RESEND_API_KEY。
  • 文件存储依赖 Cloudflare R2,需自行配置访问密钥。
  • README 在支付系统章节写的是 Creem 集成,与功能列表和技术栈中的 Stripe 表述不一致,实际支付实现需自行核实。
  • README 声称支持 Apple 社交登录,但环境变量示例中未列出 Apple 相关配置项。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

DATABASE_URL="postgresql://..."

README 原文

NEXTAUTH_SECRET="your-secret"

README 原文

GITHUB_ID="your-github-id"

README 原文

GOOGLE_CLIENT_ID="your-google-id"

README 原文

STRIPE_SECRET_KEY="sk_test_..."

README 原文

RESEND_API_KEY="your-resend-key"

README 原文

CLOUDFLARE_R2_ACCESS_KEY_ID="your-r2-key"

README 原文

- Creem integration

README 原文

- Social login (GitHub, Google, Apple)

README 原文
https://github.com/nuknal/ShipMore/blob/main/LICENSEhttps://github.com/nuknal/ShipMore/blob/main/README.md

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

项目核对记录与介绍依据

模板资料

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

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

这个项目需要核对什么

记录的仓库更新时间
2025-12-16
截图检查日期
2026-10-14

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

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

查看具体选型方法 →

介绍的制作与核对状态

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

审核声明: codex-user-requested-batch-review-20261017 · 2026-10-16

查看当时使用的来源资料

SHA-256: ed4fb6572304e36aa1c2c32f0be30d04757813585bbed97c3788006ba93e0835

2026-10-14T12:42:37.682Z

来源文件 / 仓库
# ShipMore - Next.js Application Template

A comprehensive Next.js application template that helps developers build modern web applications faster. Includes user authentication, payment integration, multi-language support, theme switching, and other essential features for modern applications, allowing you to focus on business logic rather than infrastructure.

## ✨ Features

- 🔐 **User Authentication** - Based on NextAuth.js, supports multiple login methods
- 💳 **Payment Integration** - Complete subscription and payment system
- 🌍 **Internationalization** - Multi-language support based on next-intl
- 🎨 **Theme Switching** - Dark/light mode toggle
- 📊 **Database** - Using Drizzle ORM and PostgreSQL
- 🎯 **Modern UI** - Tailwind CSS + Shadcn UI
- 📱 **Responsive Design** - Perfect adaptation to various devices
- 🚀 **Performance Optimization** - Next.js 15 best practices

## 🛠️ Tech Stack

- **Framework**: Next.js 15 (App Router)
- **Language**: TypeScript
- **Styling**: Tailwind CSS
- **UI Components**: Shadcn UI
- **Authentication**: NextAuth.js
- **Database**: PostgreSQL + Drizzle ORM
- **Payment**: Stripe
- **Internationalization**: next-intl
- **Deployment**: Vercel

## 📦 Quick Start

### 1. Clone the Project

```bash
git clone <your-repo-url>
cd shipmore
```

### 2. Install Dependencies

```bash
pnpm install
```

### 3. Environment Configuration

Copy `.env.example` to `.env.local` and configure environment variables:

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

Configure the following environment variables:

```env
# Database
DATABASE_URL="postgresql://..."

# NextAuth
NEXTAUTH_SECRET="your-secret"
NEXTAUTH_URL="http://localhost:3000"

# OAuth Providers
GITHUB_ID="your-github-id"
GITHUB_SECRET="your-github-secret"
GOOGLE_CLIENT_ID="your-google-id"
GOOGLE_CLIENT_SECRET="your-google-secret"

# Stripe
STRIPE_SECRET_KEY="sk_test_..."
STRIPE_PUBLISHABLE_KEY="pk_test_..."
STRIPE_WEBHOOK_SECRET="whsec_..."

# Other Services
RESEND_API_KEY="your-resend-key"
CLOUDFLARE_R2_ACCESS_KEY_ID="your-r2-key"
CLOUDFLARE_R2_SECRET_ACCESS_KEY="your-r2-secret"
```

### 4. Database Setup

```bash
# Generate database migrations
pnpm db:generate

# Push to database
pnpm db:push

# Run seed data (optional)
pnpm db:seed
```

### 5. Start Development Server

```bash
pnpm dev
```

Visit [http://localhost:3000](http://localhost:3000) to view the application.

## 📁 Project Structure

```
src/
├── app/                    # Next.js App Router
│   ├── [locale]/          # Multi-language routing
│   │   ├── (auth)/        # Authenticated pages
│   │   └── (unauth)/      # Public pages
│   └── api/               # API routes
├── components/            # React components
│   ├── auth/             # Authentication related components
│   ├── landing/          # Landing page components
│   ├── settings/         # Settings related components
│   ├── subscription/     # Subscription related components
│   └── ui/               # Base UI components
├── db/                   # Database configuration and schema
├── hooks/                # Custom React Hooks
├── i18n/                 # Internationalization configuration
├── lib/                  # Utility libraries and configuration
├── locales/              # Translation files
├── services/             # API services
├── styles/               # Style files
├── types/                # TypeScript type definitions
└── utils/                # Utility functions
```

## 🔧 Core Features

### User Authentication

- Email/password login support
- Social login (GitHub, Google, Apple)
- Email verification
- Session management

### Payment System

- Creem integration
- Subscription management
- Billing history
- Usage statistics

### Internationalization

- Chinese/English support
- Dynamic language switching
- Localized routing

### Theme System

- Dark/light mode
- System theme detection
- Persistent settings

## 📝 Development Guide

### Adding New Pages

1. Create pages in `src/app/[locale]/(auth)` or `src/app/[locale]/(unauth)`
2. Add corresponding translations to `src/locales/`
3. Add to sidebar navigation if needed

### Adding New Components

1. Create components in `src/components/`
2. Use TypeScript and Tailwind CSS
3. Follow project naming conventions

### Database Operations

```bash
# Generate new migrations
pnpm db:generate

# Push to database
pnpm db:push

# View database
pnpm db:studio
```

## 🚀 Deployment

### Vercel Deployment

1. Connect GitHub repository to Vercel
2. Configure environment variables
3. Deploy

### Other Platforms

The project supports deployment to any platform that supports Next.js, such as Netlify, Railway, Render, etc.

## 📄 Script Commands

```bash
# Development
pnpm dev

# Build
pnpm build

# Start production server
pnpm start

# Code linting
pnpm lint

# Type checking
pnpm type-check

# Database related
pnpm db:generate    # Generate migrations
pnpm db:push        # Push to database
pnpm db:studio      # Open database management interface
pnpm db:seed        # Run seed data
```

## 🤝 Contributing

Issues and Pull Requests are welcome!

## 📄 License

[MIT License](LICENSE)

## 🔗 Related Links

- [Next.js Documentation](https://nextjs.org/docs)
- [NextAuth.js Documentation](https://next-auth.js.org)
- [Tailwind CSS Documentation](https://tailwindcss.com/docs)
- [Shadcn UI Documentation](https://ui.shadcn.com)
- [Drizzle ORM Documentation](https://orm.drizzle.team)

## 📞 Support

If you have any questions or need support, please contact us at [[email protected]](mailto:[email protected]).
反馈内容错误

看看同类模板

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