作品分享:Next.js 在线绘图板,Canvas + 撤销重做
数据库设计用了 Prisma + PostgreSQL,所有 DateTime 字段都加了 @db.Timestamptz。软删除用 deletedAt 字段,查询时自动过滤。索引方面,所有查询条件字段都加了 @@index,外键关系加了级联删除。迁移用 prisma migrate dev,生产用...
数据库设计用了 Prisma + PostgreSQL,所有 DateTime 字段都加了 @db.Timestamptz。软删除用 deletedAt 字段,查询时自动过滤。索引方面,所有查询条件字段都加了 @@index,外键关系加了级联删除。迁移用 prisma migrate dev,生产用...
这个产品上线一个月了,目前 300 注册用户,日活 50 左右。获客渠道主要是 SEO 自然流量和 Product Hunt 发布。SEO 内容用 AI 辅助生成但人工改写降 AI 率,核心关键词排到了 Google 第一页。Product Hunt 发布当天带来了 200 注册用户。 UI 设计...
上线后持续迭代,用 Vercel Analytics 监控流量和性能,用 Sentry 监控错误。每周看一次 Search Console 的搜索分析,根据关键词表现调整内容策略。用户反馈通过内置的反馈表单收集,高优需求直接排到下个迭代。 认证系统踩了不少坑。Auth.js 5 beta 的 JW...
最得意的功能是实时协作,用 Yjs + WebSocket 实现多人同时编辑。Yjs 处理 CRDT 数据同步,WebSocket 做实时通信,离线编辑用 IndexedDB 缓存。Next.js 的 API 路由做 WebSocket 中继服务器,部署在 Vercel 的 Edge Runtime...
这个项目的代码约 60% 是 Cursor 生成的,30% 是 AI 生成后我调整的,10% 是纯手写。AI 最擅长的是 CRUD 页面、表单组件、类型定义。我手写的主要是复杂业务逻辑、认证流程、支付 Webhook 这些不能出错的部分。 SEO 成果:上线两周 Google 收录了 38 个页面...
这个产品上线一个月了,目前 300 注册用户,日活 50 左右。获客渠道主要是 SEO 自然流量和 Product Hunt 发布。SEO 内容用 AI 辅助生成但人工改写降 AI 率,核心关键词排到了 Google 第一页。Product Hunt 发布当天带来了 200 注册用户。 项目的 g...
安全方面做了:密码 bcrypt 哈希、API 限流(认证 5 次/15min,通用 60 次/min)、CORS 只允许主域、禁止 dangerouslySetInnerHTML、环境变量分离 NEXT_PUBLIC_ 和服务端变量。XSS 和 SQL 注入 Prisma 天然防护。 支付集成用...
最花时间的是表单交互细节。每个表单字段都有输入约束预提示(长度/格式/范围),Zod 校验错误消息和 hint 文本保持一致,四态(加载/空/错误/成功)都有视觉反馈。破坏性操作(删除/清空)有二次确认弹窗,未保存变更离开有提醒。 这个产品上线一个月了,目前 300 注册用户,日活 50 左右。获...
部署流程:GitHub push → Vercel 自动构建 → Preview 环境 → 合并到 main → Production 环境。环境变量在 Vercel Dashboard 配置,区分 Production/Preview/Development。数据库迁移用 GitHub Actio...
性能数据分享一下:PageSpeed 移动端 98 分,桌面端 100 分。LCP 0.9s,INP 86ms,CLS 0.02。关键优化是 LCP 图片用 next/image + priority,首屏不用 framer-motion 改用 CSS 动画,非首屏组件全部 next/dynamic...
最得意的功能是实时协作,用 Yjs + WebSocket 实现多人同时编辑。Yjs 处理 CRDT 数据同步,WebSocket 做实时通信,离线编辑用 IndexedDB 缓存。Next.js 的 API 路由做 WebSocket 中继服务器,部署在 Vercel 的 Edge Runtime...
性能数据分享一下:PageSpeed 移动端 98 分,桌面端 100 分。LCP 0.9s,INP 86ms,CLS 0.02。关键优化是 LCP 图片用 next/image + priority,首屏不用 framer-motion 改用 CSS 动画,非首屏组件全部 next/dynamic...
部署流程:GitHub push → Vercel 自动构建 → Preview 环境 → 合并到 main → Production 环境。环境变量在 Vercel Dashboard 配置,区分 Production/Preview/Development。数据库迁移用 GitHub Actio...
最得意的功能是实时协作,用 Yjs + WebSocket 实现多人同时编辑。Yjs 处理 CRDT 数据同步,WebSocket 做实时通信,离线编辑用 IndexedDB 缓存。Next.js 的 API 路由做 WebSocket 中继服务器,部署在 Vercel 的 Edge Runtime...
UI 设计灵感来自 Linear 和 Vercel,极简风格。配色用 CSS 变量控制,支持亮色/暗色/系统三种模式。组件用 Shadcn UI 做基础,自定义了按钮和卡片的圆角和阴影。响应式断点用 Tailwind 的 sm/md/lg/xl,移动端优先设计。 上线后持续迭代,用 Vercel...
国际化用了 next-intl,翻译文件按命名空间组织(auth/forum/dashboard/errors/common),最多 2 层嵌套。ICU 插值用 {min}/{max} 占位符。中间件做 i18n 路由处理,URL 格式 /{locale}/...。所有用户可见文本都走 t(),没有...
性能对比:ISR vs SSR vs SSG。我的选择是公共页面用 ISR(revalidate: 3600),用户页面用 SSR(个性化数据),认证页面用 SSG(表单页)。ISR 缓存安全要确保 SSR 输出对所有用户相同,不含 session 数据。 这个项目的代码约 60% 是 Curso...
UI 设计灵感来自 Linear 和 Vercel,极简风格。配色用 CSS 变量控制,支持亮色/暗色/系统三种模式。组件用 Shadcn UI 做基础,自定义了按钮和卡片的圆角和阴影。响应式断点用 Tailwind 的 sm/md/lg/xl,移动端优先设计。 性能对比:ISR vs SSR v...
这个项目的代码约 60% 是 Cursor 生成的,30% 是 AI 生成后我调整的,10% 是纯手写。AI 最擅长的是 CRUD 页面、表单组件、类型定义。我手写的主要是复杂业务逻辑、认证流程、支付 Webhook 这些不能出错的部分。 从 0 到 1 的节奏:第一天搭框架(认证 + 数据库 +...
上线后持续迭代,用 Vercel Analytics 监控流量和性能,用 Sentry 监控错误。每周看一次 Search Console 的搜索分析,根据关键词表现调整内容策略。用户反馈通过内置的反馈表单收集,高优需求直接排到下个迭代。 最花时间的是表单交互细节。每个表单字段都有输入约束预提示(...