用户9361用户9361竞品/方向 | 最有价值启发 | 与本项目的分歧 | P0 取舍 |
Scrimba | 播放器即 IDE,事件回放可被观看者临时接管 | 观看者编辑和 fork 会引入双轨状态 | P0 先只读回放,观看者临时编辑放 P1 可选 |
Replay.io | 时间轴 + 事件索引 + 快照恢复比线性视频更适合 seek | Replay 偏调试器级别时间旅行,本项目只需讲解回放 | P0 做快照 + 增量事件,不做调试器能力 |
CodeSandbox | iframe / Browser Sandbox 适合教学 Demo 的前端预览 | 完整工程预览和依赖管理超出 PRD P0 | P0 采用 iframe sandbox,不上云端容器 |
StackBlitz / WebContainers | 浏览器内 Node/npm 很强 | WebContainers 部署、兼容和包安装成本高 | P1 做 PoC,P0 不接入 WebContainers |
CodeSignal / HackerRank | 面试 replay 证明 key-by-key 过程有复盘价值 | 判题、题库和多人面试不是 P0 主链路 | P0 录制完整代码快照事件,P1 再优化 diff/operation log |
Codecast / RecDev | 事件流主轨 + 音视频辅助 + 代码/终端可复制 | 终端、文件树、checkpoint 会显著扩大实现面 | P0 不做终端和文件树,但事件结构预留扩展 |
CoderPad | Monaco + 运行结果 + 回放控制是成熟面试平台核心 | CoderPad 的协作和面试管理不是 P0 范围 | P0 选 Monaco,JS 运行结果进入事件流 |
问题 | 决策 | 理由 |
代码执行路线 | P0 采用前端 iframe sandbox 展示,P1 再评估 WebContainers 或后端沙箱 | 最低风险,符合 CodeSandbox/Scrimba/StackBlitz 调研结论 |
TypeScript 执行深度 | P0 必达支持 TS 编辑、高亮、录制和回放;TS 简单运行列为 P0 可选 PoC,不做 type checking 和 npm 依赖 | 避免把主链路拖进完整构建系统,确保 JS 运行稳定优先 |
音视频封装 | P0 录制为一个 WebM 媒体轨;录制前可选择输入设备;麦克风和摄像头开关记录为 media marker | MediaRecorder 实现简单,回放同步成本最低 |
录制包保存 | P0 本地 IndexedDB 保存并支持加载回放;文件导出作为保存失败兜底;云端上传放 P1 | 两周内优先保证录制 -> 保存 -> 回放闭环 |
其他语言加分项 | Python 只作为 P0 可选加分:高亮、语言切换和回放恢复,不做执行 | 不让加分项阻塞 JS/TS 主链路 |