简介
Terminal Shop 是个真在卖咖啡订阅的电商业务 —— 通过 SSH 下单:ssh terminal.shop 把你直接送进 TUI 结账。SST 团队建造,证明 serverless TypeScript + Bun + Stripe + 创意 TUI 可以做真实消费业务。读源码看 SST 的 primitive 在生产怎么组合。适合找 SST 极端参考架构的创始人、好奇「终端做店面」UX 的开发者、想喝咖啡的人。任何 SSH 客户端可用。读源码时长 30 分钟。
现在就试
ssh terminal.shop整个上手流程就这一行。TUI 处理浏览商品、购物车、Stripe 支付、收货地址 —— 全在 SSH 里。
它教 SST 什么
- SSH 当前端。 TypeScript 自定义 SSH server,用
ssh2+ Bun,通过 Cloudflare 路由。证明 SST + TS 足够通用,可以承载非 HTTP 协议。 - Stripe Connect 集成。 真钱在流动;Stripe webhook 更新 SST DynamoDB 表。
- 边缘鉴权。 Cloudflare Worker 在转给 SST 后端之前对 SSH key 指纹校验用户表。
- 审计 + 观测。 每个 TUI 按键事件通过 SST 的
Realtimeprimitive 入 CloudWatch。
源码亮点
// packages/functions/src/ssh-server.ts
import { Server } from "ssh2";
import { handleSession } from "./session";
const server = new Server({
hostKeys: [process.env.HOST_KEY!],
}, (client) => {
client.on("authentication", (ctx) => ctx.accept());
client.on("session", (accept) => handleSession(accept()));
});
server.listen(2222, "0.0.0.0");创始人为啥应该读它
这是个五位数收入的真实业务,单仓库 <2,000 行胶水代码就发布上线。无论你以为 MVP 需要什么,Terminal Shop 大概率用更少东西就发了。研究 SST 基建文件(sst.config.ts)是学 SST 最有用的 10 分钟。
复制到你自己的项目
// sst.config.ts(Terminal Shop 骨架)
export default $config({
app(input) {
return {
name: "my-shop",
removal: input?.stage === "production" ? "retain" : "remove",
home: "aws",
providers: { cloudflare: true, stripe: true },
};
},
async run() {
const products = new sst.aws.Dynamo("Products", { fields: { id: "string" }, primaryIndex: { hashKey: "id" } });
const checkout = new sst.aws.Function("Checkout", { link: [products], handler: "src/checkout.handler" });
return { checkoutUrl: checkout.url };
},
});FAQ
Q: 整个源码真公开吗? A: 公开 —— github.com/terminaldotshop/terminal。整套栈包括 SST 配置、SSH server、TUI 组件、Stripe webhook 都开源。绝佳阅读材料。
Q: 能照搬这模式吗? A: SST/Stripe/Cloudflare 栈能。SSH 当店面 UX 很特别 —— 受众自选(爱玩 SSH 的开发者)让它成立。没有技术受众的话 SSH 零售不会起量。
Q: 跑下来实际多少钱? A: AWS 账单在他们的量级下 <$100/月,靠 serverless + DynamoDB 扩缩。大部分成本是 Stripe 费 + 真咖啡 + 邮费。基建占用相比营收出名地小。