共享平台服务集中处理租户、用户、JWT/JWKS 认证、计费、SMTP 邮件与审计日志
evo.platform — Next.js SaaS模板
作者 evomedia-net
evo.platform 是一套多租户 SaaS 平台与模板工具包,包含共享平台服务、Node 与 Python SDK、Next.js 启动模板和 evo new 脚手架 CLI,支持独立运行或接入平台。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
提供 Node 与 Python 两个 SDK,封装认证、租户、成员、邀请、计费、品牌和邮件
templates/next 启动模板基于 Next.js + Prisma + PostgreSQL,带 IndexedDB 变更队列与 last-write-wins 同步
evo new 脚手架 CLI 可克隆模板、重命名并生成密钥
每个模板默认独立运行,设置 PLATFORM_URL 后可切换到平台 SDK
模板详细介绍
evo.platform 把多租户应用里重复的底层设施抽出来,做成一个共享平台服务加模板工具包。平台服务基于 Node.js/NestJS、Prisma 和 PostgreSQL,负责租户、用户、认证(JWT/JWKS)、计费、SMTP 邮件与审计日志,一个服务可以服务多个应用。配套两个 SDK(@evoplatform/sdk-node 与 evoplatform-sdk Python 版)封装认证、租户、成员、邀请、计费、品牌和邮件,让应用不必手写 HTTP 调用。模板部分提供 templates/next,即 Next.js + Prisma + PostgreSQL 的启动模板,带离线优先的浏览器层(IndexedDB 变更队列、last-write-wins 同步),并遵循统一的模板契约。脚手架 CLI 用 evo new <app-name> 完成克隆、重命名和生成密钥。
每个模板默认以独立模式运行:使用本地用户表、单一隐式租户,不依赖外部服务,可在一台机器上离线运行。设置 PLATFORM_URL 及客户端凭据后,认证、租户和邮件会切换到平台 SDK。应用可以先独立运行,之后再接入平台。仓库还包含架构、模板契约、部署和流程文档,其中流程文档用带编号步骤的序列图说明注册、租户站点请求和调用 evo-ai(独立商业服务,SDK 的 AskAi 客户端为可选)的过程。
项目声明处于 working v1 状态,平台服务(含管理控制台)、两个 SDK、Next.js 模板和 evo new CLI 均可运行并经过测试,已在 ProvenSheet、CivilCode 和 DocketMail 三个应用上生产使用。代码以 MIT 许可发布,但演示图片、字体、图标等第三方素材需单独核对许可,域名、托管、数据库、支付或 AI 等外部服务可能另行收费。
适合你的项目吗?
适用场景
- 需要为多个应用复用同一套租户隔离、登录、角色与计费逻辑的团队
- 想从可运行的 Next.js 模板起步,再按需接入共享平台服务的项目
- 希望先以独立模式本地开发、之后再迁移到多租户平台的应用
- 需要 Node 或 Python 客户端来调用认证、租户、成员和计费接口的开发者
适合人群
- 构建多租户 SaaS 产品的开发团队
- 需要统一认证、RBAC、计费和审计日志基础设施的项目
- 偏好 Next.js + Prisma + PostgreSQL 技术栈的开发者
- 希望用脚手架快速生成租户感知站点骨架的团队
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
安装与部署步骤见 docs/INSTALL.md 和 docs/DEPLOY.md
- 2
平台服务使用 Node.js/NestJS、Prisma 和 PostgreSQL,模板使用 Next.js + Prisma + PostgreSQL
- 3
模板默认独立运行;接入平台需设置 PLATFORM_URL 并提供客户端凭据
- 4
evo-ai 是独立的商业服务,SDK 中的 AskAi 客户端为可选
- 5
代码为 MIT 许可,但第三方素材与外部服务需另行核对许可和费用
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- evo-ai 是独立的商业服务,SDK 中的 AskAi 客户端为可选;使用该 AI 功能需另行付费并依赖外部服务,不属于免费代码范围。
- 接入共享平台服务需设置 PLATFORM_URL 并提供客户端凭据;不设置时模板以独立模式运行,使用本地用户表和单一隐式租户。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
**A tenant app asking evo-ai** (separate, commercial service; the SDK's `AskAi` client is optional)
README 原文
https://github.com/evomedia-net/evo.platform/blob/main/LICENSEhttps://github.com/evomedia-net/evo.platform/blob/main/README.mdSetting `PLATFORM_URL` (plus client credentials) flips auth, tenancy, and email over to the platform SDK.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-01。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 85 / 100
- 技术栈
- Next.js · React
- 网站类型
- SaaS · 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-09-30
- 截图检查日期
- 2026-10-01
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: 865bb8116deca147eb52bc04ac2f78827da624df5a31a0108243a3833fd28df3
2026-10-01T00:44:16.649Z
来源文件 / 仓库# EvoPlatform  **https://evomedia.net** — built by Kelly Michels · [email protected] A multi-tenant SaaS platform and app-template toolkit. Build a new tenant-aware site by cloning a starter template — tenancy, auth, RBAC, audit logging, and deployment come wired in. > **Status: working v1.** The platform service (with admin console), both SDKs (Node and > Python), the Next.js template, and the `evo new` CLI all run and are tested, and are in > production under three apps: ProvenSheet, CivilCode, and DocketMail. **Setup: [docs/INSTALL.md](docs/INSTALL.md)** · deploy: > [docs/DEPLOY.md](docs/DEPLOY.md) · design: > [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md), [docs/TEMPLATE_CONTRACT.md](docs/TEMPLATE_CONTRACT.md) · flows: > [docs/FLOWS.md](docs/FLOWS.md). ## The idea Most multi-tenant apps re-implement the same undifferentiated plumbing: tenant isolation, login, roles, billing, email, admin tooling. EvoPlatform splits that into: - **A shared platform service** (Node.js/NestJS + Prisma + PostgreSQL) that owns tenants, users, auth (JWT/JWKS), billing, and SMTP — one service serving many apps. - **Two SDKs** — `@evoplatform/sdk-node` and `evoplatform-sdk` (Python) — wrapping auth, tenancy, members, invites, billing, brand and email, so apps talk to the platform without hand-rolling HTTP calls. - **A starter template** conforming to a single template contract: `templates/next` — Next.js + Prisma + PostgreSQL, with an offline-first browser layer (IndexedDB mutation queue, last-write-wins sync). - **A scaffold CLI** — `evo new <app-name>` — clone, rename, generate secrets, done. ## Standalone mode Every template runs **without** the platform service by default: a local users table, a single implicit tenant, and no external dependencies — the whole app runs on one machine, offline if needed. Setting `PLATFORM_URL` (plus client credentials) flips auth, tenancy, and email over to the platform SDK. Apps can start standalone today and join the platform later. ## System flows How requests move through the platform — the full walkthrough with numbered steps and direction rules is in [docs/FLOWS.md](docs/FLOWS.md). Solid arrows are requests (tail = initiator), dashed are responses, amber is an out-of-band push, blue is the mechanism each figure exists to show. **User sign-up, end to end** — one request creates the workspace, its founding admin, and trial access to the arriving app only; nobody signs in until the mailbox is verified:  **A tenant site through the system** — login is delegated to the platform, then every request is verified locally against pulled JWKS keys; after login the app does not need the platform to be up:  **A tenant app asking evo-ai** (separate, commercial service; the SDK's `AskAi` client is optional) — server-side service key, tenant-scoped retrieval, and a relevance gate that refuses before any model is invoked:  ## Repository layout ``` platform/ Shared platform service (NestJS) packages/sdk-node/ Node SDK packages/sdk-python/ Python SDK templates/next/ Next.js starter template cli/ `evo new` scaffolding tool docs/ Architecture and design docs ``` ## License [MIT](LICENSE) © Kelly Michels
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

ai-website-cloner-template
Clone any website with one command using AI coding agents
Next.js · 启动器

Next.js SaaS Starter
Next.js SaaS Starter 是 Next.js 官方维护的 SaaS 起点模板,定位介于学习资源和可直接部署的脚手架之间。
Next.js · SaaS

Next.js Commerce
Next.js Commerce 是 Vercel 团队维护的电商启动模板,基于 Next.js App Router 构建,采用服务端渲染、React Server Components、Server Actions …
Next.js · 电商

Next-js-Boilerplate
Next-js-Boilerplate 是一个面向 Next.js 16、Tailwind CSS 4 和 TypeScript 的启动器,核心定位是开发者体验优先。
Next.js · 启动器

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

next-forge
Production-grade Turborepo template for Next.js apps.
Next.js · 启动器
