網站更新歷程
每天/每週的 micro-update。網站、SEO、自動化、踩坑——全部進這裡。
2026-05-28
workflow 圖書館 8 篇據實重寫(原本是 AI 唬爛的)+ build 系統加 code block 支援
填 workflow 圖書館真內容時 發現之前 AI 代寫的 spec 有一半是「合理地編」的 — bot 排程寫每天 8am 真實是 20:00、stack 寫 GitHub Actions 真實是 Claude Code 排程、IG bot 寫 Newsdata.io 真實是 RSS + 兩階 LLM。對照 8 個真實專案(github-trending-bot / ai-news-ig-bot / TRADERREPORT / line bot / market_scanner)逐篇重寫 每篇加一段可複製的真 code。順手把 build_workflow_article 升級:加 code block 區塊型別 + sop_intro 可 per-spec 覆蓋(蓋掉預設的「持續整理中」)。還抓到差點把別人的開源 skill 寫成自己 workflow 的雷 — 來源歸屬守死。完整的 E-E-A-T / 可引用性 / Topical Map 思考打包成 SEO 連載 #15-#17。
workflows eeat build-system content
2026-05-28
手機數據表溢出修掉 + family-line-bot 改分類「生活自動化」+ 全部推上線
三個工程細節:(1) Pillar B 數據表在窄螢幕被 overflow-x:clip 切掉右欄 加 table width:100% + 720px 媒體查詢的 word-break / 縮字 手機 375px 實測零溢出;(2) family-line-bot 本來掛在「內容生產 bot」但它是家庭行程提醒、不產內容 獨立成新分類「生活自動化」(配 nes-purple)workflow hub 自動長出新 cluster;(3) ga4 那篇還殘留的「免費版 / 付費版」字樣清掉 對齊全站全免費。今天累積的 commit 一次推上 Vercel 正式站。
rwd ia deploy
2026-05-28
SEO #14 上線 + about 頁 entity signals 改造:把感性故事補上給機器看的結構
被 AI 引用(#12 第一筆 ChatGPT referral)之後 把 about 丟給另一個 AI 從「知識圖譜」角度評一輪 它說「感性滿分 但給機器看的 entity 訊號幾乎是零」。所以做了 4 件:(1) ProfilePage schema 的 mainEntity 從 stub(只有 name + url 兩欄)改成 inline 完整 Person jobTitle + 13 個 knowsAbout + sameAs 全帶 AI 抓一次就拿到完整身分;(2) about 加「探索者檔案」結構化卡 用「目前專長領域 / 目前實戰工具」這種對齊 Google NLP 的詞 但加「目前」維持迭代感不裝專家;(3) 三個 hub 各加 FAQPage schema(什麼是 workflow / 什麼是 SEO / 什麼是 AI agent)共 12 個 Q&A 餵 AIO;(4) 整段打包寫成 SEO 連載 #14。踩到一個坑 第一版工具列塞了沒用過的 Make / Cursor 看起來專業 但 about 是讀者拿來驗證 Lab 真不真的頁 工具列跟 build log 對不上反而扣 E-E-A-T 信任分 全拿掉只留真用的。
seo geo schema eeat
2026-05-28
修兩個 reader 體驗 bug:每頁要 Ctrl+F5 + workflows 手機版型跑掉
兩個讀者體驗 bug:(1) 有快取的電腦每頁都要 Ctrl+F5 才看到更新 丟給 agent 查 root cause 是 Vercel 給靜態 HTML 一個固定的 Last-Modified(2018 那個日期)讓 must-revalidate 形同虛設。HTML 改成 no-store 完全不 cache 每次重抓 靜態資源(CSS/JS/圖)維持一年長 cache 因為它們有 ?v=hash 改檔自動換版;(2) workflows hub 手機版兩欄擠成 overflow 版型跑掉 原來手機單欄的 CSS 規則 list 漏了 page-workflows 這個 class(SEO / pitfalls 都在裡面就它沒有)補上 三個 hub 手機版終於一致。
cache rwd vercel bugfix
2026-05-27
Workflows 圖書館上線 8 個免費 workflow + 放棄 paywall 改 Ko-fi 隨喜
新開一個 /workflows/ 分類 收 8 個我自己每天 / 每週在跑的 AI workflow(Threads 自動發文 / IG 新聞 bot / Family LINE bot / 交易日誌 PWA / Market Scanner / GA4 referral 倒推 / Brand profile 鎖定 / Voice profile 萃取)。本來規劃一杯星巴克解鎖整個圖書館 但自己當讀者想了一下 我自己就討厭買工具還要付費 也討厭好東西鎖在付費牆後面那種焦慮營銷。所以 paywall 整個拿掉 全部免費 公開閱讀。想斗內的人文章底部放 Ko-fi 隨喜 不付完全沒差。這個決策跟 brand「不做高壓銷售」一致 順便解掉「這種網路一搜就有的 workflow 憑什麼收錢」的尷尬。
workflows pricing product
2026-05-27
拿掉進場動畫(讀檔 popup + 翻頁)+ 三個 hub 統一成書本感
(1) 進站跳出來的「Loading archives...」遊戲讀檔對話框 + 文章進場翻頁動畫 全站拿掉 看起來酷但每次進站都要等一下 對回訪的人是純干擾 順手把對應的 JS / CSS 一起清掉省 ~4KB;(2) 三個 hub 裡 Workflows 那個書本感最舒服(較淺的書桌底色 + 乾淨的右頁目錄)把 SEO 歷程 / 新手教學對齊過來 背景統一成淺米色 拿掉右頁每個分類下面那段囉嗦說明 三個 hub 視覺終於一致。SEO 歷程 hub 左頁順手補了個週報入口。
ux performance refactor
2026-05-27
Windows 安裝文章改造:標題瘦身 + 補滑鼠操作版 + 排到第一篇
新手教學的 Windows 安裝那篇調整:(1) 標題拿掉「非工程師全程截圖」 截圖不需要 標題也太長;(2) 內文「Win + X 選 PowerShell」這種鍵盤快捷鍵 補上滑鼠操作版(左下角開始鍵按右鍵 → 選 Windows PowerShell)真新手不一定知道有快捷鍵這種東西;(3) Node.js / claude.ai 加官方連結直接點;(4) 這篇排到新手教學第一位 環境裝不起來後面全都免談 它才是真正的起點。
content newbie accessibility
2026-05-07
SEO 升級 Phase 1:主題定位 + 文章 slug 改搜尋句 + 相關文章互連
依 SEO 顧問建議的 4 階段第一輪:(1) hero eyebrow 加上「AI 新手成長實驗室」當主題詞,H1 保留轉換語,新增小字「這個網站本身就是我用 AI 做的」當作 EEAT 證據;(2) 首頁 focus 從「兩主軸 + 一核心」改成「三個主題入口」,把新手踩坑卡放在第一張當主流量入口;(3) 文章 slug 改成搜尋句子:claude-code-first-website → claude-code-beginner-make-website、claude-code-local-ok-deploy-not-updated → claude-code-vercel-deploy-not-working,舊 URL 在 vercel.json 設 301 redirect,舊權重不丟;(4) build_pitfall_article 加 related 區塊,兩篇文章互相連結,建立 topic cluster 信號。Phase 2(資料夾改名)下一輪做。
seo structure content
2026-05-07
上 logo / favicon:搜尋結果與分頁終於有圖示
從 1024×1024 的 chibi 化學家 logo 自動產出整套 favicon:favicon.ico(含 16/32/48)放 repo 根目錄、PNG 16/32/48/180/192/512 全套放 /assets/,加上 site.webmanifest 給 Android Chrome 加入主畫面用。同時補上 og:image 1200×630(深色背景置中 logo)讓 LINE/IG/FB 分享連結時有預覽圖。Google SERP 抓得到 favicon 了,行動版搜尋結果旁邊那顆小圖示終於不是空白。
branding seo ux
2026-05-07
資安第三輪 + 文章管線抽 helper:移除 hero CTA、Origin 白名單、新手踩坑改資料驅動
三件事一次:(1) 確認移除 hero「預約免費諮詢」按鈕(使用者明確要求);(2) 新手踩坑文章改成資料驅動 — 抽 build_pitfall_article(spec) helper,兩篇既有文章變成 PITFALL_ARTICLES 列表的兩個 dict,新增第 3 篇只要 append 一個 dict,不再需要每篇 50+ 行的 hardcoded function。所有既有 data-edit key 一字不差保留,使用者已存的 override 仍可套用;(3) 加 origin_ok() 在 _helpers.py 並串到所有需 auth 的 PUT/POST 端點(overrides/log/content/subscribers/performance)。Origin allowlist 包含 coolkidlab.com 與 localhost 常見 port,可用 ALLOWED_ORIGINS env 擴充。沒有 Origin/Referer 的純 server-to-server 請求仍然只靠 token 驗證放行。順便修掉 api 多個 handler 殘留的 send_error,send_json tuple 寫法。
security refactor content-pipeline
2026-05-07
修復:把 hero 預約諮詢按鈕加回來,使用者已存的 LINE 連結重新套用
上次精簡 hero 把「預約免費諮詢」按鈕拿掉,但使用者之前已經把 home.cta1.href 改成自己的 LINE 連結,按鈕消失等於連結沒地方套。從 Supabase 撈出來確認 8 個 override 全部完整存在(包含 H1 黃字、lede 多行、社群連結、LINE 連結),唯一受影響的就是這顆按鈕。把它加回來之後使用者已存的 LINE override 自動繼續生效。順便修 api/overrides.py 重複 import send_error 的小髒亂。
bug-fix ux
2026-05-07
資安第二輪:API 重複收乾、socket 排空、Supabase 單次寫、後台 token TTL 縮短
六項中等修一次處理:(1) server.py 砍掉 _json/_auth_ok 兩個重複實作,全部改用 _helpers 的 send_json/auth_ok(自動拿到 timing-safe 比對);(2) read_body 遇到超過 2MB 的 body 會把 socket 內容讀完丟掉,避免後續 keep-alive 請求被污染;(3) supabase_write_overrides 已用 return=representation 比對過了,write_overrides 多做的二次讀拿掉,省一次 round trip 也避免並發誤判失敗;(4) edit-overlay EDIT_PAGES 改成從 DOM 的 nav 即時讀,build.py NAV 變更不用再同步第二份清單;(5) login.html remember-me 從 30 天降到 7 天,被偷的 token 有硬上限;(6) 5xx 錯誤新增 send_error 包裝,會把 traceback 印到 stderr,server log 看得到失敗原因。
security infra refactor
2026-05-07
資安一輪修:rate limit 種子、timing-safe 認證、HTML escape、href 白名單
三個 agent 並行 review 後,把 5 個 HIGH/CRITICAL 一次處理:(1) ThreadingHTTPServer 下 _RATE_LIMIT_MEMORY 加 threading.Lock,避免並發繞過;(2) page_shell 把 title/desc/canonical 用 html.escape 包起來,防止 Codex 之後寫文案不小心放入 <、>、" 或 & 注入 head;(3) _client_id 改用 X-Forwarded-For 最後一段而非第一段,Vercel 反代後真實 IP 在最後,原本可被偽造繞過 rate limit;(4) auth_ok 改 hmac.compare_digest,token 不再可用 timing 推;(5) edit-overlay isSafeHref 拒絕 ../、./、// 開頭,去掉相對路徑與 protocol-relative 開放重定向風險。preview 驗證:頁面正常、PUT 無 token / 錯 token 都 401、isSafeHref 新規則全部命中。
security infra
2026-05-06
首頁 hero 簡化 + 主題切換中文化
首頁「我是誰」下方拿掉「→ 預約免費諮詢」按鈕,hero 只留「看看陪跑內容」一顆主 CTA,避免雙 CTA 互搶。右上角主題切換的 LIGHT / DARK 改成「☀ 淺色 / ☾ 深色」,整站視覺語言全中文。site.js 加上 cache buster 強制更新。
ux copy i18n
2026-05-06
新手踩坑第二篇:Claude Code 本機正常但上線沒更新
新增第二篇新手踩坑文章,主軸是幫童裝店做手機庫存營收管理頁時遇到 local 正常、正式站沒更新、程式碼狀態混亂的問題。文章把情緒化卡點整理成 local / Git / GitHub / Vercel 四層檢查,SEO 鎖定 Claude Code 本機正常、Vercel 沒更新、部署沒變這類長尾搜尋。
newbie-pitfalls claude-code vercel content
2026-05-06
新手踩坑新增第一篇:第一次使用 Claude Code 做網站
把第一次使用 Claude Code 做投資心理測驗網站的踩坑整理成文章,放進新手踩坑板塊。主軸收斂到中文路徑、PowerShell 權限、AI 只規劃不執行、GitHub 與 Vercel 上線,標題與段落也朝 Claude Code 新手、AI 做網站、GitHub Vercel 這些長尾搜尋調整。
newbie-pitfalls claude-code content
2026-05-06
Nav 微調:陪跑服務的標籤縮回「陪跑服務」
上一輪把 nav 改成「一對一 AI Workflow 陪跑」太長,手機 nav 容易塞爆。縮回「陪跑服務」維持簡潔,服務頁 H1「AI Workflow 新手陪跑」保留具體性。
nav copy
2026-05-06
SEO 歷程精簡:移除 Topical Map,技術 SEO 提到 GSC 月報之前
SEO 歷程 hub 從 3 卡縮成 2 卡:技術 SEO 文章在前、GSC 月報在後。Topical Map 卡片與 /seo-journey/topical-map.html 一併移除,sitemap 同步更新。理由是先把已有實質內容的兩個區塊做穩,pillar + cluster 規劃留到後面有更多文章再啟動。
seo-journey structure
2026-05-06
重構導覽:新增「新手踩坑」、社群併入關於頁
導覽列改成:首頁 / 新手踩坑 / SEO 歷程 / 量化研究 / 網站更新歷程 / 一對一 AI Workflow 陪跑 / 關於。新增 /newbie-pitfalls/ hub,預備收錄非工程師摸 AI / Claude Code / 自動化的真實踩坑筆記,每篇結構固定為「卡點 → 我原本以為 → 怎麼查 → 怎麼解 → 下一步」。聯絡頁的 email 與社群區塊併進關於頁底部,contact.html 仍存活以保留現有 CTA 連結。
nav structure content
2026-05-06
修無痕視窗 FOUC:[data-edit] 套用前先隱藏
重整或無痕進站時會先閃一下舊文字再跳到新文字(FOUC)。原因是 edit-overlay.js 是 defer 載入,等它從 /api/overrides fetch 回 Supabase 套到 textContent 之間有 100-300ms。改成預設 visibility:hidden,套完後 body 加 .overrides-ready 才顯示;含 1 秒 timeout fallback,API 卡死也會顯示預設值。
ux performance
2026-05-06
GSC 新手教學改成 6 區塊文章:卡點、誤判、查法、解法、下一步
把 SEO Journey 的 GSC 教學頁放到技術 SEO 文章頁,並改成固定文章模板:卡點、我原本以為、怎麼查、怎麼解、下一步、Build Log 連結。文章更像公開學習紀錄,而不是百科式教學,也補上 SEO Journey 輕量免責聲明。
gsc seo-journey content
2026-05-06
重寫首頁定位:從「AI Workflow Lab」改成「陪你做出第一個能跑的 AI workflow」
首頁 hero、痛點區、offer 改寫,主軸從抽象的「實驗室」收斂成具體的「陪非工程師做出第一個能跑的 AI workflow」。CTA 主按鈕改成「預約免費諮詢」,新增痛點區與「你會完成」4 條 outcomes。SEO Journey hub 也改成「不是 SEO 大師課,是把網站做給 Google 看懂的紀錄」。
positioning copy service
2026-05-06
修好 inline-edit 儲存失敗:合併 server.py 與 _helpers.py 的 overrides 邏輯
後台 inline 編輯儲存後跳「儲存驗證失敗 storage=supabase missed=...」的根因找到了:正式站跑 server.py,但 server.py 自己有一份較弱的 Supabase 邏輯(anon key 讀 + return=minimal 寫、無驗證),跟 api/_helpers.py 已修好的版本漂移。砍掉 server.py 100+ 行重複程式碼,改 import _helpers,現在寫入用 service-role + return=representation + 嚴格比對,假成功不會再發生。
bug-fix infra supabase
2026-05-06
建立 Codex × Claude Code 協作機制:coordination/ 共用工作區
Codex 寫文案與內容,Claude Code 改程式與部署。雙方透過 repo 內 coordination/ 資料夾的 brief / handoff markdown 交接,禁區規則(金融法規、品牌語氣)固定在 constraints.md 與 voice.md,避免 Codex 文案漂移。今天首次跑通:Codex 出首頁定位 brief → Claude 改 build.py → 重 build → push。
workflow ai-collab
2026-05-03
從後台 admin 新增的測試
驗證 PUT /api/log 通過
admin verify
2026-05-03
網站上線 v0.1:含後台、績效儀表板、內容階梯
今天把後台 (admin) + 即時績效面板 + 三層內容階梯都接起來。POST /api/performance 可以讓自動交易系統直接 push 數字到首頁。Email 取得免費資源的機制也上了——終於開始建立『名單』而不是『流量曇花一現』。
milestone build
2026-05-03
重新定位:把交易降為背景,AI × 個人能力放大為主軸
原本的定位太靠近『交易老師』,內心也不相信。換成『AI × 個人能力放大實驗室』後整個輕鬆很多。交易系統變成『我在做的事之一』而不是『銷售招牌』——更安全、更長久、更能持續輸出。
positioning thinking
