ZotePad 是一个基于 Tauri v2 和 Nuxt 4 构建的本地优先(Local-First)跨平台笔记应用。
这是我Vibe Coding的产物,一边是支持自己日常的使用场景;一边也是探索 Tauri V2 多端应用的稳定性,这个壳子可以用于稳定二开其他多端App。
这个应用的主题是:记录、分享、连接、通知、获取、成就
这几个关键词贯穿了我现在以及未来全部的使用场景,围绕这些关键词,我会尽可能的保持精简和易用。
说人话,我写文章就会拓展写文章的功能,我做副业就会增加做副业的工具 为自己所用
想体验的小伙伴,请选择最新版本,未发布1.0.0前,一定存在或大或小的bug
集成 md-editor-v3 内核,专注于提升写作流畅度。
- 自动化图床:解决了 Markdown 写作中图片管理的痛点。支持粘贴或选择图片后自动上传至腾讯云 COS,并自动插入链接。
- 实时预览:所见即所得的编辑体验。
虽然是混合开发应用,但在移动端交互上下了很大功夫。
- 原生级适配:精确处理了刘海屏、动态岛等 Safe Area 布局。
- 符合直觉的交互:在移动端自动切换为底部导航(Tab Bar)和抽屉式(Bottom Sheet)菜单,支持手势操作,确保单手使用的便利性。
- 本地优先:核心数据(笔记、索引)存储于本地 SQLite 数据库,不依赖第三方云服务,确保数据完全私有且离线可用。
- 混合架构:文本数据本地存储,大文件(图片/附件)云端存储,平衡了隐私安全与存储体积。
- 局域网同步:支持在局域网内将桌面端作为服务器,与移动端直接同步数据,无需经过公网。
内置了一个轻量级的成就系统。通过统计字数、记录天数等维度计算经验值(EXP),为单纯的记录过程增加一些正向反馈。
本项目采用了一套现代化的混合开发技术栈,旨在平衡开发效率与应用性能:
| 模块 | 技术选型 | 考量 |
|---|---|---|
| App Shell | Tauri v2 (Rust) | 相比 Electron 拥有更小的体积和更低的内存占用,且 v2 版本原生支持 Android/iOS。 |
| Frontend | Nuxt 4 (Vue 3) | 利用 Nuxt 的自动导入和模块化特性极大提升开发效率,配合 Vue 3 Composition API 处理复杂逻辑。 |
| UI System | Tailwind CSS + Shadcn | 实用主义的样式解决方案,保证了多端 UI 的一致性与美观度。 |
| Database | SQLite | 成熟可靠的嵌入式关系型数据库,适合本地数据持久化。 |
| Animation | GSAP | 处理复杂的 UI 过渡动画,提升应用的精致感。 |
如果你对这个技术栈感兴趣,或者想部署一套自己的私有笔记系统:
- Node.js (v18+)
- pnpm
- Rust (最新稳定版)
- Android Studio (仅 Android 开发需要)
-
克隆仓库
git clone <your-repo-url> cd zotepad
-
安装依赖
pnpm install
-
启动开发环境
# 桌面端 pnpm tauri dev # Android 端 (需连接真机或模拟器) pnpm tauri android dev --open
项目配置了基于 GitHub Actions 的 CI/CD 流程。
- 自动构建:提交信息包含
chore(build): release vX.Y.Z时触发。 - 多端产物:自动生成 Windows (.msi/.exe), macOS (.dmg) 和 Android (.apk) 安装包。
- 版本管理:推荐使用内置脚本管理版本:
pnpm quick-release-patch-auto
为了生成 Release 版 APK,需配置本地 Keystore。
详细配置请参考 src-tauri/keystore.properties 文件注释。CI 环境需在 Secrets 中配置 ANDROID_KEYSTORE_BASE64 等变量以实现自动签名。
欢迎提交 Issue 或 PR,共同完善这个小工具。