SuperAPI AI 工具集

local-first-app

编程与开发

查看项目

更新于 10-15 19:57

技能介绍

用途:构建只做一件事的单用户应用,如游戏待办、健身记录、收藏目录。数据存于用户本机的一个 SQLite 文件中,无账号、无托管 API、使用时不经网络,可打包为桌面二进制。

主要能力:实体间有真实关系,一对多用外键,多对多用连接表,并声明删除对另一侧的影响。删除移入回收站而非直接移除,可恢复,恢复时级联项一并回来;列表、计数、搜索在删除期间排除它们。数据库文件自动备份(按计划及每次迁移前,保留最近若干快照),支持导出数据到文件,迁移在启动时运行。新装为零行、无种子数据,每个列表需真实空状态。

路由:固定包含首页概览、跨实体搜索 /search?q=、/trash、/settings、有日期数据时的 /calendar、/dynamic-collections。每个实体有列表、新增、查看、编辑四个可寻址路由;URL 即状态,可深链、刷新与后退;新增与编辑共用同一表单。

UI 模式:列表用标签页切分同一批记录,实体页用标签页进入关联实体;筛选与排序由 URL 参数驱动并在服务端执行;列表按记录形态渲染(默认表格,有图用卡片,实物实体用拟物),表格视图始终可达;表格可排序、筛选,带图例,行可就地展开;图标与文字标签并列;支持批量选择与批量编辑;加载与错误按区块处理,失败时说明原因并提供重试。

动态集合:对单一实体列表的命名保存筛选,保存的是查询字符串而非结果,打开时按当前数据重跑;筛选失效时明确提示并返回空。

拟物:支付方式渲染为信用卡,联系人渲染为名片,专辑为唱片,游戏为卡带,书为书脊,消费为收据;仅为呈现,记录仍可排序筛选并作为表格行访问。

外观:顶部导航含搜索框与主题切换;主题除明暗外提供领域命名主题;侧边栏可折叠分组;设置含主题、数据文件位置、从备份恢复与外部 API 密钥。

技术栈:Next.js(App Router)+ React + TypeScript,SQLite 单文件,优先无原生构建步骤的驱动(如 Node 的 node:sqlite)以便编译为单一二进制;用环境变量配置,尤其是数据文件位置。其余库自选。

限制与注意:node:sqlite 默认关闭外键,需在连接打开时执行 PRAGMA foreign_keys = ON,并在同一事务中把子记录移入回收站;迁移检查应在每次模块加载时运行;快照应写在数据目录旁或系统用户数据目录,并按时间戳清理;备份需按计划执行而非仅迁移前。打包说明见 references/PACKAGING.md。具体收费、价格与平台支持暂未提供。