獨立開發者 · 台中
五款 App 在 App Store 上。
另外十五個網站與服務,現在還在線上跑。
逢甲大學光電系大三,不是資工背景。以下是實際做完、而且交出去的東西——包含一個到了判準日就收掉的產品。
- 款 iOS App 已上架
- 5
- 個網站與服務線上運行
- 15
- 個資安缺陷修復(正式環境)
- 2
做過的東西
五款 App 發行於我自己的公司帳號 Gomiigo Games(法律實體為 Tuthome Co., Ltd.),從設計到上架都由我完成。網站與服務全部自架在一台 Linux 伺服器上。
已上架台灣安心圈
把約 10 個政府與新聞來源,變成只在事件真的靠近你在乎的人時才響的災害警報。
多數警報 App 的問題不是漏報,是狂響到使用者關掉通知。這支 App 把事件去重後做三級可信度評分,只有當事件落在你自訂的「生活圈」——家人與地點,含半徑與時段——才發出通知。住家地址以 AES-GCM 加密儲存,桌面小工具只讀取 App Group 快照,不碰位置資料。
- 天完成並送審
- 19
- 行 Swift
- 20,867
- 個資料來源
- ~10
- Swift
- SwiftUI
- SwiftData
- MapKit
- WidgetKit
- Firebase
- APNs
已上架格日子
把今天排成一盤九宮格,做完一件點亮一格。八天從零到送審。
自製 UI 元件系統,沒有用系統的 List 與 TabView;七個語系共 871 句文案不靠人工搬運,由三支腳本自動組裝;商店頁的文案、審查資訊與 84 張各語言截圖全部透過 App Store Connect API 自動上傳。
- Swift
- SwiftUI
- SwiftData
- XCUITest
- App Store Connect API
線上運行玩趣盒 WanQu
自己做的免費小遊戲平台,上面的遊戲也是自己做的。
平台本身是 Next.js,但真正花時間的是上面那些遊戲:四種不同的技術路線——Godot、Phaser 3、React、原生 Canvas——因為我想知道同一種玩法在不同引擎裡分別要付出什麼代價。其中一款是從 Godot 整個移植到 Phaser 的,移植過程後來寫成一份可重複使用的流程。
- Next.js 14
- Prisma
- Godot
- Phaser 3
- TypeScript
- Canvas
進行中線上教育平台稽核與修復
進到一個營運中的 Next.js + Supabase 平台,找出並修掉兩個資安缺陷。
不是從零開發,是進到別人寫好、而且已經有真實使用者的程式碼裡。兩個缺陷分別是多角色權限模型中的權限提升路徑,以及跨租戶的資料曝露。所有改動以 pull request 形式交付,資料庫受 row-level security 政策管轄。客戶名稱與網址依約不公開。
- 個資安缺陷修復
- 2
- 個 commit 交付
- 54
- 個資料庫 migration
- 44
- TypeScript
- Next.js
- React
- Supabase
- PostgreSQL
- RLS
進行中個人開發制度
一套自己寫的工作規則:怎麼分派任務、怎麼驗收、以及踩過的坑怎麼變成規則。
核心規則只有一條:產出的人不驗收自己的產出。工作完成後,我開一個對過程毫無記憶的新對話,它只能回答三種答案——通過、失敗(附證據)、無法驗證。另外附一份橫跨十個月、34 條的踩坑紀錄,每一條都寫成日後可套用的規則。
- 個可重用流程
- 126
- 條事故紀錄
- 34
- 的成本集中在主對話(170 場實測)
- 88%
- Claude Code
- Markdown
- Shell
- Node.js
- Python
已交付Move On Australia
澳洲搬家公司的 CRM,我在上面加裝了 AI 排班、郵件解析訂單、路線優化三組自動化。
客戶原本就有一套 Base44 低代碼 CRM,我的工作是讓它自己動起來:AI 排班依人力與地點安排工班,郵件解析把客戶來信抽成結構化訂單,路線優化決定當天怎麼跑最省。AI 呼叫走 serverless function,模型在程式碼裡直接指定。專案已交付結案,三期款項全數收訖。
- 行程式碼
- 30,005
- 個自動化函式
- 32
- 個資料實體
- 15
- Base44
- Serverless Functions
- Claude API
其他已上架的 App

CamMenu
已上架拍下看不懂的菜單,翻譯成可以直接指給店員看的點餐句。

Fooda
已上架拍一張食物照片,換算成當天的營養攝取。

DueBox
已上架拍下帳單,自動抓出金額與到期日。
線上服務與網站
以下都還在線上跑,可以直接點開。標示「需登入」的是有帳號系統的服務,看得到登入頁但進不去內容。

Idea Manager
線上運行把想法畫在畫布上,讓 AI 沿著節點之間的關係往下展開。

一人商行
已結束給微型店家的接單系統。私訊了八家店,判準日結算:零成交,收掉了。
想法是「一家店一份設定檔」,做一個能快速換皮給不同店家用的接單頁。我事先寫死了判定規則與退場條款,時間到就結算。結果是三個條件全部沒過。站還留著,因為它比任何一個成功案例都更能說明我怎麼做決定:先訂好什麼叫失敗,然後認帳。

智簡 Zhi Jian
線上運行我自己的接案工作室官網,主打「工具不用換,流程自己跑」。

手帳 ChatCal
線上運行用聊天的方式記行事曆,不用填表單。

Threads Filter
線上運行幫 Threads 貼文做分類與過濾,只留下自己想看的。

生存錢包
線上運行記帳工具,資料留在自己的瀏覽器裡,不上傳任何伺服器。

MathBox
線上運行數學工具箱,把常用的計算與圖形放在同一個地方。
Mentora
需登入AI 學習夥伴,一次提問會串起五到六輪的分析再回答。
- Next.js 16
- Clerk
- Supabase
- gRPC
AgentHub
需登入個人 AI 助手平台,回應以串流方式即時吐出來。
SocialAgents
線上運行把 AI 助手接到 LINE 與 Telegram,一個工作區可以管多個角色與聯絡人。
- Next.js 16
- Drizzle
- PostgreSQL 18
- LINE
- Telegram
作業解題助手
線上運行拍照或輸入題目,一步一步講解怎麼解;AI 服務有六層備援。
KeyStorage
線上運行在瀏覽器裡加密保存金鑰,用的是瀏覽器內建的 Web Crypto。
工作日誌
線上運行每天做了什麼,寫一行就好,跑在家裡的 NAS 上。
開發者工具與後端
為了解決自己的問題而寫的東西,多數沒有對外開放的介面。
DingDong
進行中全部專案裡最早開始的一個:LINE 機器人加上一整套後端,排程、任務佇列、資料模型都自己搭。
這是我第一個真正意義上的後端專案:LINE 機器人在前面接使用者,後面是 FastAPI 撐起 44 個 API 端點與 18 個資料模型,Celery 跑排程與非同步任務,MySQL 存資料、Redis 做快取,整套用 Docker 跑在自己架的 Gitea 旁邊。它沒有用到任何 AI——那時候我還沒開始碰。
- 12,618 行 Python
- 44 個 API 端點
- 18 個資料模型
- Python
- FastAPI
- Celery
- MySQL
- Redis
- Docker
- LINE API
接案篩選系統
需登入為了解決自己找案子的問題而寫:自動抓取職缺、分層 AI 篩選、追蹤投遞狀態。
- 195 個 commit
- 82 個 API 端點
- 11 張資料表
- Node.js
- SQLite
- Playwright
- nginx
- systemd
SkillsHub
原型用 Model Context Protocol 寫的伺服器,讓 AI 直接讀我自己的技能庫。
Model Context Protocol 是讓 AI 直接讀取外部資料的協定。我用 Next.js 寫了一個 MCP 伺服器,讓 AI 可以直接查我自己的技能庫,不必我把內容一段段貼進對話。資料層是 Drizzle 加 SQLite,另外接 GitHub API 抓 repo 資訊。
- Next.js 15
- Drizzle
- SQLite
- MCP SDK
- Docker
FocusMask
原型Chrome 擴充功能,把網頁上會讓自己分心的區塊遮起來。
Chrome 擴充功能,Manifest V3。作用很單純:把網頁上我自己會忍不住去看的區塊蓋掉——側邊的推薦、下方的相關影片、社群的動態牆。規則存在瀏覽器本機,不需要帳號,也不上傳任何東西。
尚未公開
FirstFrame
測試中用 Vision 框架做的拍照輔助 App,八個語系,目前在 TestFlight。
用 Apple 的 Vision 框架做即時畫面分析,搭配 AVFoundation 控制相機,在按下快門之前就先指出構圖的問題。八個語系、114 個 commit,目前在 TestFlight 上測試,還沒送 App Store 審查。
- 10,955 行 Swift
- 114 個 commit
- 8 種語言
- Swift
- SwiftUI
- Vision
- AVFoundation
- fastlane
Bloopz
已送審三天從企劃到送審的小遊戲 App。
重點不是它多複雜,而是我想知道把一個想法推到送審需要多少時間。答案是三天——含美術、IAP 設定與商店素材。
ERP 原型
原型進銷存管理的原型,全部專案裡唯一用 Vue 寫的。
進銷存管理的原型:九張資料表撐起商品、庫存、進貨、出貨與客戶。這是我所有專案裡唯一用 Vue 寫的,刻意選它是為了知道 Vue 跟 React 在實際專案裡差在哪。
我怎麼工作
產出的人不驗收自己的產出
多數人把 AI 當答案機器:問完、接受、繼續。真正改變我產出品質的習慣,是把「產出」跟「檢查」分開。工作完成後我從不讓同一個對話評判它——剛寫完東西的人會替自己辯護,沒看過的人不會。
先量測,再相信自己的假設
我曾經確信「把工作分給多個 AI 代理」是我開銷的元凶,所以什麼都塞在同一個對話裡。後來我實際去量了 170 場工作階段,發現主對話佔了約 88% 的成本,所有分派出去的工作加起來只佔 12%。我把因果關係搞反了。真正讓我記住的不是那個數字,而是我抱著一個沒查證過的定見好幾個月,而查證它只花了一個小時。
判斷留給自己
我的工作大量倚賴 AI,這點我不遮掩。但分工是清楚的:它處理量,判斷留給我自己。要做什麼、什麼叫做完、哪裡不能妥協——這些不外包。
關於
我是華柏翰,逢甲大學光電科學與工程學系大三學生,預計 2028 年春天畢業。
我沒有資工背景,是靠著把想要存在的東西做出來,學會寫軟體的。我相信很多不在資工系的學生也能做出真東西——坐在我隔壁那個光電實驗室的同學也可以,只是從來沒有人告訴過他們。