基于 FSRS 改进的间隔重复算法的 Markdown 闪卡学习应用
多题型练习 · Anki 风格模板 · 学习统计 · 可安装为 PWA · 单服务器自托管
特性 · 快速开始 · 技术栈 · 项目结构 · 赞助 · License
在线体验 Demo · 演示账号 demo@remem.app / remem-demo-2026
ReMem 是一个让你真正记住内容的闪卡学习应用。它以艾宾浩斯遗忘曲线为内核,采用在 FSRS 基础上改进的间隔重复 / 进度算法精准调度复习,用 Markdown 写卡,支持五种题型与 Anki 风格的 Field + Template 模板系统,在桌面与移动端(PWA)都能持续复习、长期坚持。
间隔重复调度构建于
ts-fsrs(FSRS)之上并在其上改进;模板系统借鉴 Anki 的 Note Type 理念,与 Anki 项目无隶属关系。
- 改进的间隔重复算法:基于 FSRS 改进的调度 + 自研进度模型(0-1 掌握度),比传统 SM-2 更贴合真实记忆曲线;每副牌组可独立配置每日新卡 / 复习上限、目标留存率等参数。
- Markdown 写卡:正反面均支持 Markdown,内置代码高亮(highlight.js)、数学公式(KaTeX)、图表(Mermaid),CodeMirror 6 编辑体验。
- 五种题型:问答 / 选择 / 多选 / 填空 / 判断,同一字段可绑定不同模板。
- Anki 风格模板:Field + Card Template 模式,
{{字段名}}占位符替换,JSON 与 Markdown 序列化往返无损;支持批量导入。 - 学习统计:复习热力图 + 记忆留存曲线,首页与独立
/stats页双视图。 - PWA + 移动适配:可"添加到主屏幕"全屏启动,移动端玻璃拟态底部导航,响应式布局,离线壳缓存。
- 多用户 + 自托管:NextAuth v5 凭据登录,数据按用户隔离;单台 Node.js + SQLite 即可部署,数据完全在你自己手里。
- 统一设计系统:冷淡风沙绿主题,声明式 UI + 毛玻璃 + 设计 token,亮 / 暗色双主题,WCAG AA 对比度。
需要 Node.js >= 20 与 pnpm 10。
# 1. 安装依赖
pnpm install
# 2. 准备环境变量
cp .env.example .env.local
# 生成一个 NEXTAUTH_SECRET 并填入 .env.local:
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
# 3. 初始化数据库(SQLite)
pnpm prisma migrate dev
# 4.(可选)创建一个测试用户,密码会随机生成并打印到终端
node scripts/create-admin.mjs
# 5. 启动开发服务器
pnpm dev访问 http://localhost:3000,注册账户后即可开始。
生产构建
pnpm build && pnpm start # 单服务器 Node.js + SQLite提交前请确保三道门全部通过:pnpm typecheck && pnpm lint && pnpm build。
| 层 | 选型 |
|---|---|
| 框架 | Next.js 15(App Router · RSC · Server Actions)+ React 19 + TypeScript 5.7 |
| 样式 | Tailwind CSS 3.4 + shadcn/ui(new-york)+ 毛玻璃设计 token |
| 数据 | Prisma 6 + SQLite |
| 认证 | NextAuth v5 + bcryptjs |
| 算法 | ts-fsrs(FSRS,在其上改进)+ 自研进度模型 |
| 内容 | CodeMirror 6 · react-markdown · KaTeX · Mermaid · highlight.js |
| 图表 | Recharts |
| 状态 | Zustand · Zod |
依赖全部精确锁版本(无
^/~/latest),供应链零信任。
src/
├── app/ # Next.js App Router 页面、Server Actions 与 API 路由
├── components/ # React 组件(UI / 布局 / 统计图表 / PWA)
├── lib/ # 工具与核心算法
│ └── fsrs/ # 间隔重复调度、进度模型、队列、graduation(纯函数)
├── stores/ # Zustand 状态
├── hooks/ # 自定义 hooks
└── types/ # TypeScript 类型
prisma/ # 数据库 schema 与迁移
public/ # 静态资源、PWA manifest 与 service worker
docs/ # 设计系统等文档
- FSRS 改进调度 + 自研进度模型
- 五题型 + Anki 风格 Field/Template 模板系统 + 批量导入
- 学习统计(热力图 / 留存曲线)
- PWA + 移动端底部导航 + UI 视觉重构
- 桌面端(Electron,Windows / Linux / macOS)离线单机版
- Android(Capacitor)离线单机版
- 多设备云同步(规划中)
桌面 / 移动端原生版为移除账户的本地优先形态,正在独立分支探索,不影响本仓库的 Web 版本。
如果这个项目对你有帮助,欢迎点一个 Star。
ReMem 由个人利用业余时间开发与维护,免费、无订阅、无广告。如果它帮你省下了一份记忆软件订阅,或你希望桌面 / 移动端离线版能继续做下去,欢迎请作者喝杯咖啡,完全自愿,与你的数据和功能访问无关。
![]() 微信支付 |
![]() 支付宝 |
不方便赞助?点个 Star、提个有质量的 issue,或把它分享给需要的人,对项目同样是实打实的帮助。
本项目采用 PolyForm Noncommercial License 1.0.0。
允许个人 / 研究 / 教学 / 非营利组织的使用、修改与再分发;禁止任何商业用途。详见 LICENSE。
Copyright (c) 2026 KRPCT · 让你真正记住,而不只是读过。

