Saasfly 是一款完全免费、开源的企业级 Next.js 模板,专为创业团队和个人开发者量身打造。它集成了诸多开箱即用的特性,如国际化支持、SEO 优化、Monorepo 管理等,助您快速搭建现代化的 SaaS 应用。Saasfly 采用了业界领先的技术栈,在保证开发效率的同时,兼顾了代码质量和性能优化。
Saasfly 的成长离不开社区的支持。我们诚邀您参与到 Saasfly 的建设中来,无论是点赞 ⭐️、提 Issue 🐛,还是贡献代码 🎁,都是对我们莫大的鼓励。让我们携手打造更加优秀的 Saasfly!
想要近距离感受 Saasfly 的魅力?快来我们的 demo 站点体验一下吧!
使用 Saasfly 开启您的 SaaS 创业之旅,让 SaaS 开发变得前所未有的简单!给 Saasfly 一个 ⭐️,鼓励我们做得更好!
1
xinbaoCode 276 天前
额,文档点击中文切换不了~🐶
|
2
tianzx OP @xinbaoCode 之后会逐步完善中文文档的,感谢您的关注🥺
|
3
amon 276 天前
为开源点赞,已 star
|
4
think2011 276 天前
|
7
771007147 276 天前
看着很棒,已 star
|
9
BaiLinfeng 276 天前
中文文档支持的很不好友啊
|
10
tianzx OP @BaiLinfeng 我们会尽快支持中文文档,希望您持续关注我们的项目🙏
|
11
LiuN1an 276 天前
pricing 页面的升级版和专业版点击后经典报错:Application error a client-side exception has occurred
|
12
tomdddd 276 天前
看起来基于 Taxonomy 项目改的把,现在 contentlayer 和 nextjs 14 都不兼容了,我看了下现在 contentlayer 也不维护了,建议换一个。。。
|
15
theprimone 276 天前
Astro 梭哈 😏
|
16
tianzx OP @theprimone Astro 我们主要用于公司的博客 https://blog.nextify.ltd/ ,以及使用了 starlight 来构建我们的文档 https://document.saasfly.io ,感谢您的关注,之后我们会逐步开源我们用到的技术栈🙏
|
17
mnsw 276 天前
现在针对国内做 SaaS 还有钱途么?
|
19
lilei2023 276 天前
这 UI 不是是用的 shadcn 那一套吧?
|
20
tianzx OP @lilei2023 是的,我们主要参考了 shadcn's Taxonomy and t3-oss's create-t3-turbo 这两个项目,感谢您的关注🙏
|
21
hooych 276 天前
太棒啦
|
24
isno 275 天前
这是干啥的啊? 没看懂。打开 demo ,里面咋是一个 k8s 集群呢?
|
25
tianzx OP @isno 主要是给初创公司和个人开发者提供一个基于 Next.js 快速开发模板,demo 是我们用来展示的这套技术默认启动后的样子,k8s 集群是我们展示一个默认的增删改查的实现,感谢关注🙏
|
27
8520ccc 274 天前 via iPhone
跑不起来
|
30
convolution 274 天前
登录有支持谷歌么?
|
31
tianzx OP @convolution 支持的,GitHubProvider({
clientId: env.GITHUB_CLIENT_ID, clientSecret: env.GITHUB_CLIENT_SECRET, }), 把这个换成对应 Google 的,或者加进去同时提供就可以了,感谢关注🙏 |
32
8520ccc 274 天前
root@code-server /saas# bun run build
$ turbo build • Packages in scope: @saasfly/api, @saasfly/auth, @saasfly/common, @saasfly/db, @saasfly/eslint-config, @saasfly/nextjs, @saasfly/prettier-config, @saasfly/stripe, @saasfly/tailwind-config, @saasfly/typescript-config, @saasfly/ui • Running build in 11 packages • Remote caching disabled @saasfly/nextjs:build: cache miss, executing 12d13155ec2e6d30 @saasfly/nextjs:build: $ contentlayer build && bun with-env next build @saasfly/nextjs:build: Generated 9 documents in .contentlayer @saasfly/nextjs:build: TypeError: The "code" argument must be of type number. Received an instance of Object @saasfly/nextjs:build: at process.set [as exitCode] (node:internal/bootstrap/node:123:9) @saasfly/nextjs:build: at Cli.runExit (/node_modules/clipanion/lib/advanced/Cli.js:232:26) @saasfly/nextjs:build: at run (file:///node_modules/@contentlayer/cli/src/index.ts:39:3) @saasfly/nextjs:build: at main (/node_modules/contentlayer/bin/cli.cjs:5:3) { @saasfly/nextjs:build: code: 'ERR_INVALID_ARG_TYPE' @saasfly/nextjs:build: } @saasfly/nextjs:build: $ dotenv -e ../../.env.local -- next build @saasfly/nextjs:build: ▲ Next.js 14.0.3 @saasfly/nextjs:build: @saasfly/nextjs:build: ✓ Creating an optimized production build @saasfly/nextjs:build: ✓ Compiled successfully @saasfly/nextjs:build: Skipping validation of types @saasfly/nextjs:build: Skipping linting Collecting page data ..sa [VercelPostgresError]: VercelPostgresError - 'invalid_connection_string': This connection string is meant to be used with a direct connection. Make sure to use a pooled connection string or try `createClient()` instead. @saasfly/nextjs:build: at su (/apps/nextjs/.next/server/chunks/406.js:18:5468) @saasfly/nextjs:build: at sg (/apps/nextjs/.next/server/chunks/406.js:18:7411) @saasfly/nextjs:build: at 15491 (/apps/nextjs/.next/server/app/api/webhooks/stripe/route.js:1:13596) @saasfly/nextjs:build: at t (/apps/nextjs/.next/server/webpack-runtime.js:1:128) @saasfly/nextjs:build: at 36577 (/apps/nextjs/.next/server/app/api/webhooks/stripe/route.js:1:14487) @saasfly/nextjs:build: at t (/apps/nextjs/.next/server/webpack-runtime.js:1:128) @saasfly/nextjs:build: at 75138 (/apps/nextjs/.next/server/app/api/webhooks/stripe/route.js:1:1028) @saasfly/nextjs:build: at t (/apps/nextjs/.next/server/webpack-runtime.js:1:128) @saasfly/nextjs:build: at r (/apps/nextjs/.next/server/app/api/webhooks/stripe/route.js:1:17593) @saasfly/nextjs:build: at /apps/nextjs/.next/server/app/api/webhooks/stripe/route.js:1:17628 { @saasfly/nextjs:build: code: 'invalid_connection_string' @saasfly/nextjs:build: } > Build error occurred Error: Failed to collect page data for /api/webhooks/stripe @saasfly/nextjs:build: at /node_modules/next/dist/build/utils.js:1217:15 @saasfly/nextjs:build: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { @saasfly/nextjs:build: type: 'Error' @saasfly/nextjs:build: } @saasfly/nextjs:build: Collecting page data .error: script "with-env" exited with code 1 @saasfly/nextjs:build: error: script "build" exited with code 1 @saasfly/nextjs:build: ERROR: command finished with error: command (/apps/nextjs) /root/.bun/bin/bun run build exited (1) @saasfly/nextjs#build: command (/apps/nextjs) /root/.bun/bin/bun run build exited (1) Tasks: 0 successful, 1 total Cached: 0 cached, 1 total Time: 5.326s Failed: @saasfly/nextjs#build ERROR run failed: command exited (1) error: script "build" exited with code 1 |
33
tianzx OP @8520ccc #32 你的.env.local 中的 POSTGRES_URL= 有配置正确吗 ? vercel 创建的 postgres://default:****@*******.us-east-1.aws.neon.tech:5432/verceldb?sslmode=require 大概是像这个样子
|
34
D2h0VL89HMAU417B 274 天前
|
35
D2h0VL89HMAU417B 274 天前
不应该叫 Country
|
37
D2h0VL89HMAU417B 274 天前
@tianzx #36 还有个疑问,点击创建新的集群按钮后,即使我没有点击最后的 submit 按钮,控制台也会出现新的 Cluster ,不知道这里的逻辑是否正确。
|
38
tianzx OP @zephyr1 #37 为了方便起见,会在 create 的时候预先创建一部分默认的数据,当用户打开的时候就只需要修改自己需要的部分了,只是为了展示一种不同的实现,您可以根据自己的需求直接修改🙏
|
39
limuen 274 天前
fork 了,空了👀
|
40
wbrobot 274 天前
admin panel 有吗?想看看用户管理和设置这些
|
41
tianzx OP @wbrobot 感谢您的关注,开源的 admin dashboard 我正在开发中,相对来说比较简陋,乐观看大概可能还需要 1-2 周的时间,付费版会提供更加完善的 dashboard 功能🙏
|
43
limuen 274 天前
@tianzx 有一点想问的是为什么要用 bun(没了解过...),pnpm 的 workspace 不更好一点?哈哈,个人建议哈,直接 pnpm-workspace ,再结合 monorepo ,芜湖起飞~
|
45
TeslaM3 273 天前
|