你有没有想过,为什么玩个数独也要和广告搏斗?
点进任何一个数独网站,先弹横幅,再弹视频,关掉三层浮窗才能看到格子。更离谱的是操作逻辑——鼠标点完这个点那个,像在填Excel表格,而不是在解谜。
开发者Austin Chen忍不了。他花了三个月,用Next.js 15和Supabase搭了个叫Kodiak Sudoku的网站:零广告、全键盘操作、支持Vim按键绑定。 leaderboard把"用提示"和"纯手解"分开排名——因为"有人靠三次提示4分钟通关,不该排在干净解法5分钟的人前面"。
这个项目的起点很私人。"我玩数独是为了思考,不是为了和浏览器打架。"Chen在博客里写道。但技术选型却相当务实:Vercel和Supabase的免费额度够撑,没有广告SDK意味着没有布局抖动和第三方追踪,"页面快是因为没东西拖慢它"。
真正的工程挑战在输入层。React的合成事件系统和浏览器原生焦点行为"并不总是一致的",尤其是当你想把一个9×9网格做得像文本编辑器。hjkl移动光标、数字键直接填数、方向键兼容——这些Vim用户习以为常的操作,在DOM里跑了三四个迭代才顺滑。
leaderboard的设计暴露了产品思维。多数数独站点的排行榜把"用提示"和"纯解法"混为一谈,Chen觉得这在消解成就感。Kodiak把两者拆成独立榜单,"小到可以改变你对排行榜的感受——它是你能骄傲的东西,不只是个数字"。
每日谜题用Vercel Edge Config全局分发,"零延迟";用户状态(进度、计时、提示次数)进Supabase。数据库层Chen试了Drizzle替代Prisma,"类型推断很好,查询构造器更接近写SQL"。
谜题来源也反常规:不是实时生成,而是人工筛选。"生成的谜题技术上有效,但机械感重。手选的更有性格。"Chen想要的是"人们真的享受解的题,不只是合法的格子"。
整个开发过程Claude充当"结对程序员"——不是代写代码,而是"有个资深开发随时能 rubber-duck 架构决策、抓输入处理逻辑的边缘情况"。
项目现在靠Chen自掏腰包托管。免费额度能走多远,决定了它会不会长期活着。但至少,数独玩家终于有个不用先关广告、还能按J键下移光标的去处了。
热门跟贴