核心技术基础
企业级单体仓库架构,专为可扩展的全栈开发设计,采用前沿技术
全栈应用
独特的**双框架支持** - 根据团队专业技能和项目需求选择 React (Next.js) 或 Vue (Nuxt.js)。两者共享相同的核心库和基础设施。
Next.js 应用
基于 React 的全栈框架
- • App Router 支持 SSR/SSG
- • 服务端和客户端组件
- • API 路由和中间件
- • TypeScript 集成
Nuxt.js 应用
基于 Vue 的全栈框架
- • Vue 3 Composition API
- • 通用渲染
- • Nitro 服务引擎
- • 自动导入和模块
基础设施与工具
样式系统
现代 CSS 框架和组件
- • Tailwind CSS 实用优先
- • Shadcn/ui 组件
- • Magic UI 组件
- • Motion 动画
构建系统
单体仓库管理和工具
- • Turborepo 单体仓库
- • PNPM 工作区
- • Docker 容器化
核心库
在所有应用间共享,每个服务支持多个提供商。
数据库
类型安全的 ORM 与 PostgreSQL
Drizzle ORMPostgreSQL
身份验证
多提供商认证系统
Better AuthGoogleGitHub微信登录邮箱/密码
支付系统
全球支付处理
微信支付StripeCreem支付宝(计划中)
邮件服务
多提供商邮件投递
ResendSendGrid(计划中)SMTP(计划中)
短信服务
全球短信投递
Twilio阿里云MJML 模板
权限
细粒度访问控制
CASL 集成自定义规则动态策略
验证器
模式验证系统
Zod 集成自定义规则API 验证
AI 集成
AI 驱动的功能
Vercel AI SDKOpenAIAnthropic
无供应商锁定理念
TinyShip 采用提供商抽象层设计,让您可以自由切换服务而无需更改应用代码。为成长中的企业提供真正的灵活性。
提供商灵活性
邮件服务
在 Resend、SendGrid 之间切换无需代码更改
支付处理
通过统一 API 支持 Stripe、微信支付、Creem
短信投递
全球使用 Twilio,中国无缝使用阿里云
可扩展架构
插件系统
通过实现标准接口添加新提供商
配置驱动
通过环境变量切换提供商
面向未来
添加新服务不会破坏现有功能
成本优化
特定市场提供商
自动使用具有成本效益的区域服务
竞争性价格
永远不被昂贵的服务合同锁定
规模效率
随着业务增长选择最优提供商
传统方法
供应商锁定问题
每个提供商的不同 API 意味着在切换服务时需要重写代码。
Stripe 实现
typescript
// Stripe-specific implementation
import Stripe from 'stripe'
const stripe = new Stripe(apiKey)
const session = await stripe.checkout.sessions.create({
line_items: [{ price: 'price_123', quantity: 1 }],
mode: 'subscription',
success_url: 'https://app.com/success',
cancel_url: 'https://app.com/cancel'
})
微信支付实现
typescript
// WeChat Pay implementation (completely different)
import WechatPay from 'wechatpay-node-v3'
const pay = new WechatPay(config)
const order = await pay.transactions.native({
appid: 'wx123',
mchid: 'mch123',
description: 'Product',
out_trade_no: 'order_123',
amount: { total: 100, currency: 'CNY' }
})
TinyShip 解决方案
统一 API
所有提供商使用一致的接口。只需更改一个参数即可切换。
通用实现
所有提供商
javascript
import { createPaymentProvider } from '@libs/payment'
// One API for all providers
const provider = createPaymentProvider('stripe') // or 'wechat', 'creem'
const result = await provider.createPayment({
orderId: 'order_123',
userId: 'user_123',
planId: 'monthly',
amount: 1000,
currency: 'USD',
provider: 'stripe' // Just change this parameter!
})
// Switch providers without code changes:
// const provider = createPaymentProvider('wechat')
// const provider = createPaymentProvider('creem')
1 个 API
所有提供商
0 次重写
切换时
项目结构
有组织的单体仓库结构,具备可扩展性和可维护性
目录结构
tinyship/
apps/# 应用 双框架支持
next-app/
nuxt-app/
libs/# 共享库
auth/
database/
payment/
email/
i18n/
permissions/
sms/
validators/
ai/
架构优势
单体仓库架构
统一代码库,共享库和一致的工具链覆盖所有应用。
简化架构
使用轻量级 `libs` 文件夹而非复杂包,更易理解和维护。
类型安全
端到端 TypeScript 集成确保从数据库到 UI 的类型安全。
开发体验
热重载、自动导入和智能代码补全实现快速开发。
可扩展结构
模块化设计允许轻松添加新功能和应用。
TinyShip 不是低代码快速搭建平台,而是一个为企业级应用设计的专业开发基础架构。基于生产环境的最佳实践,提供高质量、可扩展的代码,让您能够构建稳定可靠的商业产品。