【Code With SOLO】思得便签看板:把闲置屏幕变成效率神器

1. 摘要

我用 TRAE SOLO 开发了一款「思得便签看板」桌面工具。它可以把电脑屏幕变成一面自由组合的便签墙:无需登录、本地存储、打开即用。解决了记在手机里容易忘、打开软件太慢、操作太重的日常痛点。

2. 背景

我是一名产品兼独立开发者,日常工作需要频繁记录灵感、待办事项、常用代码片段。用过各种便签软件和云笔记后发现几个共性问题:

  • 要登录:打开软件先登录,灵感早没了

  • 操作重:记一个简单的事要选笔记本、打标签、点保存

  • 不够直观:不能像真实便利贴一样随便贴在桌面上

  • 数据不在本地:担心隐私,又不想折腾同步

于是我决定自己做一个:打开即用、所见即所得、数据全在本地

3. 实践过程

3.1 任务拆解

我把需求拆成 4 个核心模块:

模块 功能
便签墙 自由拖拽、任意位置、大小可调、多种颜色
数据存储 本地自动保存(Tauri 存储插件),无需登录
管理功能 一键整理、搜索、置顶、删除
交互体验 拖拽流畅、置顶层级正确、响应迅速

3.2 用到的 SOLO 能力

  • 代码生成:从零生成 Tauri + Vue 3 的便签拖拽系统

  • 实时调试:SOLO 内直接运行,边改边看效果

  • Bug 修复:拖拽定位偏差、置顶层级混乱,SOLO 帮我快速定位修复

  • 架构建议:让 SOLO 给出 Tauri 本地存储的最佳方案

3.3 关键 Prompt 与操作过程

Prompt 1(项目初始化)

用 Tauri + Vue 3 做一个桌面便签应用。要求:

  • 便签可拖拽移动、可调整大小

  • 支持多种背景颜色

  • 数据使用 Tauri 的 store 插件保存在本地

  • 不需要任何登录

Prompt 2(一键整理)

增加一个「整理」按钮,点击后所有便签按照网格自动对齐排列,间距均匀,不要重叠。

Prompt 3(置顶功能)

每个便签顶部有一个图钉图标,点击后该便签置顶,始终显示在其他便签之上。多个置顶便签之间,最后置顶的优先级最高。

中途踩过的坑

问题 解决方式
拖拽时便签位置闪烁 SOLO 建议用 transform: translate() 替代直接修改 top/left,减少重绘
多个置顶便签层级混乱 用动态 z-index 数组管理,最新置顶的便签值最大
拖拽时误触关闭按钮 调整事件绑定,拖拽区域仅限于便签顶部标题栏
Tauri 窗口透明区域拖拽穿透 配置 data-tauri-drag-region 属性,区分拖拽区和内容区

3.4 开发节奏

  • 初版(基础便签墙 + 拖拽):约 1.5 小时

  • 整理 + 搜索 + 置顶:约 1 小时

  • 颜色分类 + 自动保存:约 0.5 小时

  • Tauri 打包 + 窗口适配:约 0.5 小时

总计约 3.5 小时,如果从头手写估计要 2-3 天。

4. 成果展示

核心功能

功能 说明
:card_index_dividers: 自由组合便签墙 任意位置、任意大小、随意拖拽
:person_golfing: 一键整理 便签自动排成整齐队列
:magnifying_glass_tilted_left: 快速搜索 左侧列表支持关键词搜索
:artist_palette: 多色便签 红/黄/蓝/绿等,用颜色分类
:pushpin: 置顶 重要便签始终在最前
:counterclockwise_arrows_button: 自动保存 内容实时存储,不怕丢失

效果截图

下载与源码

5. 效果与总结

提效对比

场景 之前 现在
记一个灵感 打开云笔记 → 登录 → 新建 → 保存(约 30 秒) 打开软件 → 双击新建(约 3 秒)
整理便签 手动一个个拖(杂乱费时) 点一下「整理」按钮(1 秒)
找某条便签 翻遍所有笔记(不确定有没有记过) 左侧搜索关键词(2 秒)

整体提效约 5-10 倍,而且使用意愿明显提高——因为真的不麻烦。

SOLO 在开发中的角色

  • 代码主力:约 70% 的代码由 SOLO 生成,尤其是拖拽逻辑、搜索功能、置顶管理

  • 调试助手:遇到布局或层级问题时,把问题描述贴给 SOLO,几分钟定位解决

  • 架构参谋:不确定 Tauri 本地存储选哪个插件时,SOLO 给出对比建议

可复用的方法

  1. Tauri + Vue 3 桌面应用模板:这套「便签墙」交互模式可以复制到任何「自由布局 + 卡片」类应用

  2. 纯本地优先:不强制登录、不上传云端,用户对隐私更有安全感

  3. 一键整理算法:基于网格碰撞检测的自动排列逻辑,可以独立抽离成通用函数

  4. 加入了HTTP服务接口,可以通过该接口实现手机端访问(另一个项目,详情请见gitee)