返回首页
最新
嗨,HN,
我创建了 ClientDock——一个服务提供商用来管理沟通和文件的客户门户,旨在避免电子邮件混乱。
背景:
在一次超过200封邮件的线程中丢失了一个关键的客户交付物后,我决定构建一个更好的解决方案。大多数“客户门户”都是臃肿的项目管理工具。我想要的是一个专注于一件事的工具:让客户沟通变得轻松无忧。
技术细节:
- 使用 Next.js 15(应用路由)构建
- 通过 OpenNext 适配器部署在 Cloudflare Workers 上
- 使用 Cloudflare D1(边缘的 SQLite)存储数据
- 使用 NextAuth v5 进行身份验证
- 使用 Drizzle ORM 进行类型安全的数据库操作
- 使用 React Email 和 Resend 发送事务性邮件
- 使用 Stripe 处理支付
架构决策:
1. 边缘优先:部署在 Cloudflare Workers 上,以实现全球性能。每个请求都在最近的边缘位置处理。
2. 类型安全:全程使用 TypeScript,Drizzle ORM 确保数据库的类型安全。
3. 国际化:从一开始就使用 next-intl,以便未来扩展。
4. 模块化认证:使用带 Drizzle 适配器的 NextAuth,以提高灵活性。
有趣的挑战:
- 使用 OpenNext 适配器调整 Next.js SSR 以适应 Cloudflare Workers 环境
- 管理 D1 的数据库迁移
- 实现细粒度的访问控制
- 针对边缘部署进行优化
当前状态:
MVP 已完成。希望获得以下方面的反馈:
- 功能优先级
- 定价策略
- 技术架构
- 用户体验改进
开放问题:
1. 我是否应该添加实时协作功能?
2. 移动应用与响应式网页哪个更重要?
3. 这个领域合适的定价模型是什么?
代码尚未开源,但我很乐意讨论技术决策并分享在 Cloudflare Workers 上构建的经验教训。
期待您的反馈!
作为一名企业主,如果您在为品牌招聘模特方面感到沮丧,那么不必再寻找其他地方,直接访问 fashaion.com,获取虚拟模特,让她们穿上您的服装,看看效果,这样可以节省成本和时间。
大家好,
我一直在开发 Trainly,这是一个图形化的 RAG API,旨在帮助开发者在几分钟内将原始文档转换为可用的 RAG 端点。
与其手动连接 LangChain、向量数据库和检索器,Trainly 让你可以:
1. 使用 `pip install trainly` 安装
2. 使用你的 API 密钥进行初始化
3. 上传你的文档
4. 查询你的端点
我一直想要这样的功能:一个简单的方法来“通过名称解析 Docker 容器”——例如,访问在我的开发机器上运行的 Docker 容器中的 Web 服务器。当然,我可以从所有这些容器中导出端口,尽量避免它们在主机上互相干扰,然后使用 http://localhost:PORT。但为什么要经历这些麻烦呢?这些容器已经在它们各自的 IP(例如,172.24.0.5:8123)上暴露了各自的端口,所以我只需要一个方便的方法来找到它们。
mdns-docker 允许你执行,例如,“ping my-container.docker.local”,它会找到一个运行中的容器的 IP,该容器的名称与主机模糊匹配。它的工作原理是运行一个本地的 mDNS 服务,监听 `*.docker.local` 请求,找到一个名称包含请求(这里是“my-container”)的运行中容器,获取该容器的本地 IP 地址,并用该 IP 地址响应 mDNS 查询。
示例:启动一个 ClickHouse 服务(作为示例)`docker run --rm --name myclicky clickhouse:25.7`,然后打开 `<a href="http://myclick.docker.local:8123" rel="nofollow">http://myclick.docker.local:8123</a>` 来访问内置仪表板——无需端口映射!
如果你还没有玩过 mDNS,你就错过了很多乐趣。它易于使用,能够让你的生活变得更加轻松的可能性是无穷无尽的。它也是 Spotify 和 Chromecast 用于本地设备发现的技术。