今年 40+,上半年被毕业了。在家待了阵子,投出去的简历大多石沉大海——这个年纪,厂里不怎么缺写业务代码的。
想明白一件事:与其继续挤那扇快关上的门,不如自己弄点东西,哪怕小。决定做 出海 SaaS 。
理由很朴素:国内流量太贵、太卷,而我英语还行,产品在海外自己能说清。选「图片压缩」这个切入点,是因为它刚需、高频、而且我能做出差异化—— 全程在浏览器里跑,图片不上传服务器 。
隐私这个点,海外用户比国内在意得多。开发过程(踩坑比功能多) 框架定的是 Rust 编译成 WASM 做压缩核心,前端 React + Vite SSG 。
真正动手才知道坑有多深,随手记几个: 1. 跨源隔离( COI )是个双刃剑 为了开压缩多线程加速,得开 Cross-Origin-Isolation 。 9-2 那天终于开起来了,速度确实上来了,但 Google 登录直接挂——后来查到是 COEP 把登录用的 iframe 拦死了,又改回弹窗授权流程( f3d7ce4 )。
- OAuth 登录死磕了一整天 9-3 基本都在跟 Google / X 的登录较劲。 FedCM 、COEP 、opener 被切断……X 的弹窗回跳因为 opener 变 null ,postMessage 根本传不回来,最后统一改成 cookie 回传 + 主站轮询( 3353c80 )。
这种坑文档几乎不写,全靠真机一步一步试。 3. 凌晨炸了个 P0 9-4 半夜全站压缩崩溃。
根因很隐蔽:多线程 WASM 包在 COI+COEP 下,嵌套的 rayon worker 被 COEP 拦死。回滚方案是 默认路径绝不自动加载线程包 ,只有用户显式开 Turbo 才加载( 569731d )。
这次事故我写了份复盘报告,后面打算发出来。 4. AI 增强差点劝退 接了 ONNX Runtime Web 做去背景/降噪,结果模型加载永久卡死。
最后是强制 ORT numThreads=1 才稳住( 5384544 )——WebGPU 这条路在 Safari 上至今还是 legacy 1.17 保命。 5. SEO 是后补的课 铺了 234 个本地化长尾落地页( SSG ),结果 hydration 把服务端渲染的 覆盖了,导致收录卡住,又回过头修( fea7368 )。
9-4 加了一堆站长验证文件( Bing / 百度 / IndexNow ),才刚起步。顺手把前端架构开源了( zipo-frontend ,MIT ),反正核心压缩是 WASM 闭源,开源出去的不影响: /ai-market-guide/ 现在的状态 站点上线了:** /ai-market-guide/ ** 功能:JPG / PNG / WebP / AVIF 压缩,AI 去背景、降噪、水印,批量导出。
卖点是「文件不出浏览器」。但一个人测试总归有盲区——不同浏览器、不同机型、不同网络下的表现,我有数不清没覆盖到的地方。