WordsFunny是什么

WordsFunny 是个开源的背单词网站,由开发者 SteveSuv 用 Remix 框架从头搭起来的,里面整合了国内主流教材和各类考试的词库,可以从书籍、文章或视频中无缝添加单词,并通过交互式测验和 LLM 生成的课程来学习这些单词。支持语音对话,多语言学习,模板词库等,登录后还能同步学习进度。

代码放在 GitHub 上(SteveSuv/remix-words-funny)。可以直接在线用,也可以自己用 Docker 部署在本地。

✨ 功能特征

  • 词库挺全:从小学到高中的教材词汇(北师大版、人教版、外研社版都有),还有新东方的四六级、考研、雅思、托福、GRE、GMAT、SAT、BEC、专四专八,以及一些真题高频词。

  • 三栏布局:左边选词书,中间是单词列表,右边显示单词详情(释义、例句、同义词这些)。

  • 可以听发音:支持英式和美式发音,点一下就能听。

  • 释义详细:有中文翻译、英文释义、常用短语、例句,还会关联同义词和同根词。

  • 学习进度同步:注册登录后,能记住哪些词掌握了、哪些还没搞定。

  • 技术栈:用的 Remix (React Router v7) + tRPC + Drizzle ORM + PostgreSQL + HeroUI,端到端类型安全。

  • 开源、可自部署:支持 Docker 一键部署,数据自己管,也能自己导 CSV 词库进去。

🎯 应用场景

  • K12 同步学习:适合用人教版、北师大版、外研社版教材的小学、初中生课后复习。

  • 中高考备考:背高中教材词汇和高考必备词。

  • 留学考试准备:雅思、托福、GRE、GMAT、SAT 这类考试的词汇积累。

  • 大学英语考试:四六级、专四专八、考研英语都能用上。

  • 自己拓展词汇:刷真题高频词库,针对性地强化一下。

👍 优缺点

优点

  • 完全开源免费,MIT 许可证,想怎么用、怎么改、怎么部署都行。

  • 词库覆盖面广,教材和培训机构常见的词书基本都有。

  • 在线版不用安装,浏览器打开就能用。

  • 想自己部署也可以,用 Docker 跑起来,数据完全在自己手里。

  • 基于 TypeScript,前后端类型统一,代码质量不错。

不足

  • 对浏览器版本有点要求,太老的浏览器可能用不了。

  • 本地部署需要懂点 Docker 和 PostgreSQL,有点门槛。

  • 没有移动端 App,只有 Web 版,手机上是浏览器体验。

  • 在线版得联网,离线用的话得自己部署一套。

  • 没做艾宾浩斯或者间隔重复算法,复习节奏得自己把控。

🚀 使用方法

方式一:在线用

  • 直接打开 https://wordsfunny.com

  • 左边选词库(比如“新东方考研词汇”“人教版高中英语”),点单词右边会显示释义、发音、例句这些。登录后可以同步进度,标记哪些单词掌握了。

方式二:Docker 本地部署

适合想离线用或者不想把数据放别人那儿的:

# 1. 克隆仓库
git clone git@github.com:SteveSuv/remix-words-funny.git
cd remix-words-funny
# 2. 创建 PostgreSQL 容器
docker run -d --name postgres -p 5432:5432 \
  -v postgres_data:/var/lib/postgresql/data \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_PASSWORD=your_password \
  -e POSTGRES_DB=wordsfunny \
  postgres:16-alpine
# 3. 安装依赖并同步数据库结构
pnpm install
pnpm db:push
# 4. 导入词库数据(需下载 CSV 文件导入)
# 5. 启动开发服务器
pnpm dev

更详细的部署步骤,可以参考 GitHub 上的文档。

💬 常见问题

Q1: 词库数据怎么弄?

项目用 CSV 文件导入,作者提供了 15 万+ 单词的数据文件,在 GitHub README 里有网盘链接(Pikpak)。

Q2: 手机上能用吗?

目前是响应式的网页,手机浏览器可以直接访问。听说 GitHub 上有社区小伙伴在做 React Native 版本的移植。

Q3: 能自己加词库吗?

可以,需要准备好包含 Book 和 Word 表的 CSV 文件,按顺序导入(先 Book 后 Word)。

Q4: 本地部署完没数据?

得手动导入 CSV 词库文件,再检查下数据库连接。跑一下 pnpm db:task,如果看到 total words count: 152543 就说明导成功了。

Q5: 离线能发音吗?

在线版用的是浏览器语音接口或在线音频。本地部署的话,要么联网,要么自己配个离线的 TTS 服务。

🔗 相关链接

在线地址:https://wordsfunny.com

GitHub 仓库:https://github.com/SteveSuv/remix-words-funny

技术栈:Remix + React Router v7 + tRPC + Drizzle + PostgreSQL + HeroUI + Docker