12岁的Harun来自印度泰米尔纳德邦,他没有笔记本电脑,所有开发工作都在一部POCO C55安卓手机上完成,使用的工具是Acode编辑器。他正在开发一个名为Koda的AI编程导师SaaS产品。
几天前,Harun在Dev.to上发布了一篇帖子,标题是“我12岁,没有笔记本电脑,在安卓手机上构建了一个全栈AI SaaS”。他原本没抱什么期待,但接下来的两天,事情的发展超出了他的预期。
![]()
真实用户开始出现
这篇帖子获得了115次以上的浏览。更让Harun兴奋的不是浏览量,而是真实的注册用户。截至第二天,Koda已经拥有了8个真实用户,其中3个是完全陌生的互联网用户,通过帖子找到这个产品。
最让Harun意外的是一个名叫Nerando Johnson的用户。这位来自美国的高级软件工程师不仅注册了Koda,还对他的AI进行了完整的6点QA压力测试,而且测试通过了。
Johnson给Harun发了一封反馈邮件,并在邮件结尾引用了一句话:“勇敢不代表你不害怕,而是即使害怕也要继续前行。”——Angie Thomas。Harun把这句话抄在纸上,贴在手机旁边。
上线中途的崩溃与修复
就在Harun庆祝用户增长的时候,他的应用开始出现404和400错误,用户无法正常聊天。他一度非常慌张。
问题出在AI模型供应商Groq身上。Groq在应用上线期间弃用了Harun正在使用的两个模型:llama-3.1-8b-instant和openai/gpt-oss-120b。由于Harun的代码硬编码了这两个模型,模型被下架后,整个应用就崩溃了。
这次事故让Harun明白了一个道理:AI模型是供应商,而供应商会轮换库存,不能只依赖单一模型。他用Vanilla JS快速构建了一个模型回退链:如果主模型报错,系统会自动尝试下一个可用模型。
他在代码中定义了三个候选模型:llama-3.3-70b、llama-3.1-8b-instant和openai/gpt-oss-120b,通过循环逐个尝试,直到找到能正常响应的模型。这个修复花了他几个小时,全程在手机上用拇指敲代码,但应用最终恢复了在线。
手机开发中的UI问题
在手机上开发,UI问题会立刻暴露。Harun遇到了两个问题。
第一个是“滚动抖动”。当AI流式输出文本时,聊天窗口会剧烈晃动。他的解决方案是:在AI打字过程中使用即时滚动,只在流式输出结束时切换到平滑滚动。效果明显改善。
第二个问题是Netlify的徽章。这个徽章固定在屏幕右下角,在手机上会完全遮住“发送”按钮。Harun尝试用CSS的z-index和margin来调整,但徽章总是会回来。最后他直接写了一段JavaScript,从DOM中移除了这个元素。
两天时间,Harun经历了用户增长、模型供应商变动、应用崩溃和修复。他的Koda项目还在继续,而那张写着Angie Thomas名言的纸,就贴在手机旁边。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.