HYB · Hatch Your Beta · v12.0

把产品发布变成一张可执行的作战地图

HYB 是为独立开发者与 SaaS 创始人打造的 local-first、多项目产品发布与增长分发控制台。 管理多项目物料,追踪 500+ 获客渠道,用 OKR 记录每一次冷启动分发——数据只存在你的浏览器里。

🔒 无需登录 · 不上传服务器 📦 500+ 预置渠道 📊 项目 × 渠道矩阵 🎯 周期 OKR + 教练提示 🌐 中英双语 💾 JSON 导入 / 导出

一、产品介绍

1.1 一句话定位

HYB(Hatch Your Beta)是一款 local-first(本地优先)、多项目的产品发布与增长分发控制台, 面向独立开发者(indie hackers)与 SaaS 创始人,用来管理发布物料、追踪 500+ 获客渠道、记录冷启动与外链分发进度—— 所有数据只保存在浏览器 localStorage,不上传服务器。

1.2 它解决什么问题

产品冷启动阶段最耗神的不是写代码,而是“发到哪里、发到什么程度、下次从哪继续”。HYB 把这件事拆成三个可量化的对象:

对象代码中的实体说明
渠道(Platform)platforms[]每个渠道含 name / url / category / free / dr / custom 六个字段
项目(Project)projects[]每个项目含 name / url / tagline / desc / collapsed,即一套可复制的发布物料
进度(Progress)progress[projectId][platformId]每个“项目 × 渠道”组合独立记录 status / followUp / notes / links[]

三者交叉形成“渠道 × 项目”的矩阵,这是 HYB 的核心数据模型。概览区统计的“已操作”“已收录”都是按这个矩阵计数,而不是按渠道计数。

1.3 目标用户

二、核心功能(逐项对应代码)

① 多项目物料库

  • 每个项目独立维护 4 个字段:产品名称、官网链接、一句话介绍(tagline)、详细描述(desc)。
  • 支持“复制全部”:按 【产品名称】/【官网链接】/【一句话介绍】/【详细描述】 四段格式一次性复制到剪贴板。
  • 单字段也可单独复制(每个字段旁有 copy 按钮)。
  • 项目卡片可折叠/展开,折叠状态写入 collapsed 字段并持久化。

② 500+ 增长渠道库

  • 内置 REAL_PLATFORMS 数组,覆盖 9 大分类:AI 工具目录、SaaS 软件评测、产品发布创业、开发者技术、社交内容平台、社区推广、商业企业 PR、搜索引擎、其他渠道。
  • 包含 Reddit 的 17 个细分版块(r/SideProject、r/indiehackers、r/SaaS、r/startups 等)、7 个搜索引擎站长平台(Google Search Console、Bing Webmaster Tools、Yandex Webmaster、百度搜索资源平台、Naver Search Advisor、Seznam、IndexNow)。
  • 支持“添加渠道”:填写名称(必填)、网址、分类、费用(Free/Paid/待确认)、DR(0–100 选填)。
  • 添加时做去重检测:同名或同域名会弹窗确认。

③ DR(Domain Rating)体系

  • 内置 PRELOADED_DR 字典,为数百个域名预置 DR 值(如 producthunt.com 91、github.com 97、linkedin.com 99)。
  • DR 不参与筛选,只参与排序:可按正序(低→高)或倒序(高→低),null 值始终排在最后。
  • 表格中点击 DR 值可行内编辑,回车保存、Esc 取消,保存后弹 toast 提示。

④ 分发进度跟踪(项目 × 渠道)

  • 状态四档:pending(待发布)、submitted(已发布)、approved(已收录)、rejected(被拒绝)。
  • 跟进日期(followUp):若未完成且日期早于今天,该行左侧显示逾期标记。
  • 备注(notes):行内直接输入,失焦自动保存。
  • 外链记录(links):每个“项目 × 渠道”可记录多条上线地址,每条含 url / title / date;展开面板可增删改,日期用于目标统计。

⑤ OKR / 目标系统

  • 按项目独立设置目标,周期可选:本周 / 本月 / 本季度 / 本年。
  • 目标单位是“个分发点”,统计口径为当前周期内、该项目所有渠道 links 中 date 落在周期区间内的条数。
  • 切换周期自动填入默认目标:week=20、month=100、quarter=300、year=1000。
  • 进度条 + 百分比 + “剩余 N 天”。
  • 教练提示(coach)按条件给出不同文案:目标为 0、达成 100%、剩余 ≤2 天且 <80%、时间进度 > 完成进度 +20%、完成进度领先等。

⑥ 筛选与搜索

  • 搜索框:匹配渠道名称、网址、分类标签(大小写不敏感,140ms 防抖)。
  • 项目筛选:全部 / 具体项目。选具体项目时只显示该项目行。
  • 分类筛选、状态筛选、费用筛选(Free/Paid/待确认)。
  • 状态筛选作用于项目行,某渠道所有项目行被筛掉时整条渠道隐藏。
  • “重置筛选”一键恢复。

⑦ 数据导入 / 导出 / 重置

  • 导出:JSON 文件,含 app / version / exportedAt / lang / platforms / projects / progress / okr 完整快照,文件名 hyb-console-backup-YYYY-MM-DD.json。
  • 导入:支持本工具导出的完整格式,也兼容旧版扁平数组格式(legacy);导入前弹确认框,明确提示“将覆盖当前全部数据”。
  • 重置:恢复默认渠道库 + 默认项目(ffee.me 示例项目)+ 默认 OKR(month / 100)。

⑧ 中英双语

  • 完整 i18n 字典(I18N.zh / I18N.en),切换语言会重渲染页面文案、筛选下拉、表格、概览,并持久化到 hyb_v12_lang。
  • 分类标签也有双语映射(如“AI工具目录” ↔ “AI Directories”)。

⑨ Local-first 与隐私

  • 所有持久化走 localStorage,key 前缀 hyb_v12_。
  • 无登录、无后端、无账号体系;页脚明确写“无需登录 · 不上传服务器”。
  • 页面唯一的外部请求是 Microsoft Clarity 分析脚本(clarity.ms)和 logo 图片;业务数据本身不外发。
  • 存储写入失败(如空间不足)会捕获异常并提示“本地存储空间不足,保存失败”。

三、与常见替代方案的区别

维度HYB表格软件(Excel / Notion)发布平台自带后台
渠道库✅ 内置 500+ 预置渠道 + DR❌ 需自己建❌ 仅自家渠道
多项目✅ 原生支持,项目×渠道矩阵⚠️ 需手工设计❌ 通常单产品
物料复制✅ 四段式一键复制❌ 手工拼❌ 无
目标统计✅ 按周期自动统计外链日期⚠️ 手工公式❌ 无
数据位置✅ 浏览器本地❌ 云端❌ 平台云端
登录✅ 不需要❌ 需要❌ 需要

四、FAQ(常见问题)

以下答案中的数字与行为均可在源码中核对。

Q1:HYB 需要注册账号吗?数据存在哪里?

不需要注册,也没有账号体系。所有数据(渠道、项目物料、进度、备注、外链、OKR)都保存在浏览器的 localStorage,key 前缀为 hyb_v12_。换浏览器、换设备、清空浏览器数据都会导致数据不跟随,请用“导出”做备份。

Q2:渠道库里到底有多少个渠道?

内置 REAL_PLATFORMS 数组,按 9 个分类组织,包含 Product Hunt、Hacker News、GitHub、G2、Capterra、AlternativeTo、Indie Hackers、BetaList、AppSumo、Chrome Web Store、Google Search Console、Bing Webmaster Tools、百度搜索资源平台、Naver Search Advisor、Reddit 的 17 个细分版块等。代码里还有 mergeCatalog 逻辑,当检测到本地渠道数 ≥300 且目录版本低于 CATALOG_VERSION(当前为 3)时,会把新增渠道合并进来——这是升级时补渠道的机制。

Q3:DR 是什么?数据准确吗?会更新吗?

DR 指 Domain Rating(域名评级,0–100)。HYB 在 PRELOADED_DR 里为数百个域名预置了数值,属于静态预置值,不会自动联网更新。DR 不参与筛选,只参与排序(正序/倒序,null 排最后)。你可以点击表格里的 DR 值手动改成你信任的数值,改完会持久化。

Q4:为什么我选了“已收录”状态,渠道就消失了?

因为状态筛选作用于项目行:一个渠道下所有项目行都被筛掉时,整条渠道会隐藏。如果你只想看某个项目的已收录情况,先把“项目”筛选设为具体项目,再选状态。

Q5:OKR 的“分发点”怎么算的?

统计口径是:当前项目、当前周期内,所有渠道 links 数组中 date 落在周期起止日期之间的记录条数。也就是说,只有填了日期的外链才计入目标。新增外链时默认日期是今天。切换周期(周/月/季/年)会自动填入默认目标 20/100/300/1000,你可以手动改。

Q6:跟进日期变红/出现左侧竖线是什么意思?

当某条“项目 × 渠道”的跟进日期早于今天,且状态不是“已收录”或“被拒绝”时,该行会被标记为逾期(row-overdue),左侧显示 2px 黑色内阴影。这是提醒你该跟进但还没闭环。

Q7:可以同时管理多个产品吗?

可以。每个项目有独立的四段物料、独立的进度矩阵、独立的 OKR。概览区的“项目分行小计”会分别列出每个项目的外链数、已发布数、已收录数。删除项目会连带删除它的进度、备注、外链和 OKR(会二次确认)。

Q8:导入会覆盖现有数据吗?

会。导入前会弹确认框,文案明确写“导入将覆盖当前全部渠道、项目物料、分发进度和目标设置”。导入兼容两种格式:HYB 自己导出的完整 JSON(含 platforms/projects/progress/okr),以及旧版扁平数组(会被当作 legacy 迁移到第一个项目下)。

Q9:添加渠道时提示“已存在同名或同域名渠道”怎么办?

这是去重保护。判断依据是 platformUrlKey(域名,部分 host 保留 path)和 platformNameKey(名称规范化后比较,含别名映射如 twitter→x、blogspotcom→bloggercom)。如果确实要加,在确认框点“确定”即可继续添加,它会作为自定义渠道(custom: true)存在。

Q10:数据会不会上传到服务器?

业务数据不会。页面唯一的外部脚本是 Microsoft Clarity(clarity.ms)用于访问分析,以及 hyb.vip/logo.svg 图片。你的渠道、项目、进度、备注、外链都只写进 localStorage。如果存储写入失败(比如隐私模式或空间满),会提示“本地存储空间不足,保存失败”。

Q11:支持哪些浏览器?

代码使用了 localStorage、navigator.clipboard(非安全上下文会降级到 execCommand('copy'))、Intl.DateTimeFormat、URL、Array.from(...normalize('NFKC')) 等现代 API。结构化数据里写的是 browserRequirements: 需启用 JavaScript。数据存于 localStorage。,operatingSystem: Any。建议使用近两年的 Chrome / Edge / Firefox / Safari。

Q12:界面语言能切换吗?会影响数据吗?

能,右上角语言切换支持简体中文和 English。切换只改 UI 文案(含分类标签双语映射),不改数据。语言选择持久化在 hyb_v12_lang。默认语言是英文(代码里 lang = storedLang === 'zh' ? 'zh' : 'en')。

Q13:怎么备份?多久备一次?

点右上角“导出”,会下载 hyb-console-backup-YYYY-MM-DD.json,包含 platforms、projects、progress、okr 全量快照。建议每次大改(批量加渠道、批量改状态)后导出一次,并保留多个日期版本。导入时用同一个文件即可恢复。

Q14:为什么我清空浏览器缓存后数据没了?

因为数据在 localStorage,清缓存/清站点数据会一并清除。这是 local-first 的代价,也是隐私的代价。请养成导出备份的习惯。

Q15:HYB 收费吗?

结构化数据里声明 isAccessibleForFree: true,offers 为 price: 0, priceCurrency: USD。当前版本(v12.0)免费使用,无登录、无付费墙。

五、工作原理(How It Works)

按数据流顺序说明,所有函数名与 key 名均来自源码。

5.1 数据模型(三层结构)

projects[]                    每个项目:id, name, url, tagline, desc, collapsed
platforms[]                   每个渠道:id, name, url, category, free, dr, custom
progress[projectId][platId]   每个组合:status, followUp, notes, links[{url,title,date}]
okrMap[projectId]             每个项目:cycle(week|month|quarter|year), target

三者关系:progress 是 projects × platforms 的稀疏矩阵,只有被操作过的组合才有记录; 读取时 getProgress(pid, platId) 会在缺失时自动创建空记录(emptyProgress() 返回 status: 'pending')。

5.2 启动流程(init())

  1. loadState():按版本号决定走迁移还是直接读。
    • 若 hyb_v12_version < 12 或没有 v12 platforms,先尝试 migrateFromV10()(从 ffee_console_v10_* 迁移)。
    • 读 hyb_v12_platforms;没有则读旧版 ffee_promo_data_final_v2;再没有则用 defaultPlatforms()(即 REAL_PLATFORMS + PRELOADED_DR)。
    • 目录版本低于 CATALOG_VERSION(3) 且渠道数 ≥300 时,mergeCatalog() 合并新增渠道,记录 catalogAdded。
    • 读 projects / progress / okr / lang / ui / savedAt,逐项 normalize* 清洗,dedupeIds 保证 id 唯一。
  2. bindEvents():绑定所有按钮、筛选、表格事件委托、键盘 Esc、页面可见性、pagehide/beforeunload 保存。
  3. applyI18n() + startClock()(每秒刷新顶部日期时间)。
  4. buildFilterOptions() → renderProjects() → updateMaterialsUi() → renderTable() → renderOverview()。
  5. 若 needsCatalogPersist 或 needsCopyRefresh,补一次持久化。

5.3 渲染流程

5.4 交互与保存

5.5 导入 / 导出 / 重置

5.6 迁移与兼容

5.7 隐私与边界

六、使用教程(Step-by-Step)

6.1 第一次打开

  1. 浏览器打开 HYB 控制台。顶部会显示当前日期、星期、时间(每秒刷新)。
  2. 右上角可切换 简体中文 / English。切换只改界面文案,不改数据。
  3. 页面分四块:数据概览(统计 + 目标)、项目物料库、增长渠道表、页脚(重置数据入口)。

6.2 建立你的第一个项目

  1. 在“项目物料库”点 添加项目。会自动生成一张空卡片并滚动到可见位置,光标落在“产品名称”。
  2. 依次填写四个字段:
    • 产品名称:如 ffee.me
    • 官网链接:如 https://ffee.me/(卡片副标题会实时显示域名)
    • 一句话介绍:一句话说清是什么
    • 详细描述:卖点、目标用户、差异点
  3. 每个字段右侧有 复制 按钮,可单独复制该字段。
  4. 卡片右上角 复制全部 会按四段格式一次性复制:
    【产品名称】…
    【官网链接】…
    【一句话介绍】…
    【详细描述】…
  5. 点卡片右侧的 箭头 可折叠/展开;折叠状态会保存。
  6. 需要多个产品时重复“添加项目”。每个项目独立物料、独立进度、独立 OKR。
  7. 删除项目:点卡片右侧 垃圾桶,确认框会提示“物料、进度、备注、外链、目标都将移除”。

6.3 挑选渠道并记录进度

  1. 滚到“增长渠道 (Growth Channels)”。表格列:分类 / 渠道 / DR / 项目 / 状态 / 跟进日期 / 上线地址 / 备注。
  2. 筛选(表头上方一行):
    • 搜索框:输入渠道名、网址或分类关键词(140ms 防抖)。
    • 项目:全部项目 / 具体项目。选具体项目时只显示该项目行。
    • 分类、状态、费用:按需组合。
    • DR 排序:默认 / 正序 / 倒序(null 恒最后)。
    • 重置筛选:一键清空所有条件。
  3. 改状态:行内下拉选 待发布 / 已发布 / 已收录 / 被拒绝。改完立即保存。
  4. 填跟进日期:行内日期框。若日期早于今天且状态不是已收录/被拒绝,该行左侧出现黑色竖线标记逾期。
  5. 写备注:行内备注框,失焦自动保存,占位符是“点击输入…”。
  6. 记外链:
    • 点“上线地址”列的按钮展开面板,按钮上的数字是当前外链条数。
    • 点 记录新上线,新增一行:URL、标题/备注、日期(默认今天)。
    • 日期很重要——OKR 按外链日期统计。
    • 每条右侧垃圾桶可删除。
  7. 多项目同渠道:当一个渠道下挂了多个项目,表格会显示主行 + 子行,每行独立状态/日期/备注/外链。

6.4 设置目标并看进度

  1. 概览区“目标”一行:
    • 选周期:本周 / 本月 / 本季度 / 本年(切换会自动填默认目标 20/100/300/1000)。
    • 填“达成 __ 个分发点”。
    • 右侧显示百分比、进度条、“已完成 X / Y”、“剩余 N 天”。
  2. 统计口径:只算当前项目、当前周期内、所有渠道 links 中 date 落在区间内的条数。没填日期的外链不计入。
  3. 教练提示会根据情况变化:
    • 目标为 0 → 提示先设目标
    • 达成 100% → 祝贺
    • 剩余 ≤2 天且 <80% → 警告冲刺
    • 时间进度 > 完成进度 +20% → 提示落后
    • 完成进度 > 时间进度 → 提示领先
    • 其余 → 稳住节奏

6.5 添加自定义渠道

  1. 渠道表右上角点 添加渠道。
  2. 填写:渠道名称(必填)、网址、分类、费用(Free/Paid/待确认)、DR(0–100 选填)。
  3. 提交时若同名或同域名已存在,会弹确认框;确认后作为自定义渠道加入(表格里带“自定义”小标签)。
  4. 自定义渠道和预置渠道一样参与筛选、排序、进度记录。

6.6 修改 DR

  1. 表格 DR 列,点任意 DR 值(显示 DR — 表示空)。
  2. 变成输入框,填 0–100,回车保存、Esc 取消。
  3. 非法值(非数字、超范围)会被清空为 null。
  4. 保存后 toast 提示“已保存 DR:xx”或“已清空 DR”。

6.7 导出备份与导入恢复

导出

  1. 右上角点 导出。
  2. 下载 hyb-console-backup-YYYY-MM-DD.json,含 platforms/projects/progress/okr 全量。
  3. 建议每次批量改动后导出一次,保留多份。

导入

  1. 右上角点 导入,选 JSON 文件。
  2. 弹确认框:“导入将覆盖当前全部渠道、项目物料、分发进度和目标设置”。
  3. 确认后整体替换并重渲染,toast 显示“导入成功:X 个渠道 · Y 个项目”。
  4. 兼容旧版扁平数组格式(会迁移到第一个项目下)。

6.8 重置数据

  1. 页脚点 重置数据。
  2. 确认框提示“所有渠道的分发进度、备注、上线记录、项目物料和目标都会恢复初始状态”。
  3. 确认后恢复默认渠道库 + 默认项目 + 默认 OKR(month/100)。

6.9 日常使用建议节奏

七、故障排查

现象原因处理
刷新后数据没了清了浏览器站点数据 / 换设备用导出的 JSON 导入
提示“本地存储空间不足”localStorage 满或隐私模式导出备份、清理站点数据、换普通窗口
复制没反应非安全上下文且 execCommand 失败手动选中复制,或改用 https 访问
选了状态渠道消失状态筛选作用于项目行先选具体项目再看状态
OKR 不涨外链没填日期或日期不在周期内给外链补日期
DR 排序没变DR 为 null 恒排最后点 DR 值手动填写