承接客户项目

Workbench Soft 是一家独立工作室。我们为 Android、iPhone、网页、Windows 和 macOS 开发应用,从第一份需求说明一路做到上架、搜索收录和之后的更新。

项目
16
已上线功能
170
平台
6
本站广告
0
AstroReact NativeExpoNext.jsReactTypeScriptRustTauriCapacitorCloudflare WorkersFirebaseWebGLMapLibreWeb AudioMIDIExifToolWebDAVTailscale.NETGitHub Actionsmise
01 / 服务

工作室能为你做什么

做出下面这些应用的团队,也能做你的应用。每个方向都链接到证明它的项目。

移动应用

用 React Native 和 Expo 开发的 Android 与 iPhone 应用。后台服务、唤醒词、地图、离线数据和应用内购买。发布到 Google Play,或作为能自动更新的 APK。

Web 应用与 PWA

用 Next.js、React 和 Astro 开发的应用,可装到主屏幕,没有网络也能打开。托管在 Cloudflare Workers 上,页面可被搜索引擎收录。

桌面与系统工具

用 Rust 和 Tauri 为 Windows 和 macOS 开发的原生应用。键盘钩子、托盘图标、可撤销的文件整理,以及能自动更新的安装程序。

地图、语音与音频

带逐向导航的实时地图。离线唤醒词和语音转文字。浏览器里的合成器、效果器和 MIDI。

上线与增长

Google Play 商店页面和发布、Search Console、站点地图和结构化数据。AdMob 和 AdSense 及同意提示,然后是获取首批用户的计划。

工程与 AI 工具

在你自己的硬件上跑 CI、共享的 GitHub Actions,以及让编程智能体从工单到合并都遵守团队规则的技能。

02 / 项目

作品,逐个功能展示

下面每个项目都列出了它为用户做的事。按 / 搜索任意功能。

应用

01 / MEM

Memories

来自你自己 NAS 的“那年今日”照片。

平台
AndroidWindowsmacOSNAS
技术栈
ExpoReact NativeRustTauriWebDAVTailscale

Memories 用家中 NAS 上的照片和视频,展示往年的今天。它像 Google 相册的回忆功能,而照片留在主人放在家里的硬件上。

  • 每日提醒在设定的时间发出通知,写明年份和地点,比如“3 年前在日本”。出境旅行排在最前。
  • 今天图库中每一年的这个月这一天。点日期可选其他任意一天。
  • 旅行连续几天在国外拍的照片会组成一次旅行。一个链接打开从第一天到最后一天的照片。
  • 照片与归档所有照片和视频,最新的在前,每天一个标题。归档按年和月列出并显示数量。
  • 地点每一天都标明在哪里。筛选栏可以搜索地点、选择设备。
  • 相机与无人机拍摄相机或无人机拍的照片单独成组,排在手机照片旁边。
  • 双指缩放双指捏合设定每行 1 到 6 张,所有网格通用,重启后保留。
  • 一次发送多张长按开始选择。选中的照片一次分享到任意应用。
  • 相册链接选中的照片生成一个链接。对方在浏览器里打开相册,无需应用和账号。
  • 整理分步卡片整理手机上的照片,把它们移到 NAS 上按日期命名的文件夹,并释放手机空间。
  • 在 NAS 上整理选中的 NAS 文件按日期获得名称和文件夹,NAS 和索引同时更新。
  • 查看器照片和视频全屏显示,滑动切换下一张。视频直接从 NAS 播放。
  • 连接 NAS应用在 Wi-Fi 中找到 NAS。登录一次即可通过 WebDAV 打开照片文件夹。
  • 在外也能用通过 Tailscale 的第二个地址访问 NAS,无需把它暴露到互联网。
  • 同步进度横幅显示手机和 NAS 索引里有什么、正在运行什么、接下来做什么。
  • 移动数据首次用移动数据同步前会先询问。设置里的开关可以修改选择。
  • NAS 上的索引NAS 上的索引程序直接读取自己的硬盘,比通过 WebDAV 同步快得多。
  • 换新手机新手机直接接收旧手机的索引,省去耗时数小时的首次同步。
  • 英语和俄语应用跟随手机语言。Android 13 及以上可按应用单独设置。
  • 浅色与深色跟随手机,或在设置中固定选择。
  • 去除广告在 Google Play 一次性购买,同一 Google 账号的每部手机都不再显示广告。
02 / STC

SpotTheCam

澳大利亚和新西兰的测速摄像头,尽在一张地图上。

平台
WebAndroid
技术栈
Next.jsCapacitorMapLibreCloudflare Workers

SpotTheCam 把澳大利亚各州和新西兰官方公布的测速摄像头放到同一张地图上。每个标记都显示此刻生效的限速。Android 应用还提供语音提醒、行程记录和逐向导航。

  • 在地图上,任何浏览器都能用
  • 实时限速每个摄像头显示此刻的限速。在学校区域,数字随该区域的时间表变化。
  • 按区域搜索输入一个区域名称,地图就飞到那里的摄像头。
  • 摄像头类型点一下只保留需要的类型。浏览器会记住选择。
  • 跟随我地图跟随你并随行驶方向旋转。街道名称和标志始终保持正向。
  • 摄像头详情点标记可看到类型、地址、当前限速和官方来源链接。
  • 离线可用摄像头列表和打开过的地图区域都保存在设备上。可以作为应用安装。
  • 浅色与深色地图自动模式跟随设备,也可在齿轮菜单中选择。
  • 在 Android 应用中
  • 车速徽章你的车速显示在道路限速旁边。超过限速时徽章变红。
  • 摄像头提醒提前约 20 秒响一声,然后播报“前方测速摄像头,限速 60”。锁屏时也会提醒。
  • 超速“你的速度是 72,请减速。”可设为仅在摄像头附近,或在任何道路上。
  • 行程记录开车和步行会自动记录。每条路线都显示你经过每个摄像头时的速度,绿色或红色。
  • 分享行程一个链接可在任何浏览器中显示路线。停止分享会把它从服务器删除。
  • 里程大号数字显示本次行程的公里数和当天总计。
  • 逐向导航按最快顺序经过各站点,在 500 米和 200 米处播报转弯,并避开今天的拥堵。转错弯会重新规划路线。
  • 路线选项往返、步行或避开收费路段。像“家”这样的收藏点一点就能加入路线。
  • Hey Spot“Hey Spot, go to Bondi Beach, Manly and back.” 手机上的离线模型能听到唤醒词。
  • 屏幕常亮应用打开期间,仪表台上的地图保持亮屏。
  • 自动更新APK 会在 GitHub 上检查新版本,并显示大小、进度和取消按钮。
03 / GUP

Guitar Upscale

一把在浏览器里弹的吉他。

平台
WebAndroid
技术栈
Next.jsReactWeb AudioMIDICapacitorCloudflare

Guitar Upscale 在虚拟指板上显示音阶和和弦,录制循环并保存为 MIDI。它能逐音符编辑歌曲,以六线谱显示,并可安装到主屏幕。

  • 指板指板铺满屏幕,标出音阶中的音,并弹出你点的每个音。
  • 音阶、调弦和变调夹一个按钮显示调和调式,并打开音阶、调弦和变调夹的选择。
  • 调音器通过麦克风收音,表盘随窗口放大。
  • 调内和弦音阶每个音一个和弦,比如 E 小调的 Em F#dim G Am Bm C D。
  • 扫弦按住一个和弦会按节拍扫出节奏型。节奏型可以编辑。
  • 歌曲列表内置歌曲和你自己的歌曲。适合当前音阶的歌曲显示为绿色。
  • 语音搜索说出歌名。你说话时文字会填入搜索框。
  • Hey Guitar“Hey Guitar, play Metallica One.” 应用回答 “Listening” 并开始播放。
  • MIDI 录音录下你弹的音符和和弦。应用自己播放的音符不会录进去。
  • 循环器多个通道上的短循环一起播放。
  • 量化从 1/1 到 1/64 的一个时值同时设定网格、录音和循环器,就像在 Cubase 中一样。
  • 钢琴卷帘绘制、移动、拉伸、复制和擦除音符。标尺标出主歌、副歌、桥段和独奏。
  • 六线谱视图以 Guitar Pro 风格的六线谱显示音轨,播放头跟随歌曲移动。
  • 和弦谱按小节排列的和弦名随歌曲亮起。歌词在 Musixmatch 上打开。
  • 上传歌曲Guitar Pro 和 MIDI 文件会加入你的歌曲列表。
  • 在线找歌同时搜索 4 个曲谱网站。Songsterr 上的歌曲会转成 Guitar Pro 文件。
  • 和弦与音阶识别你弹奏时,应用会说出它听到的和弦或音阶。
  • 乐器主音和和弦分别选乐器:西塔琴、班卓琴、日本筝、弦乐等。
  • 效果混响和延迟,各有自己的开关和滑块。拖动滑块时声音随之变化。
  • 导出 MIDI文件可以下载,也可以通过分享菜单发出。
  • 付费等级通过 Patreon 登录或在 Google Play 购买,即可解锁 Explorer 和 Composer 工具。
  • 安装与离线一个横屏全屏打开的 PWA。Android APK 会自动更新。
04 / TCK

Tickalot

通过链接共享的购物、行李和观光清单。

平台
AndroidWeb
技术栈
ExpoReact NativeFirebaseOpenStreetMapWikipedia

对方打开链接就能勾选条目,每次勾选都会同时出现在两部手机上。无需注册。清单保存在手机上,共享的清单也会同步到云端。

  • 通过链接共享两部手机实时看到每次勾选。离线时的修改会在联网后同步。
  • 基础清单你常买的东西。点几下就变成本周的清单,带数量和备注。
  • 一次输入或说出多个条目“牛角包 2 包每包 3 个,有机鸡蛋”会变成 2 个带数量的条目。支持英语和俄语。
  • 图片应用根据每个条目的名称选一个表情符号。点一下可以添加照片。
  • 商店货架从 OpenStreetMap 选择商店,输入一次货架位置。之后清单按你的路线排序。
  • 共享货架一位顾客输入的货架位置,会为选择同一商店的每个人自动填好。
  • Coles 和 Woolworths 价格每个条目下显示单价,更便宜的商店用绿色标出。
  • 旅行打包每次旅行都从你平常的打包清单复制开始。
  • 值得一看来自维基百科的地点,分配到旅行的每一天。
  • 已完成的清单完成的清单会自动收起,无需手动清理。
  • 浅色与深色跟随手机,或固定选择。
  • 更新APK 会提示新版本,显示大小,并在使用移动数据时给出提醒。
  • 去除广告一次性购买。欧洲用户会在任何广告之前看到同意表单。
05 / KPD

Keeppad

说一声“Hey Keep”就开始的语音笔记。

平台
AndroidiPhoneWeb
技术栈
ExpoReact NativeFirebaseOn-device speechGemini Nano

说“Hey Keep”,应用会回应“正在录音”。它把你接下来说的话转成文字,并把笔记放进正确的分组,即使应用已关闭、屏幕已熄灭。

  • Hey Keep手机在后台监听的唤醒词。“Эй, Кип”也可以。
  • 停止与继续说“停止”立即结束笔记。说“Hey Keep,继续”会续写最新的一条。
  • 按键录音说话时文字会显示在屏幕上。
  • 录音在 Android 13 及以上和 iPhone 上,笔记会保留原声。
  • 分组待办、购物、想法、工作等。支持的手机上由设备端 AI 选择分组。
  • 英语和俄语一条笔记可用其中一种语言或两种都用。在 Android 14 上,笔记可在停顿处切换语言。
  • 通过链接共享对方在应用或浏览器中打开笔记,双方可实时编辑。
  • 发送到其他应用新笔记可发送到 Obsidian、Notion、Todoist、Google 文档或 OneNote。
  • 网站共享的笔记在浏览器中打开,旁边是使用指南和政策。
  • 应用内更新APK 找到新版本后会下载并打开安装程序。
  • 浅色与深色跟随手机,或固定选择。
06 / SVH

Servo Hop

澳大利亚油价地图,附每个加油站的价格历史。

平台
WebAndroidiPhone
技术栈
ExpoReact NativeMapLibreCloudflare Workers

Servo Hop 读取各州的油价数据,把每个加油站按价格着色放到地图上。它保存每日历史,也显示电动车充电桩。免费使用,无需账号。

  • 地图上的价格最便宜的三分之一用绿色标记,中间用琥珀色,最贵的用红色。
  • 加油站列表视野内的加油站,最便宜的在前,显示品牌、区域和价格变动时间。
  • 价格历史30、90 或 365 天的每日均价,叠加在最低到最高的区间带上。
  • 司机上报没有州政府数据的地方,由司机上报价格牌上的价格。
  • 电动车充电桩网络、接口和最大功率。司机上报每千瓦时的价格,应用保存其历史。
  • 搜索页面每个州、区域和加油站都有一个页面,带结构化数据和站点地图。
  • 自动更新APK 在启动和每次返回时检查 GitHub,并在顶部显示下载进度。
  • 去除广告在 Google Play 一次性购买,换新手机也能恢复。
07 / CNS

Consdr

租赁、贷款还是全款:在澳大利亚买车要花多少钱。

平台
WebAndroid
技术栈
ReactViteCloudflare WorkersService worker

Consdr 显示同一辆车在同样期限内,通过 novated lease 租赁、汽车贷款和全款购买的总成本。计算中的每个固定数字都链接到出处。

  • 三种方式并排比较租赁、贷款和全款,各自显示整个期限的总额。
  • 钱花在哪里每个总额拆分为车价、融资、使用费用、税费和损失的利息。
  • 租赁与贷款设置利率、尾款、费用、通过租赁支付的油费,以及 FBT 豁免。
  • 按车型计算 FBT纯电动车、插电混动车或汽油车的规则,依开始日期和价格而定。
  • 各州印花税全部 8 个州和领地,根据价格、车型和开始日期计算。
  • 账户利息资金每月在房贷对冲账户或储蓄账户中增长,让比较保持公平。
  • 购房贷款还车贷期间,银行会少借给你多少。
  • 计算过程与出处计算的每一步,每个固定数字都有出处。
  • 常见问题关于租赁、电动车豁免、尾款和房贷的解答。
  • 指南关于 novated lease、FBT、尾款和印花税的简明页面,数字来自同样的规则。
  • 保存输入刷新页面会保留你填的内容。“恢复默认”会清空它们。
  • 离线首次访问后,计算器没有网络也能打开。
  • 配色主题自动、浅色或深色。
  • 去除广告在 Android 应用中一次性购买。
08 / LFP

Langflip

修正用错键盘布局打出的单词。

平台
WindowsmacOS
技术栈
RustWin32Dictionaries

在错误的布局下打出 ghbdtn,Langflip 会改成 «привет» 并切换布局。英语也一样。它离线运行,不记录你输入的内容。

  • 边打边改从第 4 个字母起,只有在另一种布局下才有意义的单词会用那种布局重新输入。
  • 短单词少于 4 个字母的单词在按空格、回车或 Tab 时更改,前提是另一种布局能组成真实的单词。
  • 保留数字ьз3 会变成 mp3。
  • 撤销修正修正后立即按 Pause 会还原单词并记住它。
  • 手动转换Shift+Pause 把最后一个单词转换为另一种布局。
  • 跳过应用和输入框密码框、管理员窗口以及设置中列出的应用都不受影响。
  • 图标显示布局托盘为前台窗口显示蓝底 EN 或红底 RU。
  • 单击暂停单击托盘图标关闭修正,图标变灰。
  • 双击切换双击图标切换前台窗口的布局。
  • 登录时启动首次启动时开启,托盘菜单中有开关。
  • 设置文件排除的应用和要保留的单词,都在一个 TOML 文件里。
09 / MOR

Media Organizer

按日期和地点把照片和视频整理进文件夹。

平台
WindowsmacOSAndroid
技术栈
TauriRustReactExifToolLeaflet

一款桌面应用,读取每张照片的拍摄时间和地点,然后把它移到按年份、地点和日期命名的文件夹。它与 Memories 共用文件夹规则,所以手机和电脑的整理方式一致。

  • 扫描遍历所选文件夹时列出其中的每个文件。
  • 拍摄日期内置的 ExifTool 读取每张照片和每段视频的日期、相机和 GPS。
  • 离线地点无需联网即可把 GPS 转换为地点文件夹。
  • 先看计划在移动任何文件之前,应用会显示每个文件的新文件夹和新名称。
  • 移动确认后的文件开始移动,可暂停、继续和清理。
  • 历史、撤销与重做每次运行都写入日志,可以双向回放。
  • 设置目标文件夹、仅重命名、按地点分组以及家的位置。
  • 文件表带状态的行、筛选器、地点地图和状态栏。
  • 自动更新在启动和返回时检查,显示下载进度,然后询问是否重启。
  • 一条命令安装一行 PowerShell 命令即可安装最新版本,无需管理员权限。

开发者工具

10 / SKL

Agent Skills

让编程智能体像工作室一样工作的技能。

平台
Claude CodeCodexCopilot
技术栈
MarkdownShellPowerShellHooks

一套给编程智能体的技能:像人一样写作、在需求说明中规划、完成工单、发起拉取请求并回应评审。还有技能能审查整个应用,或带着搜索、广告和 Google Play 让网站上线。

  • 平实写作去掉聊天、提交、文档和界面文案中 AI 腔调的规则。
  • 需求说明先行每个功能都从仓库中的需求说明开始,工作按它进行。
  • 从工单到合并读取工单,在独立的 worktree 中实现,发起 PR 并推进工单状态。
  • 拉取请求简短的 PR 描述配流程图,每个评审讨论一个提交。
  • 代码评审按检查清单评审,每个发现都对照代码核实。
  • 应用审查按不同角度并行评审,比如安全和性能。安全的问题会直接修复。
  • 架构与 monorepo分层的包、共享的 API 约定以及每个应用的 CI。
  • 上线一次完成搜索设置、AdMob 和 AdSense、Google Play 发布以及营销计划。
  • 应用内更新为商店外安装的应用提供自动更新,Play 版本中不包含。
  • 仓库维护Worktree、仓库迁移、历史重置和密钥轮换。
  • 名称与域名对照域名、企业登记和商标检查一个名称。
  • 语音播放每个文字转语音的声音,供人挑选。
11 / LCI

local-ci

一个脚本配置好开发机,并把它变成 CI 运行器。

平台
WindowsmacOS
技术栈
PowerShellShellGitHub Actionsmise

local-ci 为 Mac 或 Windows 电脑装上相同的开发工具,然后把它注册为自托管的 GitHub Actions 运行器。私有仓库的 CI 就在这台机器上免费构建。

  • Mac 配置一次装好 Homebrew 工具、mise、shell 和 git 配置。
  • Windows 配置通过 winget 安装同样的工具。再次运行会跳过已安装的部分。
  • 自托管运行器这台机器为组织的仓库构建 CI 任务。
  • 启动按钮双击即可启动最新版本的 CI。
  • CI 状态页一个本地页面,一眼看清运行器和任务。
12 / CI

ci

每个仓库共享的 GitHub Actions 步骤。

平台
GitHub Actions
技术栈
YAMLmisepnpmDependabot

在这里修一次,每个仓库下次运行时都会用上。

  • 安装步骤安装仓库在 mise 中固定的工具,再从锁文件安装依赖包。
  • Dependabot 详情为合并任务记录每个 Dependabot PR 的更新类型。
  • 自动合并每项检查通过后合并 Dependabot PR。大版本更新等人来处理。
13 / GIT

git-aliases

简短的 git 别名,任何机器都能用。

平台
WindowsmacOSLinux
技术栈
ShellPowerShellfzf

每个别名都是同一个仓库里的小脚本,所以同样的命令在每台机器上都能用。

  • git a列出每个别名及其作用。
  • git sb用模糊搜索选择分支并进入它的 worktree。
  • git db用模糊搜索选择要删除的分支。
  • 安全的安装脚本每次改动前都会询问,并备份它修改的每个文件。
  • Lint 钩子每次向仓库提交都会运行 lint。
14 / GRN

gh-review-notify

你的拉取请求每有一次评审,Mac 就弹出一条通知。

平台
macOS
技术栈
ShelllaunchdGitHub CLI

GitHub 通过邮件发送评审,批准可能要等上几个小时才被看到。这个工具每 3 分钟检查一次并弹出通知。点击即可打开评论。

  • 评审与评论你打开的 PR 上的每条评审和评论,3 分钟内送达。
  • 评审请求有人点名请你评审时发出通知。
  • 评论合并同一个 PR 上超过 4 条新评论会合并成 1 条通知。
  • 首次静默运行首次运行会记录最近 3 天的内容,但不显示其中任何一条。
  • 机器人过滤机器人的评论默认静音,除非你打开。
  • 状态与测试一个参数打印状态,另一个发送测试通知。
15 / ORR

Open in Remote Repo

一个在 GitHub、GitLab 或 Bitbucket 上打开文件的 VS Code 扩展。

平台
VS Code
技术栈
TypeScriptVS Code API

基于 Stanislav Sysoev 的 Open in GitHub 分叉而来。它可以打开或复制文件、blame 或历史的链接,并标出选中的行。

  • 文件、blame 和历史在远程主机上打开它们,并带上选中的行。
  • 复制链接同样的链接会复制到剪贴板,并弹出显示 URL 的提示。
  • 从资源管理器右键单击文件或文件夹即可打开或复制其链接。
  • 优先 main 或 master链接指向已经包含该文件的分支。
  • 主机与 URL 映射GitHub、GitHub 服务器、GitLab、Bitbucket 和 Bitbucket Server。

归档

16 / MWN

Memories for Windows

最初的 Memories:托盘应用加 NAS 上的同步服务。

平台
WindowsNAS
技术栈
.NETWPFDockerLiteDB

NAS 上 Docker 中的服务读取每张照片的日期,按天存入数据库。Windows 应用待在托盘里,打开当天拍的照片。后来被手机应用取代。

  • 托盘应用在托盘中待命。单击打开图库。
  • 每日提醒每天一次通知,提醒你看这一天的照片。
  • 按时段浏览图库选择一天或一段年份,照片会随滚动加载。
  • 照片窗口大图显示一张照片,按一个键切换上一张和下一张。
  • 详情与地图相机信息和地图上的位置。
  • 发送选中的照片一步发出。
03 / 流程

从第一份需求说明到应用商店

上面每个项目都走过同样的步骤。客户项目也一样,而且客户能看到每一步。

  1. 01

    需求说明

    每个功能都从仓库里的一份书面需求说明开始:它为用户做什么、使用流程和限制。你阅读并批准的是同一个文件。

  2. 02

    开发

    工作在独立分支上进行,有自己的数据库、端口和模拟器。每一步都是一个通过检查的提交。

  3. 03

    评审与交付

    一个附带用户流程图的拉取请求,然后跑 CI。检查全绿就合并,文档在同一个 PR 里更新。

  4. 04

    上线与运维

    商店发布、搜索设置和应用内更新。每次改动后,README、架构文档和功能文档都保持准确。

04 / 联系

有应用的想法?

写几句关于想法、平台和期限的话。

$ mail workbench.soft@gmail.com

写邮件
Esc