{
  "source": "https://github.com/smallgreen-cloud/registry",
  "spec": "https://github.com/smallgreen-cloud/spec",
  "languages": [
    "en",
    "zh-Hant-TW"
  ],
  "positioning": {
    "en": {
      "definition": "SmallGreen is a service directory and standard for turning open-source small projects into services you can deploy, control and run yourself.",
      "audience": "People who want to turn an open-source small project into a service they can run themselves.",
      "problem": "A repository can be useful without being understandable, deployable or maintainable as a service.",
      "promise": "See what a project does, who it is for, what it needs, what has been checked and how to leave before you run it."
    },
    "zh-Hant-TW": {
      "definition": "SmallGreen 是一套把開源小型專案整理成可自己部署、自己掌握、自己運行的服務目錄與標準。",
      "audience": "想把開源小型專案變成自己能運行的服務的人",
      "problem": "一個 Repo 可以被下載，不代表它已經容易看懂、部署、維護與退出。",
      "promise": "在開始運行前，先看懂專案要解決什麼、適合誰、需要什麼、檢查過什麼，以及如何離開。"
    }
  },
  "cards": [
    {
      "id": "business-card-mcp",
      "name": "Business Card MCP",
      "one_liner": "把 AI 辨識的名片整理成自己帳號裡可搜尋、可控的私人聯絡人庫",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架 AI 聯絡人與名片管理 MCP",
          "en": "A self-hosted AI contact and business-card MCP"
        },
        "problem": {
          "zh-tw": "名片資料散落在相簿、聊天與紙本，整理後仍難以在日常工作中快速查找與更新",
          "en": "Business-card data is scattered across photos, chats and paper, and remains hard to find or update after manual entry"
        },
        "audience": {
          "zh-tw": [
            "想把開源小型專案變成自己能運行服務的人",
            "需要整理私人聯絡資料的顧問、業務與自由工作者"
          ],
          "en": [
            "People who want to turn an open-source small project into a service they can run",
            "Consultants, sales professionals and freelancers who need a private contact library"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "在 ChatGPT／Claude 中辨識並確認名片",
            "把資料與 480px WebP 縮圖保存到自己的 D1／R2",
            "提供私人搜尋、詳情、編輯、封存與 MCP 存取"
          ],
          "en": [
            "Identify and confirm cards in ChatGPT or Claude",
            "Store contact data and 480px WebP thumbnails in your own D1/R2",
            "Provide private search, details, editing, archiving and MCP access"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要自己的 Cloudflare Workers、D1、R2 與 KV",
            "網頁管理需要 Gmail allowlist、Turnstile 與 Email Service binding；MCP 仍以可撤銷 key 連線"
          ],
          "en": [
            "Your own Cloudflare Workers, D1, R2 and KV",
            "Web management needs a Gmail allowlist, Turnstile and an Email Service binding; MCP connections still use revocable keys"
          ]
        },
        "limitations": {
          "zh-tw": [
            "目前是單人私人聯絡人庫，不是多人 CRM 或銷售自動化平台",
            "原始名片圖片不保存；縮圖必須由 ChatGPT／Claude 在寫入前產生，Worker 不做線上圖片轉換"
          ],
          "en": [
            "It is a single-owner private contact library, not a multi-user CRM or sales-automation platform",
            "Original card images are not stored; ChatGPT or Claude must create the thumbnail before writing, and the Worker performs no online image transformation"
          ]
        }
      },
      "categories": [
        "sharing"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "ai-cooperation/business-card-mcp",
        "license": "Apache-2.0"
      },
      "components": {
        "cloudflare": [
          "workers",
          "d1",
          "r2",
          "kv",
          "email-service"
        ]
      },
      "login_method": "email-otp",
      "data_flow": {
        "external_services": [
          "challenges.cloudflare.com"
        ],
        "disclosure": "網頁管理使用 allowlist 內的 Gmail OTP；OTP challenge 與 session digest 存在自己的 D1。ChatGPT／Claude 在呼叫 create_contact 前產生 480px WebP 縮圖；Worker 不呼叫 Images API、不保存原始名片圖片，只驗證並把 WebP 存入 R2。MCP 連線仍使用可撤銷的 bc_ key。"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.2.1",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/business-card-mcp/2026-08-03-sandbox-01.json",
          "evidence/business-card-mcp/2026-08-03-sandbox-02.json",
          "evidence/business-card-mcp/2026-08-03-sandbox-03.json",
          "evidence/business-card-mcp/2026-08-03-sandbox-04.json"
        ],
        "compatible_agents": [
          {
            "agent": "claude-code",
            "model": "claude-opus-5",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "C",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "active",
      "images": {
        "screenshot": {
          "path": "evidence/business-card-mcp/artifacts/2026-08-03-home.png",
          "evidence_pack_ref": "evidence/business-card-mcp/2026-08-03-sandbox-04.json"
        }
      },
      "url": "https://smallgreen-site.pages.dev/services/business-card-mcp/",
      "translations": {
        "en": {
          "one_liner": "A self-hosted private contact library that turns AI-identified business cards into searchable records in your own account",
          "data_flow": "Gmail OTP protects the web UI; contact data and model-generated 480px WebP thumbnails stay in the deployer's D1/R2 while MCP authorization stays in KV; no online image transformation is used"
        },
        "zh-Hant-TW": {
          "one_liner": "把 AI 辨識的名片整理成自己帳號裡可搜尋、可控的私人聯絡人庫",
          "data_flow": "網頁管理使用 allowlist 內的 Gmail OTP；OTP challenge 與 session digest 存在自己的 D1。ChatGPT／Claude 在呼叫 create_contact 前產生 480px WebP 縮圖；Worker 不呼叫 Images API、不保存原始名片圖片，只驗證並把 WebP 存入 R2。MCP 連線仍使用可撤銷的 bc_ key。"
        }
      }
    },
    {
      "id": "cloudflare-imgbed",
      "name": "CloudFlare-ImgBed",
      "one_liner": "圖床檔案管理站（External 外鏈降級收錄版，KV 中繼資料）",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架圖片與檔案管理入口",
          "en": "A self-hosted image and file management entry point"
        },
        "problem": {
          "zh-tw": "網站圖片與檔案管理依賴外部圖床，連結與中繼資料不在自己的帳號",
          "en": "Website images and files depend on a hosted image service, leaving links and metadata outside the deployer's account"
        },
        "audience": {
          "zh-tw": [
            "小型網站與內容團隊",
            "需要簡單圖床管理的創作者"
          ],
          "en": [
            "Small websites and content teams",
            "Creators who need a simple image-management tool"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "管理圖片中繼資料與分享連結",
            "在自己的 KV 保存管理資料",
            "以降級模式配合外部圖片網址"
          ],
          "en": [
            "Manage image metadata and sharing links",
            "Store management metadata in your own KV",
            "Operate in a fallback mode using external image URLs"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要 Cloudflare Worker 與 KV",
            "部署者要確認外部圖片來源與連結可用性"
          ],
          "en": [
            "A Cloudflare Worker and KV",
            "The deployer reviews external image origins and link availability"
          ]
        },
        "limitations": {
          "zh-tw": [
            "目前卡片是外鏈降級模式，不等於私有二進位儲存",
            "外部圖片來源失效時，服務無法保證內容可用"
          ],
          "en": [
            "The catalogue card describes an external-link fallback, not private binary storage",
            "Content availability depends on external image origins"
          ]
        }
      },
      "categories": [
        "sharing"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "MarSeventh/CloudFlare-ImgBed",
        "adapter": "smallgreen-cloud/adapter-cloudflare-imgbed",
        "license": "MIT"
      },
      "components": {
        "cloudflare": [
          "workers",
          "kv"
        ]
      },
      "login_method": "token",
      "data_flow": {
        "external_services": [
          "(user-directed)",
          "cn.bing.com",
          "o4507644548022272.ingest.us.sentry.io",
          "frozen-sentinel.pages.dev",
          "(user-configured)"
        ],
        "disclosure": "本 adapter 為 External-only 降級版——沙盒實測（B run E51）儲存後端矩陣全滅：R2 未啟用、TG/S3/Discord/HF/WebDAV 皆需外部憑證。降級語義：上傳實體檔不可用（未配置渠道時明確失敗），僅「登記外部圖片 URL」（External 外鏈渠道，functions/upload/index.…"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.2.1",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/cloudflare-imgbed/2026-08-02-sandbox-01.json",
          "evidence/cloudflare-imgbed/2026-08-03-shots-01.json"
        ],
        "compatible_agents": [
          {
            "agent": "claude-code",
            "model": "claude-fable-5",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "C",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "active",
      "images": {
        "screenshot": {
          "path": "evidence/cloudflare-imgbed/artifacts/2026-08-03-admin.png",
          "evidence_pack_ref": "evidence/cloudflare-imgbed/2026-08-03-shots-01.json"
        }
      },
      "quota_note": "執行：claude-code deployer 批次（第 9 案 microfeed 因模型額度用盡中止，另案補收）；teardown 後沙盒五類歸零實查",
      "url": "https://smallgreen-site.pages.dev/services/cloudflare-imgbed/",
      "translations": {
        "en": {
          "one_liner": "An image and file manager in its external-link fallback profile with KV metadata",
          "data_flow": "This verified fallback profile registers external image URLs and manages metadata in KV because no binary storage channel is configured"
        },
        "zh-Hant-TW": {
          "one_liner": "圖床檔案管理站（External 外鏈降級收錄版，KV 中繼資料）",
          "data_flow": "本 adapter 為 External-only 降級版——沙盒實測（B run E51）儲存後端矩陣全滅：R2 未啟用、TG/S3/Discord/HF/WebDAV 皆需外部憑證。降級語義：上傳實體檔不可用（未配置渠道時明確失敗），僅「登記外部圖片 URL」（External 外鏈渠道，functions/upload/index.…"
        }
      }
    },
    {
      "id": "counterscale",
      "name": "Counterscale",
      "one_liner": "自己帳號裡的網站流量分析（GA 替代）",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架網站流量分析服務",
          "en": "A self-hosted website analytics service"
        },
        "problem": {
          "zh-tw": "網站需要基本流量洞察，但不想把分析資料交給外部 SaaS",
          "en": "A website needs basic traffic insight without handing its analytics data to a hosted SaaS"
        },
        "audience": {
          "zh-tw": [
            "公司官網與內容網站",
            "重視資料掌控的小型團隊"
          ],
          "en": [
            "Company and content websites",
            "Small teams that want control of analytics data"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "收集網站使用統計",
            "在自己的 Analytics Engine 查詢分析",
            "以低維運方式提供分析儀表板"
          ],
          "en": [
            "Collect website usage metrics",
            "Query analytics in your own Analytics Engine",
            "Operate a lightweight analytics dashboard"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要 Cloudflare Workers 與 Analytics Engine",
            "需要在網站加入分析程式碼或事件入口"
          ],
          "en": [
            "Cloudflare Workers and Analytics Engine",
            "A site integration or event endpoint is required"
          ]
        },
        "limitations": {
          "zh-tw": [
            "不等同完整的使用者行為重播或行銷自動化平台",
            "分析保存與查詢能力受平台政策限制"
          ],
          "en": [
            "It is not a full session-replay or marketing-automation platform",
            "Retention and query capability follow platform policies"
          ]
        }
      },
      "categories": [
        "analytics"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "benvinegar/counterscale",
        "adapter": "smallgreen-cloud/adapter-counterscale",
        "license": "MIT"
      },
      "components": {
        "cloudflare": [
          "workers",
          "analytics-engine"
        ]
      },
      "login_method": "token",
      "data_flow": {
        "external_services": [
          "api.cloudflare.com"
        ],
        "disclosure": "分析事件寫入 Analytics Engine（90 天保留）；v0.2 起 stored_in 直接標 analytics_engine（issue"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.2.1",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/counterscale/2026-07-30-sandbox-01.json",
          "evidence/counterscale/2026-07-30-sandbox-02.json",
          "evidence/counterscale/2026-08-03-sandbox-03.json",
          "evidence/counterscale/2026-08-03-shots-01.json"
        ],
        "compatible_agents": [
          {
            "agent": "claude-code",
            "model": "claude-fable-5",
            "result": "autonomous"
          },
          {
            "agent": "codex",
            "model": "gpt-5.6-sol(effort=low)",
            "result": "autonomous"
          },
          {
            "agent": "opencode",
            "model": "big-pickle",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "C",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "slowing",
      "images": {
        "screenshot": {
          "path": "evidence/counterscale/artifacts/2026-08-03-dashboard.png",
          "evidence_pack_ref": "evidence/counterscale/2026-08-03-shots-01.json"
        }
      },
      "url": "https://smallgreen-site.pages.dev/services/counterscale/",
      "translations": {
        "en": {
          "one_liner": "Website analytics in your own account as an alternative to hosted analytics",
          "data_flow": "Analytics events are written to Analytics Engine under its configured retention policy"
        },
        "zh-Hant-TW": {
          "one_liner": "自己帳號裡的網站流量分析（GA 替代）",
          "data_flow": "分析事件寫入 Analytics Engine（90 天保留）；v0.2 起 stored_in 直接標 analytics_engine（issue"
        }
      }
    },
    {
      "id": "hananalytics",
      "name": "HanAnalytics",
      "one_liner": "輕量網站流量分析儀表板（Pages Functions＋AE）",
      "product_summary": {
        "project_type": {
          "zh-tw": "輕量自架網站分析儀表板",
          "en": "A lightweight self-hosted website analytics dashboard"
        },
        "problem": {
          "zh-tw": "中小企業需要看懂網站流量，但不想導入複雜或過度追蹤的分析平台",
          "en": "Small businesses need understandable website metrics without adopting a complex or overly tracking-heavy analytics platform"
        },
        "audience": {
          "zh-tw": [
            "中文網站經營者",
            "需要基本流量報表的中小企業"
          ],
          "en": [
            "Chinese-language website operators",
            "Small businesses that need basic traffic reports"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "收集頁面與地區等基本事件",
            "用 Analytics Engine 查詢資料",
            "提供輕量儀表板與可選密碼保護"
          ],
          "en": [
            "Collect basic page and geography events",
            "Query data through Analytics Engine",
            "Provide a lightweight dashboard with optional password protection"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要 Pages Functions 與 Analytics Engine",
            "要自行決定儀表板是否需要密碼保護"
          ],
          "en": [
            "Pages Functions and Analytics Engine",
            "The deployer must choose whether dashboard protection is required"
          ]
        },
        "limitations": {
          "zh-tw": [
            "不是完整的產品分析或使用者行為重播平台",
            "未設定保護時，儀表板與回報入口可能是公開的"
          ],
          "en": [
            "It is not a full product-analytics or session-replay platform",
            "Without protection, the dashboard and collection endpoint may be public"
          ]
        }
      },
      "categories": [
        "analytics"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "uxiaohan/HanAnalytics",
        "adapter": "smallgreen-cloud/adapter-hananalytics",
        "license": "MIT"
      },
      "components": {
        "cloudflare": [
          "pages",
          "analytics-engine"
        ]
      },
      "login_method": "token",
      "data_flow": {
        "external_services": [
          "api.cloudflare.com"
        ],
        "disclosure": "訪客事件（站點、路徑、UA、國別）寫入 Analytics Engine dataset「AnalyticsDataset」（90 天保留）。儀表板密碼（CLOUDFLARE_WEBSITE_PWD）選配——不設則儀表板任何人可查"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.2.1",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/hananalytics/2026-08-02-sandbox-01.json",
          "evidence/hananalytics/2026-08-03-sandbox-02.json",
          "evidence/hananalytics/2026-08-03-shots-01.json"
        ],
        "compatible_agents": [
          {
            "agent": "claude-code",
            "model": "claude-fable-5",
            "result": "autonomous"
          },
          {
            "agent": "codex",
            "model": "gpt-5.6-sol(effort=low)",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "C",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "stalled",
      "images": {
        "screenshot": {
          "path": "evidence/hananalytics/artifacts/2026-08-03-dashboard.png",
          "evidence_pack_ref": "evidence/hananalytics/2026-08-03-shots-01.json"
        }
      },
      "url": "https://smallgreen-site.pages.dev/services/hananalytics/",
      "translations": {
        "en": {
          "one_liner": "A lightweight website analytics dashboard using Pages Functions and Analytics Engine",
          "data_flow": "Site path browser and country events are written to Analytics Engine while dashboard password protection remains optional"
        },
        "zh-Hant-TW": {
          "one_liner": "輕量網站流量分析儀表板（Pages Functions＋AE）",
          "data_flow": "訪客事件（站點、路徑、UA、國別）寫入 Analytics Engine dataset「AnalyticsDataset」（90 天保留）。儀表板密碼（CLOUDFLARE_WEBSITE_PWD）選配——不設則儀表板任何人可查"
        }
      }
    },
    {
      "id": "microfeed",
      "name": "microfeed",
      "one_liner": "輕量 feed/CMS（JSON/RSS feed＋admin 後台；無 R2 文字模式收錄版）",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架輕量內容發布與 RSS 平台",
          "en": "A self-hosted lightweight publishing and RSS platform"
        },
        "problem": {
          "zh-tw": "小型組織需要自己的內容與 feed 入口，不想維護大型 CMS",
          "en": "A small organization needs its own content and feed entry point without maintaining a large CMS"
        },
        "audience": {
          "zh-tw": [
            "個人品牌、協會與小型團隊",
            "需要文字發布與 RSS 的網站"
          ],
          "en": [
            "Personal brands, associations and small teams",
            "Websites that need text publishing and RSS"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "管理文字內容與管理後台",
            "輸出 JSON 與 RSS feed",
            "將內容與管理資料保存於自己的 D1"
          ],
          "en": [
            "Manage text content through an admin interface",
            "Publish JSON and RSS feeds",
            "Keep content and administration data in your own D1"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要 Cloudflare Workers 與 D1",
            "目前收錄設定是不使用 R2 的文字模式"
          ],
          "en": [
            "Cloudflare Workers and D1",
            "The catalogue profile uses the no-R2 text-only mode"
          ]
        },
        "limitations": {
          "zh-tw": [
            "目前文字模式停用媒體上傳",
            "不是高流量新聞或企業內容管理平台"
          ],
          "en": [
            "Media upload is disabled in the text-only profile",
            "It is not a high-traffic news or enterprise content-management platform"
          ]
        }
      },
      "categories": [
        "publishing"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "microfeed/microfeed",
        "adapter": "smallgreen-cloud/adapter-microfeed",
        "license": "AGPL-3.0"
      },
      "components": {
        "cloudflare": [
          "workers",
          "d1"
        ]
      },
      "login_method": "other",
      "data_flow": {
        "external_services": [],
        "disclosure": "內容（items、channel 設定）與 admin 帳號存 D1（珍貴資料）。login_method=other 說明——admin 後台走上游內建 better-auth email＋密碼（存 D1 auth_user 表，migrations/0002_better_auth.sql）；…"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.2.1",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/microfeed/2026-08-02-sandbox-01.json",
          "evidence/microfeed/2026-08-03-shots-01.json"
        ],
        "compatible_agents": [
          {
            "agent": "claude-code",
            "model": "claude-fable-5",
            "result": "autonomous"
          },
          {
            "agent": "claude-code",
            "model": "claude-opus-5",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "C",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "active",
      "images": {
        "screenshot": {
          "path": "evidence/microfeed/artifacts/2026-08-03-home.png",
          "evidence_pack_ref": "evidence/microfeed/2026-08-03-shots-01.json"
        }
      },
      "url": "https://smallgreen-site.pages.dev/services/microfeed/",
      "translations": {
        "en": {
          "one_liner": "A lightweight feed and CMS in its text-only profile without R2",
          "data_flow": "Feed content channel settings and administrator authentication records are stored in D1"
        },
        "zh-Hant-TW": {
          "one_liner": "輕量 feed/CMS（JSON/RSS feed＋admin 後台；無 R2 文字模式收錄版）",
          "data_flow": "內容（items、channel 設定）與 admin 帳號存 D1（珍貴資料）。login_method=other 說明——admin 後台走上游內建 better-auth email＋密碼（存 D1 auth_user 表，migrations/0002_better_auth.sql）；…"
        }
      }
    },
    {
      "id": "newsnow",
      "name": "NewsNow",
      "one_liner": "40+ 來源新聞熱榜聚合站，快取存自己的 D1",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架新聞來源聚合與排行網站",
          "en": "A self-hosted news-source aggregator and ranking site"
        },
        "problem": {
          "zh-tw": "團隊需要持續掌握多個來源，卻沒有簡單且可自有部署的閱讀入口",
          "en": "A team needs to follow many sources but lacks a simple reading entry point it can deploy and control"
        },
        "audience": {
          "zh-tw": [
            "需要產業情報的小型企業",
            "研究、內容與社群團隊"
          ],
          "en": [
            "Small businesses tracking industry news",
            "Research, content and community teams"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "聚合多個新聞來源",
            "把可重建的來源快取存入自己的 D1",
            "依來源與排行提供閱讀入口"
          ],
          "en": [
            "Aggregate multiple news sources",
            "Cache rebuildable source data in your own D1",
            "Provide a source and ranking view for reading"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要 Cloudflare Pages 與 D1",
            "需要自行維護來源清單與來源可用性"
          ],
          "en": [
            "Cloudflare Pages and D1",
            "The deployer maintains the source list and accepts source availability risk"
          ]
        },
        "limitations": {
          "zh-tw": [
            "只保存來源快取，不擁有第三方新聞內容",
            "更新速度受來源 RSS 與排程影響"
          ],
          "en": [
            "It caches source data but does not own third-party news content",
            "Freshness depends on source feeds and schedules"
          ]
        }
      },
      "categories": [
        "publishing"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "ourongxing/newsnow",
        "adapter": "smallgreen-cloud/adapter-newsnow",
        "license": "MIT"
      },
      "components": {
        "cloudflare": [
          "pages",
          "d1"
        ]
      },
      "login_method": "none",
      "data_flow": {
        "external_services": [
          "40+ 新聞來源站點（完整清單見上游 server/sources/，如 news.ycombinator.com、github.com、v2ex.com、zhihu.com 等）",
          "github.com"
        ],
        "disclosure": "D1 僅存來源快取（可重建，非珍貴資料）與啟用登入時的使用者偏好同步。預設部署不啟用登入（上游 auth middleware 對缺 OAuth secrets 有防呆——登入功能自動停用，聚合 API 照常服務），啟用時 login_method 轉 github-oauth"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.2.1",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/newsnow/2026-08-02-sandbox-01.json",
          "evidence/newsnow/2026-08-03-sandbox-02.json",
          "evidence/newsnow/2026-08-03-shots-01.json"
        ],
        "compatible_agents": [
          {
            "agent": "claude-code",
            "model": "claude-fable-5",
            "result": "autonomous"
          },
          {
            "agent": "opencode",
            "model": "big-pickle",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "A",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "active",
      "images": {
        "screenshot": {
          "path": "evidence/newsnow/artifacts/2026-08-03-home.png",
          "evidence_pack_ref": "evidence/newsnow/2026-08-03-shots-01.json"
        }
      },
      "url": "https://smallgreen-site.pages.dev/services/newsnow/",
      "translations": {
        "en": {
          "one_liner": "A news ranking aggregator for more than 40 sources cached in your own D1",
          "data_flow": "D1 stores rebuildable source cache and optional signed-in preferences while the default deployment keeps login disabled"
        },
        "zh-Hant-TW": {
          "one_liner": "40+ 來源新聞熱榜聚合站，快取存自己的 D1",
          "data_flow": "D1 僅存來源快取（可重建，非珍貴資料）與啟用登入時的使用者偏好同步。預設部署不啟用登入（上游 auth middleware 對缺 OAuth secrets 有防呆——登入功能自動停用，聚合 API 照常服務），啟用時 login_method 轉 github-oauth"
        }
      }
    },
    {
      "id": "pastebin-worker",
      "name": "Pastebin Worker",
      "one_liner": "curl 友善的自架 pastebin／短網址／檔案分享",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架文字貼上、短網址與分享服務",
          "en": "A self-hosted paste, short-link and sharing service"
        },
        "problem": {
          "zh-tw": "開發與營運團隊需要暫時分享文字或連結，不想使用不可控的第三方貼上服務",
          "en": "Development and operations teams need to share text or links temporarily without relying on an uncontrolled third-party paste service"
        },
        "audience": {
          "zh-tw": [
            "開發與維運團隊",
            "需要簡單分享入口的小型公司"
          ],
          "en": [
            "Development and operations teams",
            "Small companies that need a simple sharing endpoint"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "以 curl 建立與讀取文字內容",
            "產生短網址與管理連結",
            "依期限讓內容自動過期"
          ],
          "en": [
            "Create and read text with curl",
            "Generate short links and management links",
            "Expire content after a configured lifetime"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要 Cloudflare Worker 與 KV",
            "部署者要決定內容可見性與過期政策"
          ],
          "en": [
            "A Cloudflare Worker and KV",
            "The deployer chooses visibility and expiration policies"
          ]
        },
        "limitations": {
          "zh-tw": [
            "目前免費層降級版不支援 R2 multipart 檔案上傳",
            "知道連結的人可能可以讀取內容，需先確認分享邊界"
          ],
          "en": [
            "The free-tier fallback does not support R2 multipart uploads",
            "Anyone with a readable link may access content, so sharing boundaries must be reviewed"
          ]
        }
      },
      "categories": [
        "sharing",
        "utilities"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "SharzyL/pastebin-worker",
        "adapter": "smallgreen-cloud/adapter-pastebin-worker",
        "license": "MIT"
      },
      "components": {
        "cloudflare": [
          "workers",
          "kv"
        ]
      },
      "login_method": "none",
      "data_flow": {
        "external_services": [],
        "disclosure": "本 adapter 為 KV-only 降級（上游雙層儲存 KV+R2；未啟用 R2 的帳號適配）——R2_THRESHOLD 拉至 R2_MAX_ALLOWED（20M），所有 paste 走 KV（KV 單值上限 25MB 內）。副作用：大檔分段上傳（MPU）API 不可用；每日 R2 清理 cron 已移除。paste 預設 7 天過期（MAX 90 天）。…"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.2.1",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/pastebin-worker/2026-08-02-sandbox-01.json",
          "evidence/pastebin-worker/2026-08-03-sandbox-02.json",
          "evidence/pastebin-worker/2026-08-03-shots-01.json"
        ],
        "compatible_agents": [
          {
            "agent": "claude-code",
            "model": "claude-fable-5",
            "result": "autonomous"
          },
          {
            "agent": "claude-code",
            "model": "claude-opus-5",
            "result": "autonomous"
          },
          {
            "agent": "opencode",
            "model": "big-pickle",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "A",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "active",
      "images": {
        "screenshot": {
          "path": "evidence/pastebin-worker/artifacts/2026-08-03-paste.png",
          "evidence_pack_ref": "evidence/pastebin-worker/2026-08-03-shots-01.json"
        }
      },
      "url": "https://smallgreen-site.pages.dev/services/pastebin-worker/",
      "translations": {
        "en": {
          "one_liner": "A curl-friendly self-hosted pastebin URL shortener and file-sharing service",
          "data_flow": "This KV-only fallback stores pastes in KV and does not support multipart uploads or R2 cleanup jobs"
        },
        "zh-Hant-TW": {
          "one_liner": "curl 友善的自架 pastebin／短網址／檔案分享",
          "data_flow": "本 adapter 為 KV-only 降級（上游雙層儲存 KV+R2；未啟用 R2 的帳號適配）——R2_THRESHOLD 拉至 R2_MAX_ALLOWED（20M），所有 paste 走 KV（KV 單值上限 25MB 內）。副作用：大檔分段上傳（MPU）API 不可用；每日 R2 清理 cron 已移除。paste 預設 7 天過期（MAX 90 天）。…"
        }
      }
    },
    {
      "id": "rin",
      "name": "Rin",
      "one_liner": "個人部落格系統（文章／評論／RSS／Queue 背景 AI 摘要）",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架個人或小型團隊發布平台",
          "en": "A self-hosted publishing platform for individuals or small teams"
        },
        "problem": {
          "zh-tw": "內容、評論與 RSS 依賴外部平台，團隊想保留自己的發布資料與流程",
          "en": "Content, comments and RSS depend on an external platform while the team wants to keep its publishing data and workflow"
        },
        "audience": {
          "zh-tw": [
            "個人品牌與內容團隊",
            "需要簡單發布能力的小型企業"
          ],
          "en": [
            "Personal brands and content teams",
            "Small businesses that need simple publishing"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "管理文章、評論與 RSS",
            "以 Queue 處理背景摘要工作",
            "在自己的 Cloudflare 帳號保存內容"
          ],
          "en": [
            "Manage posts, comments and RSS",
            "Process background summaries with a Queue",
            "Keep content in the deployer's Cloudflare account"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要 Workers、D1、Queues 與 Cron",
            "AI 摘要功能需要另外確認 Workers AI 與額度"
          ],
          "en": [
            "Workers, D1, Queues and Cron",
            "AI summaries require separate review of Workers AI and quotas"
          ]
        },
        "limitations": {
          "zh-tw": [
            "定位是輕量發布平台，不是企業 CMS",
            "AI 摘要不是必要核心功能，會增加資源與維護範圍"
          ],
          "en": [
            "It is a lightweight publishing platform, not an enterprise CMS",
            "AI summaries are optional and expand resource and maintenance scope"
          ]
        }
      },
      "categories": [
        "publishing"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "openRin/Rin",
        "adapter": "smallgreen-cloud/adapter-rin",
        "license": "MIT"
      },
      "components": {
        "cloudflare": [
          "workers",
          "d1",
          "queues",
          "workers-ai",
          "cron"
        ]
      },
      "login_method": "other",
      "data_flow": {
        "external_services": [
          "github.com",
          "自訂 S3 端點（選配）",
          "自訂 webhook URL（選配）"
        ],
        "disclosure": "文章與評論存 D1；快取走 CACHE_STORAGE_MODE=database（本 adapter 預設，免 R2/S3）。媒體上傳需 R2 或外部 S3（選配——不設則圖片上傳不可用，文章功能不受影響）。AI 摘要走 Workers AI binding（免費 10k Neurons/day，SVC-4 等級標示適用）。…"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.2.1",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/rin/2026-08-02-sandbox-01.json",
          "evidence/rin/2026-08-03-shots-01.json"
        ],
        "compatible_agents": [
          {
            "agent": "claude-code",
            "model": "claude-fable-5",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "C",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "active",
      "images": {
        "screenshot": {
          "path": "evidence/rin/artifacts/2026-08-03-home.png",
          "evidence_pack_ref": "evidence/rin/2026-08-03-shots-01.json"
        }
      },
      "quota_note": "執行：claude-code deployer 批次（第 9 案 microfeed 因模型額度用盡中止，另案補收）；teardown 後沙盒五類歸零實查",
      "url": "https://smallgreen-site.pages.dev/services/rin/",
      "translations": {
        "en": {
          "one_liner": "A personal publishing system with posts comments RSS and queued AI summaries",
          "data_flow": "Posts and comments are stored in D1 while optional media and AI features use separately disclosed Cloudflare resources"
        },
        "zh-Hant-TW": {
          "one_liner": "個人部落格系統（文章／評論／RSS／Queue 背景 AI 摘要）",
          "data_flow": "文章與評論存 D1；快取走 CACHE_STORAGE_MODE=database（本 adapter 預設，免 R2/S3）。媒體上傳需 R2 或外部 S3（選配——不設則圖片上傳不可用，文章功能不受影響）。AI 摘要走 Workers AI binding（免費 10k Neurons/day，SVC-4 等級標示適用）。…"
        }
      }
    },
    {
      "id": "second-brain-cloudflare",
      "name": "Second Brain",
      "one_liner": "個人知識庫＋MCP server（keyword-only 降級收錄版）",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架個人知識庫與 MCP 服務",
          "en": "A self-hosted personal knowledge base with an MCP server"
        },
        "problem": {
          "zh-tw": "筆記與知識散落在不同工具，AI 無法透過受控介面搜尋自己的內容",
          "en": "Notes and knowledge are scattered across tools and AI lacks a controlled interface to search them"
        },
        "audience": {
          "zh-tw": [
            "顧問、研究者與創作者",
            "需要保留工作記憶的小型團隊"
          ],
          "en": [
            "Consultants, researchers and creators",
            "Small teams that need durable working knowledge"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "保存筆記與知識關聯",
            "提供關鍵字搜尋與 MCP 存取",
            "以自己的 D1 與 KV 管理資料及授權"
          ],
          "en": [
            "Store notes and knowledge relationships",
            "Provide keyword search and MCP access",
            "Manage data and authorization in your own D1 and KV"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要 Cloudflare Worker、D1 與 KV",
            "需要自行設定 MCP 授權與備份方式"
          ],
          "en": [
            "A Cloudflare Worker, D1 and KV",
            "The deployer configures MCP authorization and backups"
          ]
        },
        "limitations": {
          "zh-tw": [
            "目前是關鍵字搜尋降級版，不等同向量搜尋",
            "資料保留與備份責任由部署者承擔"
          ],
          "en": [
            "The catalogue profile is keyword-search based, not vector search",
            "The deployer owns retention and backup responsibilities"
          ]
        }
      },
      "categories": [
        "sharing"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "rahilp/second-brain-cloudflare",
        "adapter": "smallgreen-cloud/adapter-second-brain",
        "license": "MIT"
      },
      "components": {
        "cloudflare": [
          "workers",
          "d1",
          "kv",
          "workers-ai",
          "cron"
        ]
      },
      "login_method": "token",
      "data_flow": {
        "external_services": [],
        "disclosure": "筆記與知識圖譜存 D1（珍貴資料）；OAUTH_KV 存 MCP OAuth 狀態。本 adapter 為 keyword-only 降級版——Vectorize binding 已由 patch 移除（token 無 Vectorize 權限的帳號適配，B run E43）：語意搜尋降為關鍵字搜尋（上游讀路徑原生 fallback），寫路徑由 patch 0002 改為「binding 不存在才…"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.3.1",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/second-brain-cloudflare/2026-08-02-sandbox-01.json",
          "evidence/second-brain-cloudflare/2026-08-03-sandbox-02.json",
          "evidence/second-brain-cloudflare/2026-08-03-shots-01.json"
        ],
        "compatible_agents": [
          {
            "agent": "claude-code",
            "model": "claude-fable-5",
            "result": "autonomous"
          },
          {
            "agent": "claude-code",
            "model": "claude-opus-5",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "C",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "active",
      "images": {
        "screenshot": {
          "path": "evidence/second-brain-cloudflare/artifacts/2026-08-03-recall.png",
          "evidence_pack_ref": "evidence/second-brain-cloudflare/2026-08-03-shots-01.json"
        }
      },
      "quota_note": "grade C 因 Workers AI：capture 走 embedding＋LLM 分類、recall 走 embedding＋查詢蒸餾，共用 10k Neurons/day 的**帳號層**免費額度；用盡即當日擷取與檢索皆回 500（不是降級是停擺），計數 00:00 UTC 重置",
      "url": "https://smallgreen-site.pages.dev/services/second-brain-cloudflare/",
      "translations": {
        "en": {
          "one_liner": "A personal knowledge base and MCP server in its keyword-search fallback profile",
          "data_flow": "Notes and the knowledge graph are stored in D1 while MCP authorization state is stored in KV and semantic search falls back to keywords"
        },
        "zh-Hant-TW": {
          "one_liner": "個人知識庫＋MCP server（keyword-only 降級收錄版）",
          "data_flow": "筆記與知識圖譜存 D1（珍貴資料）；OAUTH_KV 存 MCP OAuth 狀態。本 adapter 為 keyword-only 降級版——Vectorize binding 已由 patch 移除（token 無 Vectorize 權限的帳號適配，B run E43）：語意搜尋降為關鍵字搜尋（上游讀路徑原生 fallback），寫路徑由 patch 0002 改為「binding 不存在才…"
        }
      }
    },
    {
      "id": "serverless-dns",
      "name": "serverless-dns",
      "one_liner": "RethinkDNS 引擎的自架 DoH 解析端點（內建封鎖清單）",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架 DNS over HTTPS 解析服務",
          "en": "A self-hosted DNS-over-HTTPS resolver"
        },
        "problem": {
          "zh-tw": "個人或小型團隊需要可自訂的 DNS 解析與封鎖清單入口",
          "en": "Individuals and small teams need a customizable DNS resolver and blocklist endpoint"
        },
        "audience": {
          "zh-tw": [
            "需要自訂 DNS 的小型團隊",
            "希望減少第三方解析依賴的技術使用者"
          ],
          "en": [
            "Small teams that need custom DNS",
            "Technical users who want less dependence on third-party resolvers"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "提供 DoH 解析端點",
            "使用建置時封裝的封鎖清單",
            "以無狀態方式處理請求"
          ],
          "en": [
            "Provide a DoH resolver endpoint",
            "Use blocklists packaged at build time",
            "Process requests without storing query history by default"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要 Cloudflare Worker",
            "需要自行維護封鎖清單與解析政策"
          ],
          "en": [
            "A Cloudflare Worker",
            "The deployer maintains blocklists and resolver policies"
          ]
        },
        "limitations": {
          "zh-tw": [
            "不是完整的企業 DNS 管理平台",
            "封鎖清單更新與錯誤分類需要自行維護"
          ],
          "en": [
            "It is not a full enterprise DNS-management platform",
            "Blocklist updates and false-positive handling remain the deployer's responsibility"
          ]
        }
      },
      "categories": [
        "utilities"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "serverless-dns/serverless-dns",
        "adapter": "smallgreen-cloud/adapter-serverless-dns",
        "license": "MPL-2.0"
      },
      "components": {
        "cloudflare": [
          "workers"
        ]
      },
      "login_method": "none",
      "data_flow": {
        "external_services": [
          "cloudflare-dns.com",
          "dns.google",
          "max.rethinkdns.com",
          "cfstore.rethinkdns.com"
        ],
        "disclosure": "無狀態服務——不落地任何查詢紀錄（預設 env 無 AE/logpush binding，send_metrics=false）。封鎖清單於 build 期自 cfstore.rethinkdns.com 下載打包"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.2.1",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/serverless-dns/2026-08-02-sandbox-01.json",
          "evidence/serverless-dns/2026-08-03-sandbox-02.json"
        ],
        "compatible_agents": [
          {
            "agent": "agy",
            "model": "gemini(Antigravity Pro 預設)",
            "result": "autonomous"
          },
          {
            "agent": "claude-code",
            "model": "claude-fable-5",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "A",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "active",
      "url": "https://smallgreen-site.pages.dev/services/serverless-dns/",
      "translations": {
        "en": {
          "one_liner": "A self-hosted DNS-over-HTTPS endpoint powered by the RethinkDNS engine with built-in blocklists",
          "data_flow": "The stateless default stores no DNS query history and packages its blocklists at build time"
        },
        "zh-Hant-TW": {
          "one_liner": "RethinkDNS 引擎的自架 DoH 解析端點（內建封鎖清單）",
          "data_flow": "無狀態服務——不落地任何查詢紀錄（預設 env 無 AE/logpush binding，send_metrics=false）。封鎖清單於 build 期自 cfstore.rethinkdns.com 下載打包"
        }
      }
    },
    {
      "id": "sink",
      "name": "Sink",
      "one_liner": "自架短網址服務，附 Analytics Engine 造訪統計",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架短網址與造訪統計服務",
          "en": "A self-hosted URL shortener with visit analytics"
        },
        "problem": {
          "zh-tw": "活動與分享連結依賴第三方短網址，企業無法掌握連結與基本統計",
          "en": "Campaign and sharing links depend on a third-party shortener, leaving the business without control of links and basic statistics"
        },
        "audience": {
          "zh-tw": [
            "需要品牌短網址的小型企業",
            "活動與行銷團隊"
          ],
          "en": [
            "Small businesses that need branded links",
            "Event and marketing teams"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "建立短網址與轉址",
            "在自己的帳號儲存彙總造訪統計",
            "由部署者維護連結與資料"
          ],
          "en": [
            "Create short links and redirects",
            "Store aggregate visit statistics in your own account",
            "Maintain links and data under the deployer's control"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要自己的 Cloudflare 帳號",
            "需要 Workers、KV；統計功能需要 Analytics Engine"
          ],
          "en": [
            "Your own Cloudflare account",
            "Workers and KV; Analytics Engine for statistics"
          ]
        },
        "limitations": {
          "zh-tw": [
            "轉址目標由使用者自行提供與負責",
            "統計受平台保留政策與免費額度限制"
          ],
          "en": [
            "The deployer is responsible for destination URLs",
            "Statistics remain subject to platform retention and free-tier limits"
          ]
        }
      },
      "categories": [
        "utilities",
        "analytics"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "miantiao-me/Sink",
        "adapter": "smallgreen-cloud/adapter-sink",
        "license": "AGPL-3.0"
      },
      "components": {
        "cloudflare": [
          "workers",
          "kv",
          "analytics-engine",
          "workers-ai(選配)"
        ]
      },
      "login_method": "token",
      "data_flow": {
        "external_services": [
          "api.cloudflare.com",
          "(user-directed)",
          "(user-configured)"
        ],
        "disclosure": "自己帳號裡的短網址服務，附點擊統計儀表板"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.2.0",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/sink/2026-07-30-sandbox-01.json",
          "evidence/sink/2026-07-30-sandbox-02.json",
          "evidence/sink/2026-07-31-sandbox-03.json",
          "evidence/sink/2026-08-01-sandbox-04.json",
          "evidence/sink/2026-08-03-shots-01.json"
        ],
        "compatible_agents": [
          {
            "agent": "agy",
            "model": "gemini（Antigravity CLI 預設，session 未指定）",
            "result": "assisted"
          },
          {
            "agent": "agy",
            "model": "gemini（Antigravity Pro，session 預設）",
            "result": "autonomous"
          },
          {
            "agent": "claude-code",
            "model": "claude-fable-5",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "C",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "active",
      "images": {
        "screenshot": {
          "path": "evidence/sink/artifacts/2026-08-03-dashboard.png",
          "evidence_pack_ref": "evidence/sink/2026-08-03-shots-01.json"
        }
      },
      "quota_note": "執行：claude-code deployer 批次（第 9 案 microfeed 因模型額度用盡中止，另案補收）；teardown 後沙盒五類歸零實查",
      "url": "https://smallgreen-site.pages.dev/services/sink/",
      "translations": {
        "en": {
          "one_liner": "A self-hosted URL shortener with Analytics Engine visit statistics",
          "data_flow": "Short links run in your account and aggregate visit statistics in Analytics Engine"
        },
        "zh-Hant-TW": {
          "one_liner": "自架短網址服務，附 Analytics Engine 造訪統計",
          "data_flow": "自己帳號裡的短網址服務，附點擊統計儀表板"
        }
      }
    },
    {
      "id": "tapcard-mcp",
      "name": "TapCard MCP",
      "one_liner": "自架 NFC／QR 電子名片＋私人 AI 名片庫：公開頁掃即得，收到的名片存自己帳號",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架 NFC／QR 電子名片與私人名片庫 MCP",
          "en": "A self-hosted NFC/QR business card and private card-wall MCP"
        },
        "problem": {
          "zh-tw": "紙本名片會過時，公開個人資訊與收到的聯絡資料也缺少同一個可控入口",
          "en": "Paper cards become outdated, while public profile sharing and received contacts lack one controlled entry point"
        },
        "audience": {
          "zh-tw": [
            "顧問、業務與自由工作者",
            "需要公開名片又要保留私人聯絡資料的小型團隊"
          ],
          "en": [
            "Consultants, sales professionals and freelancers",
            "Small teams that need public profiles and private contact storage"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "發布 NFC／QR 公開電子名片",
            "下載 vCard 並分享公開個人頁",
            "預覽、確認、匯入、搜尋與匯出私人名片"
          ],
          "en": [
            "Publish an NFC/QR public business card",
            "Share a public profile and download vCards",
            "Preview, confirm, import, search and export private cards"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要自己的 Workers、D1、R2 與 KV",
            "需要部署者管理憑證，私人 MCP key 只能由部署者保存"
          ],
          "en": [
            "Your own Workers, D1, R2 and KV",
            "The deployer manages the admin credential and private MCP keys"
          ]
        },
        "limitations": {
          "zh-tw": [
            "目前尚未支援向量搜尋、多人團隊與 NFC 寫卡 App",
            "URL 匯入只適用於符合規格的公開 TapCard"
          ],
          "en": [
            "Vector search, multi-user teams and an NFC-writing app are not in the current scope",
            "URL import is limited to public TapCards that meet the contract"
          ]
        }
      },
      "categories": [
        "sharing"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "ai-cooperation/tapcard-mcp",
        "license": "Apache-2.0"
      },
      "components": {
        "cloudflare": [
          "workers",
          "d1",
          "r2",
          "kv"
        ]
      },
      "login_method": "other",
      "data_flow": {
        "external_services": [
          "(user-directed)"
        ],
        "disclosure": "NFC／QR 公開電子名片與 AI 原生私人名片庫"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.3.0",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/tapcard-mcp/2026-08-03-sandbox-01.json"
        ],
        "compatible_agents": [
          {
            "agent": "claude-code",
            "model": "claude-opus-5",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "C",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "active",
      "images": {
        "screenshot": {
          "path": "evidence/tapcard-mcp/artifacts/2026-08-03-public-profile.png",
          "evidence_pack_ref": "evidence/tapcard-mcp/2026-08-03-sandbox-01.json"
        }
      },
      "url": "https://smallgreen-site.pages.dev/services/tapcard-mcp/",
      "translations": {
        "en": {
          "one_liner": "A self-hosted NFC and QR business card with a private AI card wall — public page on tap, received cards stored in your own account",
          "data_flow": "NFC and QR profile pages are public; received contacts, thumbnails and MCP keys stay private in your own D1, R2 and KV"
        },
        "zh-Hant-TW": {
          "one_liner": "自架 NFC／QR 電子名片＋私人 AI 名片庫：公開頁掃即得，收到的名片存自己帳號",
          "data_flow": "NFC／QR 公開電子名片與 AI 原生私人名片庫"
        }
      }
    },
    {
      "id": "uptimeflare",
      "name": "UptimeFlare",
      "one_liner": "自架服務監測與狀態頁（cron 探測＋D1 歷史）",
      "product_summary": {
        "project_type": {
          "zh-tw": "自架網站與 API 監測、狀態頁服務",
          "en": "A self-hosted website and API monitor with a public status page"
        },
        "problem": {
          "zh-tw": "小型團隊通常在客戶回報後才知道服務中斷，缺少可查的狀態歷史",
          "en": "Small teams often learn about outages from customers and lack a simple status history to inspect"
        },
        "audience": {
          "zh-tw": [
            "小型 SaaS 團隊",
            "接案工作室與需要公開狀態頁的服務商"
          ],
          "en": [
            "Small SaaS teams",
            "Studios and service providers that need a public status page"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "定期探測指定網址",
            "保存 D1 狀態歷史",
            "提供公開狀態頁與可選通知"
          ],
          "en": [
            "Probe configured URLs on a schedule",
            "Store status history in D1",
            "Publish a status page with optional notifications"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要 Cloudflare Workers、Pages、D1、KV 與 Cron",
            "需要自行設定被監測網址與通知方式"
          ],
          "en": [
            "Cloudflare Workers, Pages, D1, KV and Cron",
            "The deployer configures monitored URLs and notification targets"
          ]
        },
        "limitations": {
          "zh-tw": [
            "不是完整的 incident management 或 SLA 平台",
            "探測頻率受帳號額度與排程限制"
          ],
          "en": [
            "It is not a full incident-management or SLA platform",
            "Probe frequency is limited by account quotas and schedules"
          ]
        }
      },
      "categories": [
        "utilities"
      ],
      "profile": "small-app",
      "repo": {
        "upstream": "lyc8503/UptimeFlare",
        "adapter": "smallgreen-cloud/adapter-uptimeflare",
        "license": "Apache-2.0"
      },
      "components": {
        "cloudflare": [
          "workers",
          "pages",
          "d1",
          "kv",
          "cron"
        ]
      },
      "login_method": "none",
      "data_flow": {
        "external_services": [
          "(user-configured)",
          "cloudflare.com",
          "(user-configured)"
        ],
        "disclosure": "自己帳號裡的網站監測與狀態頁（每分鐘檢查、離線通知、歷史紀錄）"
      },
      "verification": {
        "level": "discovered",
        "spec_version": "0.2.0",
        "last_verified": "2026-08-03",
        "evidence_packs": [
          "evidence/uptimeflare/2026-07-30-sandbox-01.json",
          "evidence/uptimeflare/2026-07-30-sandbox-02.json",
          "evidence/uptimeflare/2026-07-30-sandbox-03.json",
          "evidence/uptimeflare/2026-08-03-shots-01.json"
        ],
        "compatible_agents": [
          {
            "agent": "claude-code",
            "model": "claude-fable-5",
            "result": "autonomous"
          },
          {
            "agent": "codex",
            "model": "gpt-5.4（reasoning effort low）",
            "result": "autonomous"
          },
          {
            "agent": "opencode",
            "model": "big-pickle",
            "result": "autonomous"
          }
        ]
      },
      "free_tier_grade": "A",
      "low_carbon": {
        "scale_to_zero": true,
        "green_compute": false,
        "no_idle_infra": true
      },
      "maintenance_status": "active",
      "images": {
        "screenshot": {
          "path": "evidence/uptimeflare/artifacts/2026-08-03-status.png",
          "evidence_pack_ref": "evidence/uptimeflare/2026-08-03-shots-01.json"
        }
      },
      "url": "https://smallgreen-site.pages.dev/services/uptimeflare/",
      "translations": {
        "en": {
          "one_liner": "Service monitoring and a public status page with scheduled probes and D1 history",
          "data_flow": "Scheduled checks status history and optional outage notifications run in your own account"
        },
        "zh-Hant-TW": {
          "one_liner": "自架服務監測與狀態頁（cron 探測＋D1 歷史）",
          "data_flow": "自己帳號裡的網站監測與狀態頁（每分鐘檢查、離線通知、歷史紀錄）"
        }
      }
    }
  ],
  "onboarding": [
    {
      "id": "homebox-edge",
      "name": "HomeBox Edge",
      "state": "evidence-needed",
      "state_label": {
        "zh-tw": "等待公開驗證",
        "en": "Awaiting public verification"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "自架的家庭與工作室資產管理小型專案",
          "en": "A self-hosted asset inventory for homes and small studios"
        },
        "problem": {
          "zh-tw": "解決設備、位置、保固與照片分散在試算表、訊息與雲端相簿，查找與交接都很困難的問題",
          "en": "Solves the problem of household and studio asset data being scattered across spreadsheets, messages and photo albums"
        },
        "audience": {
          "zh-tw": [
            "家庭、工作室、需要管理設備的人"
          ],
          "en": [
            "Households",
            "studios",
            "people managing equipment"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "資產新增、搜尋、編輯、封存與還原",
            "HomeBox CSV／TSV 預覽、確認後匯入與匯出",
            "私有照片、縮圖與可撤銷的 AI 連線"
          ],
          "en": [
            "Create, search, edit, archive and restore assets",
            "Preview, confirm and exchange HomeBox CSV or TSV",
            "Keep private photos and thumbnails with revocable AI connectors"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers、D1、R2、KV 與 Images binding；需要自有 Cloudflare 帳號"
          ],
          "en": [
            "Cloudflare Workers",
            "D1",
            "R2",
            "KV and Images binding; a Cloudflare account is required"
          ]
        },
        "limitations": {
          "zh-tw": [
            "上架前仍需完成正式 release、部署驗收、teardown 與 Evidence Pack；AI 連線需自行管理供應商與費用"
          ],
          "en": [
            "A release",
            "live acceptance",
            "teardown and Evidence Pack are still required; AI connectors require your own provider and cost controls"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "d1",
          "r2",
          "kv",
          "images"
        ],
        "external_services": []
      },
      "current_stage": {
        "zh-tw": "v0.2 功能與 SmallGreen 三份契約已完成，等待正確 Cloudflare 帳號下的真實部署與公開 Evidence Pack",
        "en": "v0.2 features and the three SmallGreen contracts are complete; live deployment in the correct Cloudflare account and a public Evidence Pack remain"
      },
      "next_steps": {
        "zh-tw": [
          "確認可存取既有 Worker 與 D1、KV、R2、Images 資源的 Cloudflare 帳號",
          "固定可上架的 main／release commit，並記錄部署前 migration 與資料備份狀態",
          "完成真實部署、照片與 CSV／MCP 驗收、teardown 與 Evidence Pack"
        ],
        "en": [
          "Confirm the Cloudflare account that can access the existing Worker and D1, KV, R2 and Images resources",
          "Freeze the publishable main or release commit and record pre-deploy migrations and backups",
          "Complete live deployment, photo plus CSV/MCP acceptance, teardown and an Evidence Pack"
        ]
      },
      "product_family": "personal-vault",
      "url": "https://smallgreen-site.pages.dev/services/homebox-edge/"
    },
    {
      "id": "kb-vault",
      "name": "Free Second Brain（kb-vault）",
      "state": "canonical-repo-needed",
      "state_label": {
        "zh-tw": "整理後上架",
        "en": "Canonicalisation before entry"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 Markdown、D1 與 Remote MCP 組成的個人知識庫專案",
          "en": "A personal knowledge base built from Markdown, D1 and Remote MCP"
        },
        "problem": {
          "zh-tw": "解決研究、顧問與 AI 工作經驗散落在不同工具，日後無法搜尋、連結與重用的問題",
          "en": "Solves the problem of research, consulting and AI work knowledge being fragmented across tools and difficult to search, connect and reuse"
        },
        "audience": {
          "zh-tw": [
            "研究者、顧問、創作者、需要累積 AI 工作記憶的人"
          ],
          "en": [
            "Researchers",
            "consultants",
            "creators",
            "people building durable AI memory"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "Markdown 卡片、標籤、雙向連結與圖譜",
            "D1 全文搜尋與 Remote MCP 讀寫",
            "RSS 收集，以及選配的 Notion／GitHub 備份"
          ],
          "en": [
            "Markdown cards, tags, bidirectional links and a graph view",
            "D1 full-text search and Remote MCP read/write access",
            "RSS collection plus optional Notion or GitHub backup"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers、Pages、D1、KV、選配 R2 與 Cron；需要 OAuth、RSS 或備份服務的憑證時另行設定"
          ],
          "en": [
            "Cloudflare Workers",
            "Pages",
            "D1",
            "KV",
            "optional R2 and Cron; credentials are needed for OAuth",
            "RSS or backup services"
          ]
        },
        "limitations": {
          "zh-tw": [
            "目前有兩個 checkout，需先凍結 canonical repo；Notion、GitHub 與 RSS 是外部依賴，需各自驗證權限與資料邊界"
          ],
          "en": [
            "Two checkouts still need to be reconciled into one canonical repo; Notion",
            "GitHub and RSS are external dependencies with separate permission and data-boundary checks"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "pages",
          "d1",
          "kv",
          "r2",
          "cron"
        ],
        "external_services": [
          "Google OAuth",
          "RSS sources",
          "Notion API (optional)",
          "GitHub API (optional)"
        ]
      },
      "current_stage": {
        "zh-tw": "Worker、UI、MCP 與基本同步功能已存在，但目前有兩個 checkout，尚未凍結上架真相源",
        "en": "Worker, UI, MCP and basic sync features exist, but two checkouts must be reconciled before publishing"
      },
      "next_steps": {
        "zh-tw": [
          "決定 canonical repo 與 release commit",
          "補 SmallGreen 三檔契約、Agent 引導與外部服務揭露",
          "完成登入、MCP、RSS、同步與 teardown 的 Evidence Pack"
        ],
        "en": [
          "Choose the canonical repository and release commit",
          "Add the three SmallGreen contracts, Agent guidance and external-service disclosure",
          "Produce an Evidence Pack covering login, MCP, RSS, sync and teardown"
        ]
      },
      "product_family": "personal-vault",
      "url": "https://smallgreen-site.pages.dev/services/kb-vault/"
    },
    {
      "id": "meeting-capture-kit",
      "name": "Meeting Capture Kit",
      "state": "evidence-needed",
      "state_label": {
        "zh-tw": "等待公開驗證",
        "en": "Awaiting public verification"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 LINE、Cloudflare Worker 與 GitHub Actions 串成的會議紀錄處理流程",
          "en": "A meeting-record pipeline connecting LINE, a Cloudflare Worker and GitHub Actions"
        },
        "problem": {
          "zh-tw": "解決會議音訊留在聊天工具、難以轉錄整理，且敏感紀錄不希望集中在第三方 SaaS 的問題",
          "en": "Solves the problem of meeting audio staying in chat tools, being hard to structure, and sensitive notes needing a private system of record"
        },
        "audience": {
          "zh-tw": [
            "需要掌握會議資料的顧問、團隊與個人工作者"
          ],
          "en": [
            "Consultants",
            "teams and solo operators who need control of meeting records"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "LINE webhook 驗簽與使用者 allowlist",
            "GitHub Actions 執行語音轉錄、術語校正與摘要",
            "Private repo 留存會議 Markdown，並可回傳 LINE 通知"
          ],
          "en": [
            "Signed LINE webhooks with an explicit user allowlist",
            "GitHub Actions for transcription, terminology correction and summaries",
            "Retain meeting Markdown in a private repo and send LINE notifications"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers、KV、GitHub Actions 與 Private GitHub repository；需要 LINE、Groq 與 Gemini 憑證"
          ],
          "en": [
            "Cloudflare Workers",
            "KV",
            "GitHub Actions and a private GitHub repository; LINE",
            "Groq and Gemini credentials are required"
          ]
        },
        "limitations": {
          "zh-tw": [
            "仍需人工確認 provider 資料流、secret 與費用限制；目前以合成音訊驗收，尚未完成公開 Evidence Pack"
          ],
          "en": [
            "Provider data flows",
            "secrets and cost limits still need human review; acceptance currently uses synthetic audio and the public Evidence Pack is not complete"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "kv"
        ],
        "external_services": [
          "LINE",
          "GitHub Actions",
          "Groq",
          "Gemini"
        ]
      },
      "current_stage": {
        "zh-tw": "已有 Worker、pipeline、契約與合成驗收案例，但尚未建立 Registry 卡片與公開 Evidence Pack",
        "en": "Worker, pipeline, contracts and synthetic acceptance cases exist, but no Registry card or public Evidence Pack exists yet"
      },
      "next_steps": {
        "zh-tw": [
          "固定可上架的 template release commit 與公開資料邊界",
          "完成外部 provider 資料流、secret 與費用限制的人工 review",
          "用合成音訊完成真實部署、驗收、teardown 與 Evidence Pack"
        ],
        "en": [
          "Freeze a publishable template release and its public data boundary",
          "Human-review provider data flows, secrets and cost limits",
          "Complete a live deployment, acceptance, teardown and Evidence Pack with synthetic audio"
        ]
      },
      "product_family": "pipeline",
      "url": "https://smallgreen-site.pages.dev/services/meeting-capture-kit/"
    },
    {
      "id": "fluxgate",
      "name": "FluxGate",
      "state": "open-source-gate",
      "state_label": {
        "zh-tw": "開源發布前檢查",
        "en": "Open-source release gate"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "把白話意圖轉成 FLUX 圖片的自架 AI 生圖閘道",
          "en": "A self-hosted AI image gateway that turns plain-language intent into FLUX images"
        },
        "problem": {
          "zh-tw": "想在自己的 Cloudflare 帳號使用生圖與 MCP，卻不想依賴集中式圖像服務或自行維護整套 prompt 流程",
          "en": "People want image generation and MCP access in their own Cloudflare account without relying on a hosted image service or maintaining the prompt pipeline themselves"
        },
        "audience": {
          "zh-tw": [
            "需要自有生圖工具的個人與教學者",
            "想把 AI 生圖接到網站或 MCP client 的開發者"
          ],
          "en": [
            "Individuals and educators who need their own image tool",
            "Developers connecting image generation to a site or MCP client"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "以白話意圖路由至鎖定的視覺風格與 FLUX prompt",
            "提供 REST `/generate` 與 MCP `generate_image`／`check_job`",
            "將暫存生成圖存到自己的 R2，並由每日 Cron 清理"
          ],
          "en": [
            "Route plain-language intent to locked visual styles and a FLUX prompt",
            "Provide REST `/generate` and MCP `generate_image`/`check_job`",
            "Store generated images temporarily in the deployer's R2 and clean them with a daily Cron"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "需要自己的 Cloudflare Workers、Workers AI、KV、R2 與 workers.dev 子網域",
            "MCP 可用性需要 R2；Firebase 會員登入與 Telegram 失敗告警是選配",
            "需自行管理 Workers AI 額度、圖片保存與 key"
          ],
          "en": [
            "Your own Cloudflare Workers, Workers AI, KV, R2 and a workers.dev subdomain",
            "MCP usability needs R2; Firebase membership login and Telegram failure alerts are optional",
            "The deployer manages Workers AI quota, image retention and API keys"
          ]
        },
        "limitations": {
          "zh-tw": [
            "供應商安全過濾可能拒絕接近邊界的提示；手部與可讀文字仍有 FLUX 模型限制",
            "SIZES 是版型／prompt 目標；FLUX.1-schnell 不接受任意 width/height，回應尺寸以實際圖片 bytes 為準",
            "目前只提供單一 Worker 的開源預設，不包含維護者正式雙帳號轉發器",
            "已完成隔離資源 E2E Evidence Pack；乾淨 Cloudflare 測試帳號的獨立公開 Evidence Pack 尚未完成，因此不是已驗證服務"
          ],
          "en": [
            "Provider safety filters may reject prompts near the boundary; hands and readable text remain FLUX model limitations",
            "SIZES are layout/prompt targets; FLUX.1-schnell does not accept arbitrary width/height, so response dimensions come from the returned image bytes",
            "The open-source default is a single Worker and does not include the maintainer's production cross-account forwarder",
            "An isolated-resource E2E Evidence Pack exists, but an independent public Evidence Pack from a clean Cloudflare test account is not complete, so this is not a verified service"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "workers-ai",
          "kv",
          "r2",
          "cron"
        ],
        "external_services": [
          "Google Firebase (optional)",
          "Telegram (optional)"
        ]
      },
      "current_stage": {
        "zh-tw": "已補齊 MIT、可攜式 wrangler 範本、SmallGreen 三份契約、conformance CI、部署者 key CLI 與 Firebase-free 首頁；已完成已登入帳號內隔離資源的 live E2E、teardown 與 append-only Evidence Pack；仍待 CI conformance 與乾淨帳號獨立重跑",
        "en": "MIT licensing, a portable Wrangler template, the three SmallGreen contracts, conformance CI, a deployer key CLI and a Firebase-free homepage are prepared; live isolated-resource E2E, teardown and an append-only Evidence Pack are complete in the logged-in account; CI conformance and an independent clean-account rerun remain"
      },
      "next_steps": {
        "zh-tw": [
          "在乾淨 Cloudflare 測試帳號重跑 Workers AI、KV、R2 的健康檢查、MCP tools/list 與 draft 生圖",
          "由維護者 commit 後重跑 CI conformance，並補做 R2 備份／還原與 Cron／告警驗收",
          "由維護者人工檢查公開樹，再決定是否將 `ai-cooperation/fluxgate` 轉為 PUBLIC 與建立 release"
        ],
        "en": [
          "Rerun health, MCP tools/list and draft-image checks for Workers AI, KV and R2 in a clean Cloudflare test account",
          "Rerun CI conformance after the maintainer commits, and add R2 backup/restore plus Cron/alert acceptance",
          "Have a maintainer review the public tree before deciding whether to make `ai-cooperation/fluxgate` public and create a release"
        ]
      },
      "product_family": "ai-media",
      "url": "https://smallgreen-site.pages.dev/services/fluxgate/"
    }
  ],
  "research_cases": [
    {
      "id": "cloud-mail",
      "name": "Cloud Mail",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "maillab/cloud-mail",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2026-08-26",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "建立在 Cloudflare 上的簡易網域郵件服務",
          "en": "A simple domain email service built on Cloudflare"
        },
        "problem": {
          "zh-tw": "解決自有網域收發郵件與附件需要維護完整郵件伺服器的問題",
          "en": "Solves the need to run a full mail server just to send and receive mail for a domain"
        },
        "audience": {
          "zh-tw": [
            "需要自有網域郵件的小型團隊",
            "需要自行掌握郵件資料的人"
          ],
          "en": [
            "Small teams needing domain email",
            "people who want control of mail data"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "收發郵件與附件",
            "綁定單一網域",
            "以 Worker 部署郵件服務"
          ],
          "en": [
            "Send and receive mail with attachments",
            "bind one domain",
            "deploy the mail service on Workers"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "自有網域與 Email Routing",
            "需依上游文件設定郵件路由"
          ],
          "en": [
            "Cloudflare Workers",
            "a domain and Email Routing",
            "upstream mail-routing configuration"
          ]
        },
        "limitations": {
          "zh-tw": [
            "郵件路由與遞送可靠性仍需實際驗證",
            "單一網域限制需確認"
          ],
          "en": [
            "Mail routing and delivery reliability still need live verification",
            "the one-domain limit needs confirmation"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "email-routing"
        ]
      },
      "current_stage": {
        "zh-tw": "已完成 README 與 metadata 研究",
        "尚未完成部署契約與實機驗證": null,
        "en": "README and metadata research is complete; the deployment contract and live verification are pending"
      },
      "next_steps": {
        "zh-tw": [
          "確認郵件路由與附件資料流",
          "建立可重現部署步驟",
          "完成收發與 teardown 驗收"
        ],
        "en": [
          "Confirm mail-routing and attachment data flows",
          "write reproducible deployment steps",
          "verify send receive and teardown"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/cloud-mail/"
    },
    {
      "id": "cloudflare-temp-email",
      "name": "Cloudflare Temporary Email",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "dreamhunter2333/cloudflare_temp_email",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2026-08-25",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "建立在 Cloudflare 上的臨時信箱服務",
          "en": "A temporary email service built on Cloudflare"
        },
        "problem": {
          "zh-tw": "解決短期註冊或測試需要一次性收件地址，又不想使用第三方臨時信箱的問題",
          "en": "Solves the need for disposable addresses during signups or tests without relying on a third-party inbox"
        },
        "audience": {
          "zh-tw": [
            "軟體測試者",
            "需要短期收件地址的人"
          ],
          "en": [
            "Software testers",
            "people needing short-lived inboxes"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "建立臨時信箱",
            "收發郵件與附件",
            "IMAP／SMTP 與 Telegram Bot 整合"
          ],
          "en": [
            "Create temporary inboxes",
            "handle mail and attachments",
            "integrate IMAP SMTP and a Telegram bot"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Worker",
            "網域與郵件設定",
            "需核對外部郵件與 Telegram 設定"
          ],
          "en": [
            "A Cloudflare Worker",
            "a domain and mail configuration",
            "external mail and Telegram settings"
          ]
        },
        "limitations": {
          "zh-tw": [
            "臨時信箱的保存期限與濫用防護需實測",
            "外部郵件遞送不由 Worker 單獨保證"
          ],
          "en": [
            "Retention and abuse controls need testing",
            "external mail delivery is not guaranteed by the Worker alone"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "email-routing"
        ],
        "external_services": [
          "IMAP",
          "SMTP",
          "Telegram Bot"
        ]
      },
      "current_stage": {
        "zh-tw": "上游功能與部署線索已整理",
        "尚未建立 SmallGreen 研究以外的驗證證據": null,
        "en": "Upstream features and deployment clues are mapped; SmallGreen verification evidence is not started"
      },
      "next_steps": {
        "zh-tw": [
          "核對郵件供應商與資料保存位置",
          "驗證建立收件與過期流程",
          "設計濫用與 teardown 測試"
        ],
        "en": [
          "Confirm mail providers and data retention",
          "verify inbox creation and expiry",
          "design abuse and teardown tests"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/cloudflare-temp-email/"
    },
    {
      "id": "chatgpt-telegram-workers",
      "name": "ChatGPT Telegram Workers",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "tbxark/ChatGPT-Telegram-Workers",
        "license": "MIT",
        "default_branch": "master",
        "last_push": "2026-04-06",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 Cloudflare Worker 執行的自有 Telegram AI Bot",
          "en": "A self-hosted Telegram AI bot running on a Cloudflare Worker"
        },
        "problem": {
          "zh-tw": "解決把 Telegram 對話接到指定 AI 服務時需要自行維護後端的問題",
          "en": "Solves the backend burden of connecting Telegram conversations to a chosen AI service"
        },
        "audience": {
          "zh-tw": [
            "想擁有自己 Telegram Bot 的人",
            "需要多模型切換的開發者"
          ],
          "en": [
            "People wanting their own Telegram bot",
            "developers needing model switching"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "多 AI provider",
            "模型切換與串流",
            "自訂指令與多 Bot"
          ],
          "en": [
            "Multiple AI providers",
            "model switching and streaming",
            "custom commands and multiple bots"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "Telegram Bot Token",
            "AI provider 憑證"
          ],
          "en": [
            "Cloudflare Workers",
            "a Telegram Bot Token and AI provider credentials"
          ]
        },
        "limitations": {
          "zh-tw": [
            "外部 AI provider 會產生成本與資料流風險",
            "Bot 權限與公開 webhook 需額外防護"
          ],
          "en": [
            "External AI providers add cost and data-flow risk",
            "bot permissions and public webhooks need hardening"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers"
        ],
        "external_services": [
          "Telegram",
          "AI providers"
        ]
      },
      "current_stage": {
        "zh-tw": "單檔 Worker 與功能範圍已確認",
        "尚未驗證各 provider 的部署差異": null,
        "en": "The single-file Worker and feature scope are confirmed; provider-specific deployment differences are unverified"
      },
      "next_steps": {
        "zh-tw": [
          "固定 provider 與 secret 邊界",
          "驗證 webhook 與模型切換",
          "補成本與資料刪除驗收"
        ],
        "en": [
          "Fix provider and secret boundaries",
          "verify webhooks and model switching",
          "add cost and data-deletion acceptance"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/chatgpt-telegram-workers/"
    },
    {
      "id": "agentic-inbox",
      "name": "Agentic Inbox",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "cloudflare/agentic-inbox",
        "license": "Apache-2.0",
        "default_branch": "main",
        "last_push": "2026-04-23",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "結合 Email Routing、Durable Object 與 AI Agent 的自架信箱",
          "en": "A self-hosted inbox combining Email Routing Durable Objects and an AI agent"
        },
        "problem": {
          "zh-tw": "解決郵件閱讀、搜尋與回覆草稿散落在 SaaS，無法掌握信箱資料與自動化邊界的問題",
          "en": "Solves the loss of data control and automation boundaries when inbox work is scattered across SaaS tools"
        },
        "audience": {
          "zh-tw": [
            "需要自有信箱工作流的人",
            "想測試郵件 AI Agent 的開發者"
          ],
          "en": [
            "People needing an owned inbox workflow",
            "developers testing email AI agents"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "每個信箱獨立儲存",
            "郵件搜尋與附件保存",
            "Agent 讀取搜尋與草擬回覆"
          ],
          "en": [
            "Per-mailbox storage",
            "email search and attachment retention",
            "agent read search and reply drafting"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "Email Routing",
            "Durable Objects SQLite",
            "R2",
            "Workers AI 或 Agents SDK"
          ],
          "en": [
            "Cloudflare Workers",
            "Email Routing",
            "Durable Objects SQLite",
            "R2",
            "Workers AI or the Agents SDK"
          ]
        },
        "limitations": {
          "zh-tw": [
            "部署按鈕後仍需多項設定",
            "AI 回覆與郵件資料邊界必須人工審查"
          ],
          "en": [
            "More configuration is needed after the deploy button",
            "AI reply and email-data boundaries need human review"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "durable-objects",
          "r2",
          "workers-ai",
          "email-routing"
        ],
        "external_services": [
          "Email Routing"
        ]
      },
      "current_stage": {
        "zh-tw": "上游架構與資料流清楚",
        "尚未完成小型部署與 AI 權限驗證": null,
        "en": "Upstream architecture and data flow are clear; a small deployment and AI-permission review are pending"
      },
      "next_steps": {
        "zh-tw": [
          "驗證 Durable Object mailbox 隔離",
          "確認附件與 AI 資料流",
          "完成部署後的設定與 teardown"
        ],
        "en": [
          "Verify Durable Object mailbox isolation",
          "confirm attachment and AI data flows",
          "complete post-deploy setup and teardown"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/agentic-inbox/"
    },
    {
      "id": "moemail",
      "name": "MoeMail",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "beilunyang/moemail",
        "license": "MIT",
        "default_branch": "master",
        "last_push": "2026-07-30",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 Next.js 與 Cloudflare 組成的臨時信箱服務",
          "en": "A temporary email service built with Next.js and Cloudflare"
        },
        "problem": {
          "zh-tw": "解決開發測試需要快速建立短期信箱的問題",
          "en": "Solves the need to quickly create short-lived inboxes for development and testing"
        },
        "audience": {
          "zh-tw": [
            "開發者",
            "測試者",
            "需要臨時收件的人"
          ],
          "en": [
            "Developers",
            "testers",
            "people needing temporary inboxes"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "建立與查看臨時信箱",
            "提供 API",
            "以 Cloudflare 部署前後端"
          ],
          "en": [
            "Create and inspect temporary inboxes",
            "expose an API",
            "deploy frontend and backend on Cloudflare"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Pages 或 Workers",
            "Next.js 建置流程",
            "依文件設定環境變數"
          ],
          "en": [
            "Cloudflare Pages or Workers",
            "a Next.js build flow and documented environment variables"
          ]
        },
        "limitations": {
          "zh-tw": [
            "郵件保存與遞送規則需核對",
            "Next.js 部署方式可能隨平台設定變動"
          ],
          "en": [
            "Mail retention and delivery rules need confirmation",
            "the Next.js deployment path may vary with platform settings"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "pages"
        ],
        "external_services": [
          "Email provider"
        ]
      },
      "current_stage": {
        "zh-tw": "產品與部署文件已完成初步研究",
        "尚未驗證 Cloudflare 版本的完整郵件流程": null,
        "en": "Product and deployment docs are mapped; the complete Cloudflare mail flow is unverified"
      },
      "next_steps": {
        "zh-tw": [
          "確認 Cloudflare adapter 與 bindings",
          "實測信箱生命週期",
          "記錄外部郵件依賴"
        ],
        "en": [
          "Confirm the Cloudflare adapter and bindings",
          "test inbox lifecycle",
          "record external mail dependencies"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/moemail/"
    },
    {
      "id": "cf-workers-status-page",
      "name": "Cloudflare Worker Status Page",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "eidam/cf-workers-status-page",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2024-08-21",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 Worker 與 Cron 監測網站的狀態頁",
          "en": "A status page that monitors websites with Workers and Cron"
        },
        "problem": {
          "zh-tw": "解決小型服務需要公開可讀的可用性歷史與通知頁面的問題",
          "en": "Solves the need for a readable public availability history and notification page for small services"
        },
        "audience": {
          "zh-tw": [
            "維護個人服務的人",
            "需要公開狀態頁的小型團隊"
          ],
          "en": [
            "People maintaining personal services",
            "small teams needing a public status page"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "定期檢查網站",
            "保存歷史狀態",
            "發送 Slack 或 Discord 通知"
          ],
          "en": [
            "Check websites on a schedule",
            "keep status history",
            "send Slack or Discord notifications"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "Cron",
            "KV",
            "自有網域；通知服務為選配"
          ],
          "en": [
            "Cloudflare Workers",
            "Cron",
            "KV and a domain; notification services are optional"
          ]
        },
        "limitations": {
          "zh-tw": [
            "上游長期未更新",
            "監測結果與通知延遲需實測"
          ],
          "en": [
            "The upstream has been inactive for a long time",
            "monitoring results and notification latency need testing"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "kv",
          "cron"
        ],
        "external_services": [
          "Slack or Discord webhooks"
        ]
      },
      "current_stage": {
        "zh-tw": "架構與維護風險已確認",
        "尚未決定是否值得進入部署驗證": null,
        "en": "Architecture and maintenance risk are known; its value for deployment verification is not decided"
      },
      "next_steps": {
        "zh-tw": [
          "確認目前 Cloudflare API 相容性",
          "實測 Cron 與 KV 歷史資料",
          "依維護風險決定去留"
        ],
        "en": [
          "Check current Cloudflare API compatibility",
          "test Cron and KV history",
          "decide whether maintenance risk is acceptable"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/cf-workers-status-page/"
    },
    {
      "id": "vmail",
      "name": "VMAIL",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "oiov/vmail",
        "license": "GPL-3.0",
        "default_branch": "main",
        "last_push": "2026-07-16",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 Email Worker、D1 與 React 組成的臨時郵件服務",
          "en": "A temporary email service built from an Email Worker D1 and React frontend"
        },
        "problem": {
          "zh-tw": "解決需要多網域臨時收件、API 與簡易管理介面的問題",
          "en": "Solves the need for multi-domain temporary mailboxes with an API and simple management interface"
        },
        "audience": {
          "zh-tw": [
            "測試者",
            "需要多網域郵件入口的開發者"
          ],
          "en": [
            "Testers",
            "developers needing multi-domain mail entry points"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "多網域信箱",
            "D1 保存郵件",
            "REST API 與可選寄信 provider"
          ],
          "en": [
            "Multiple domains",
            "D1 mail storage",
            "a REST API and optional sending providers"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "D1",
            "Email Routing",
            "自有網域與 Resend 或其他寄信服務"
          ],
          "en": [
            "Cloudflare Workers",
            "D1",
            "Email Routing",
            "a domain and Resend or another sending service"
          ]
        },
        "limitations": {
          "zh-tw": [
            "郵件內容含敏感資料時需明確保存政策",
            "GPL-3.0 與外部寄信服務需納入發布審查"
          ],
          "en": [
            "Sensitive mail needs an explicit retention policy",
            "GPL-3.0 and external sending services need release review"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "d1",
          "email-routing"
        ],
        "external_services": [
          "Resend",
          "MailChannels"
        ]
      },
      "current_stage": {
        "zh-tw": "功能與元件已整理",
        "尚未完成多網域與郵件遞送驗收": null,
        "en": "Features and components are mapped; multi-domain and delivery acceptance are pending"
      },
      "next_steps": {
        "zh-tw": [
          "核對 Email Routing 與 D1 schema",
          "實測多網域收件",
          "建立資料刪除與濫用測試"
        ],
        "en": [
          "Confirm Email Routing and D1 schema",
          "test multi-domain receipt",
          "add deletion and abuse tests"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/vmail/"
    },
    {
      "id": "serverless-cloud-notepad",
      "name": "Serverless Cloud Notepad",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "s0urcelab/serverless-cloud-notepad",
        "license": "MIT",
        "default_branch": "master",
        "last_push": "2025-06-06",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 Worker 與 KV 提供免登入文字記事與分享的小型服務",
          "en": "A small no-login text note and sharing service using Workers and KV"
        },
        "problem": {
          "zh-tw": "解決臨時文字需要快速記錄、同步與唯讀分享的問題",
          "en": "Solves the need to quickly record sync and share temporary text as read-only content"
        },
        "audience": {
          "zh-tw": [
            "需要簡易文字暫存的人",
            "開發與支援團隊"
          ],
          "en": [
            "People needing simple text scratch space",
            "development and support teams"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "自訂路徑",
            "自動保存",
            "唯讀分享",
            "不需帳號或資料庫"
          ],
          "en": [
            "Custom paths",
            "autosave",
            "read-only sharing",
            "no account or database"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "KV",
            "GitHub Actions；需評估 KV 寫入額度"
          ],
          "en": [
            "Cloudflare Workers",
            "KV and GitHub Actions; KV write limits need evaluation"
          ]
        },
        "limitations": {
          "zh-tw": [
            "KV 每日寫入限制可能影響高頻保存",
            "長期維護狀態需再確認"
          ],
          "en": [
            "KV daily write limits may affect high-frequency saving",
            "long-term maintenance needs rechecking"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "kv"
        ],
        "github": [
          "actions",
          "repository"
        ]
      },
      "current_stage": {
        "zh-tw": "服務定位與資料層清楚",
        "尚未實測高頻自動保存與權限邊界": null,
        "en": "Product and data-layer roles are clear; high-frequency autosave and access boundaries are untested"
      },
      "next_steps": {
        "zh-tw": [
          "確認 KV 寫入模型",
          "驗證唯讀連結與路徑權限",
          "補 GitHub Actions teardown 流程"
        ],
        "en": [
          "Confirm the KV write model",
          "verify read-only links and path access",
          "add the GitHub Actions teardown flow"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/serverless-cloud-notepad/"
    },
    {
      "id": "zmail",
      "name": "ZMail",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "takumi913/zmail",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2026-08-01",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "整合前後端的 24 小時臨時信箱 Worker",
          "en": "An integrated frontend and backend Worker for 24-hour temporary mailboxes"
        },
        "problem": {
          "zh-tw": "解決短期測試需要有期限收件地址的問題",
          "en": "Solves the need for expiring inboxes during short-term testing"
        },
        "audience": {
          "zh-tw": [
            "開發者",
            "測試者",
            "需要短期收件的人"
          ],
          "en": [
            "Developers",
            "testers",
            "people needing short-lived inboxes"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "建立 24 小時信箱",
            "單一 Worker 前後端",
            "自訂網域與郵件路由"
          ],
          "en": [
            "Create 24-hour inboxes",
            "run frontend and backend in one Worker",
            "use a custom domain and mail routing"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Worker",
            "自有網域與 Email Routing",
            "需以 GitHub Action 或部署按鈕設定"
          ],
          "en": [
            "A Cloudflare Worker",
            "a domain and Email Routing",
            "GitHub Action or deploy-button setup"
          ]
        },
        "limitations": {
          "zh-tw": [
            "目前 demo 標示只能查看且不能收信",
            "郵件過期與遞送尚待驗證"
          ],
          "en": [
            "The current demo says it is view-only and cannot receive mail",
            "expiry and delivery are unverified"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "email-routing"
        ],
        "github": [
          "actions"
        ]
      },
      "current_stage": {
        "zh-tw": "身份、授權與基本產品形狀已確認",
        "尚未視為可部署服務": null,
        "en": "Identity license and basic product shape are confirmed; it is not considered deployable yet"
      },
      "next_steps": {
        "zh-tw": [
          "先修正或確認 demo 的收信狀態",
          "驗證 24 小時生命週期",
          "補郵件資料清除證據"
        ],
        "en": [
          "Resolve or confirm the demo receive-mail status",
          "verify the 24-hour lifecycle",
          "add mail-deletion evidence"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/zmail/"
    },
    {
      "id": "roim-picx",
      "name": "roim-picx",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "roimdev/roim-picx",
        "license": "Apache-2.0",
        "default_branch": "main",
        "last_push": "2026-03-16",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "使用 R2、D1 與 KV 的自有圖片託管服務",
          "en": "An owned image-hosting service using R2 D1 and KV"
        },
        "problem": {
          "zh-tw": "解決圖片放在第三方圖床，無法控制檔案、連結與統計資料的問題",
          "en": "Solves the loss of control over image files links and statistics on third-party hosts"
        },
        "audience": {
          "zh-tw": [
            "網站作者",
            "需要自有圖床的開發者",
            "管理圖片資產的人"
          ],
          "en": [
            "Website authors",
            "developers needing an owned image host",
            "people managing image assets"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "圖片上傳與資料夾",
            "分享與到期",
            "OAuth",
            "統計與多儲存 provider"
          ],
          "en": [
            "Image upload and folders",
            "sharing and expiry",
            "OAuth",
            "statistics and multiple storage providers"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Workers 或 Pages Functions",
            "R2",
            "D1",
            "KV",
            "OAuth provider"
          ],
          "en": [
            "Workers or Pages Functions",
            "R2",
            "D1",
            "KV and an OAuth provider"
          ]
        },
        "limitations": {
          "zh-tw": [
            "需要同時管理多個 binding 與 OAuth 權限",
            "圖片公開連結與刪除政策需審查"
          ],
          "en": [
            "Several bindings and OAuth permissions must be managed",
            "public links and deletion policy need review"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "pages",
          "r2",
          "d1",
          "kv"
        ],
        "external_services": [
          "OAuth provider"
        ]
      },
      "current_stage": {
        "zh-tw": "產品能力與 Cloudflare 元件已整理",
        "尚未驗證檔案權限與刪除流程": null,
        "en": "Product capabilities and Cloudflare components are mapped; file permissions and deletion are unverified"
      },
      "next_steps": {
        "zh-tw": [
          "確認 OAuth callback 與權限模型",
          "實測 R2 檔案生命週期",
          "建立公開連結撤銷驗收"
        ],
        "en": [
          "Confirm the OAuth callback and permission model",
          "test the R2 file lifecycle",
          "verify public-link revocation"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/roim-picx/"
    },
    {
      "id": "authinbox",
      "name": "AuthInbox",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "TooonyChen/AuthInbox",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2026-07-09",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "自架多信箱 OTP 收件與擷取平台",
          "en": "A self-hosted multi-inbox OTP receiving and extraction platform"
        },
        "problem": {
          "zh-tw": "解決測試帳號驗證碼分散在信箱，難以分類、擷取與通知的問題",
          "en": "Solves the problem of OTPs being scattered across inboxes and difficult to classify extract and notify"
        },
        "audience": {
          "zh-tw": [
            "需要管理測試信箱的人",
            "自動化測試與帳號管理者"
          ],
          "en": [
            "People managing test inboxes",
            "automation testers and account operators"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "多信箱管理",
            "AI 分類與擷取",
            "D1 儲存",
            "Bark 通知與 Remote MCP"
          ],
          "en": [
            "Multi-inbox management",
            "AI classification and extraction",
            "D1 storage",
            "Bark notifications and Remote MCP"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "D1",
            "Email Worker",
            "AI provider",
            "Bark 或其他通知服務"
          ],
          "en": [
            "Cloudflare Workers",
            "D1",
            "an Email Worker",
            "an AI provider and Bark or another notification service"
          ]
        },
        "limitations": {
          "zh-tw": [
            "OTP 與郵件是高敏感資料",
            "AI provider、多人權限與 MCP 必須逐項審查"
          ],
          "en": [
            "OTPs and email are highly sensitive",
            "AI providers multi-user permissions and MCP need review"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "d1",
          "email-routing"
        ],
        "external_services": [
          "AI provider",
          "Bark"
        ]
      },
      "current_stage": {
        "zh-tw": "功能面與外部依賴已整理",
        "尚未完成敏感資料與權限驗證": null,
        "en": "Features and external dependencies are mapped; sensitive-data and permission verification are pending"
      },
      "next_steps": {
        "zh-tw": [
          "畫出 OTP 資料流與保存邊界",
          "測試多人 grant 與撤銷",
          "驗證 AI 不必要資料暴露"
        ],
        "en": [
          "Map OTP data flow and retention boundaries",
          "test multi-user grants and revocation",
          "verify minimal AI data exposure"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/authinbox/"
    },
    {
      "id": "webviso",
      "name": "Webviso",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "yestool/analytics_with_cloudflare",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2024-10-23",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "使用 Workers、D1 與 Hono 的簡易網站分析服務",
          "en": "A simple website analytics service using Workers D1 and Hono"
        },
        "problem": {
          "zh-tw": "解決小型網站需要基本流量資料，又不想導入大型追蹤平台的問題",
          "en": "Solves the need for basic website traffic data without adopting a large tracking platform"
        },
        "audience": {
          "zh-tw": [
            "網站維護者",
            "需要自有分析資料的人"
          ],
          "en": [
            "Website maintainers",
            "people needing owned analytics data"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "收集網站事件",
            "D1 儲存",
            "提供簡易分析介面"
          ],
          "en": [
            "Collect website events",
            "store them in D1",
            "provide a simple analytics view"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "D1",
            "Hono",
            "需建立資料表並設定 binding"
          ],
          "en": [
            "Cloudflare Workers",
            "D1 and Hono",
            "with a database schema and binding"
          ]
        },
        "limitations": {
          "zh-tw": [
            "上游更新較久",
            "事件隱私、聚合與資料刪除需補規格"
          ],
          "en": [
            "The upstream is older",
            "event privacy aggregation and deletion need specification"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "d1"
        ]
      },
      "current_stage": {
        "zh-tw": "部署步驟與基本元件已確認",
        "尚未判斷目前 API 是否適合正式使用": null,
        "en": "Deployment steps and basic components are known; current API suitability is unverified"
      },
      "next_steps": {
        "zh-tw": [
          "核對 schema 與事件格式",
          "補無 cookie 與匿名化邊界",
          "實測查詢與資料刪除"
        ],
        "en": [
          "Confirm schema and event format",
          "define cookie-free and anonymization boundaries",
          "test queries and deletion"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/webviso/"
    },
    {
      "id": "imguu",
      "name": "imgUU",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "yestool/imgUU",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2025-03-13",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 Astro、R2 與 D1 組成的圖片上傳服務",
          "en": "An image upload and hosting service using Astro R2 and D1"
        },
        "problem": {
          "zh-tw": "解決圖片上傳後缺乏自有儲存與管理介面的問題",
          "en": "Solves the lack of owned storage and management after image upload"
        },
        "audience": {
          "zh-tw": [
            "網站作者",
            "需要管理圖片網址的開發者"
          ],
          "en": [
            "Website authors",
            "developers managing image URLs"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "GitHub 登入",
            "R2 圖片儲存",
            "D1 metadata 與 Astro SSR"
          ],
          "en": [
            "GitHub login",
            "R2 image storage",
            "D1 metadata and Astro SSR"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Pages 或 Workers",
            "R2",
            "D1",
            "GitHub OAuth"
          ],
          "en": [
            "Cloudflare Pages or Workers",
            "R2 D1 and GitHub OAuth"
          ]
        },
        "limitations": {
          "zh-tw": [
            "GitHub OAuth 與檔案權限需實測",
            "圖片格式及刪除規則需補齊"
          ],
          "en": [
            "GitHub OAuth and file permissions need testing",
            "image formats and deletion rules need completion"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "pages",
          "workers",
          "r2",
          "d1"
        ],
        "external_services": [
          "GitHub OAuth"
        ]
      },
      "current_stage": {
        "zh-tw": "上游功能與元件角色已整理",
        "尚未完成公開圖片權限驗證": null,
        "en": "Upstream features and component roles are mapped; public image permission verification is pending"
      },
      "next_steps": {
        "zh-tw": [
          "確認 OAuth 身份與 ownership",
          "實測 R2 上傳及刪除",
          "補熱連結與濫用限制"
        ],
        "en": [
          "Confirm OAuth identity and ownership",
          "test R2 upload and deletion",
          "add hotlink and abuse limits"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/imguu/"
    },
    {
      "id": "gins-blog",
      "name": "Gins' Blog",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "IchimaruGin728/Gins-Blog",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2026-05-17",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "結合 Astro、D1、R2、KV 與 Hono 的部落格專案",
          "en": "A blog project combining Astro D1 R2 KV and Hono"
        },
        "problem": {
          "zh-tw": "解決個人內容需要自有發布、圖片儲存與 AI 搜尋入口的問題",
          "en": "Solves the need for owned publishing image storage and AI search for personal content"
        },
        "audience": {
          "zh-tw": [
            "個人作者",
            "需要自架內容站的人"
          ],
          "en": [
            "Individual authors",
            "people needing a self-hosted content site"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "文章發布",
            "OAuth",
            "圖片儲存",
            "AI 搜尋與 MCP／Agent 引導"
          ],
          "en": [
            "Article publishing",
            "OAuth",
            "image storage",
            "AI search and MCP or agent guidance"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "D1",
            "R2",
            "KV",
            "Hono",
            "OAuth provider"
          ],
          "en": [
            "Cloudflare Workers",
            "D1",
            "R2 KV Hono and an OAuth provider"
          ]
        },
        "limitations": {
          "zh-tw": [
            "元件較多",
            "AI 搜尋與內容索引的資料邊界需驗證"
          ],
          "en": [
            "It has several components",
            "AI search and content-index boundaries need verification"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "d1",
          "r2",
          "kv"
        ],
        "external_services": [
          "OAuth provider"
        ]
      },
      "current_stage": {
        "zh-tw": "內容站與 AI 能力已完成初步定位",
        "尚未拆出最小可部署範圍": null,
        "en": "The content site and AI capabilities are mapped; a minimal deployable scope is not yet separated"
      },
      "next_steps": {
        "zh-tw": [
          "拆分最小部落格版本",
          "驗證 D1 R2 KV 資料流",
          "再評估 AI 搜尋與 MCP"
        ],
        "en": [
          "Separate a minimal blog version",
          "verify D1 R2 KV flows",
          "then assess AI search and MCP"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/gins-blog/"
    },
    {
      "id": "cf-files-sharing",
      "name": "CloudFlare File Share",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "joyance-professional/cf-files-sharing",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2025-01-01",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 Workers、R2 與 D1 提供檔案分享的服務",
          "en": "A file-sharing service using Workers R2 and D1"
        },
        "problem": {
          "zh-tw": "解決需要自有檔案儲存與受控分享連結的問題",
          "en": "Solves the need for owned file storage and controlled sharing links"
        },
        "audience": {
          "zh-tw": [
            "需要分享檔案的小型團隊",
            "個人網站維護者"
          ],
          "en": [
            "Small teams sharing files",
            "personal website maintainers"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "上傳與下載",
            "R2 保存大型檔案",
            "D1 metadata",
            "密碼與 cookie 權限"
          ],
          "en": [
            "Upload and download",
            "R2 storage for large files",
            "D1 metadata",
            "password and cookie access"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "R2",
            "D1",
            "管理者密碼設定"
          ],
          "en": [
            "Cloudflare Workers",
            "R2 D1 and an administrator password"
          ]
        },
        "limitations": {
          "zh-tw": [
            "分享連結撤銷與密碼策略需測試",
            "上游維護狀態需再確認"
          ],
          "en": [
            "Share-link revocation and password policy need testing",
            "upstream maintenance needs rechecking"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "r2",
          "d1"
        ]
      },
      "current_stage": {
        "zh-tw": "檔案層與 metadata 層已辨識",
        "尚未完成權限與刪除驗收": null,
        "en": "File and metadata layers are identified; permission and deletion acceptance are pending"
      },
      "next_steps": {
        "zh-tw": [
          "驗證大檔案路徑",
          "測試分享連結撤銷",
          "補資源歸零與資料刪除證據"
        ],
        "en": [
          "Verify the large-file path",
          "test share-link revocation",
          "add zero-resource and deletion evidence"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/cf-files-sharing/"
    },
    {
      "id": "d1-manager",
      "name": "D1 Manager",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "JacobLinCool/d1-manager",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2026-08-26",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "管理多個 Cloudflare D1 資料庫的 Pages／SvelteKit 工具",
          "en": "A Pages and SvelteKit tool for managing multiple Cloudflare D1 databases"
        },
        "problem": {
          "zh-tw": "解決管理 D1 schema、資料與 SQL 時需要反覆切換命令列的問題",
          "en": "Solves the need to switch repeatedly to the command line to manage D1 schemas data and SQL"
        },
        "audience": {
          "zh-tw": [
            "管理多個 D1 的開發者",
            "需要簡易資料管理介面的團隊"
          ],
          "en": [
            "Developers managing multiple D1 databases",
            "teams needing a simple data console"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "查看資料表與 schema",
            "執行 SQL",
            "編輯資料",
            "連接多個 D1",
            "選配語意查詢"
          ],
          "en": [
            "Inspect tables and schemas",
            "run SQL",
            "edit data",
            "connect multiple D1 databases",
            "optional semantic queries"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Pages",
            "D1 bindings",
            "建議 Cloudflare Access",
            "選配 OpenAI 或 Workers AI"
          ],
          "en": [
            "Cloudflare Pages",
            "D1 bindings",
            "recommended Cloudflare Access",
            "optional OpenAI or Workers AI"
          ]
        },
        "limitations": {
          "zh-tw": [
            "具備高權限資料操作能力",
            "必須先設定 Access 與最小權限"
          ],
          "en": [
            "It can perform high-privilege data operations",
            "Access and least privilege must be configured first"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "pages",
          "workers",
          "d1",
          "workers-ai"
        ],
        "external_services": [
          "Cloudflare Access",
          "OpenAI (optional)"
        ]
      },
      "current_stage": {
        "zh-tw": "產品用途與部署步驟清楚",
        "尚未完成管理者權限與誤操作防護驗證": null,
        "en": "Product purpose and deployment steps are clear; admin permissions and destructive-action safeguards are unverified"
      },
      "next_steps": {
        "zh-tw": [
          "建立 Access 與角色模型",
          "測試 SQL 權限與 audit 邊界",
          "驗證 D1 binding teardown"
        ],
        "en": [
          "Define Access and roles",
          "test SQL permissions and audit boundaries",
          "verify D1 binding teardown"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/d1-manager/"
    },
    {
      "id": "zerolink",
      "name": "ZeroLink",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "yclgkd/zerolink",
        "license": "AGPL-3.0",
        "default_branch": "main",
        "last_push": "2026-08-09",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以零知識設計分享敏感內容的加密 Worker",
          "en": "An encrypted Worker for sharing sensitive content with a zero-knowledge design"
        },
        "problem": {
          "zh-tw": "解決分享密碼或秘密時不希望伺服器看到明文的問題",
          "en": "Solves the need to share secrets without exposing plaintext to the server"
        },
        "audience": {
          "zh-tw": [
            "需要分享敏感內容的人",
            "重視端到端加密的團隊"
          ],
          "en": [
            "People sharing sensitive content",
            "teams requiring end-to-end encryption"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "加密分享",
            "URL fragment 鎖定",
            "WebAuthn Passkey",
            "一次性或受控存取"
          ],
          "en": [
            "Encrypted sharing",
            "URL-fragment locking",
            "WebAuthn passkeys",
            "one-time or controlled access"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Worker",
            "WebAuthn 相容網域",
            "需驗證瀏覽器與金鑰流程"
          ],
          "en": [
            "A Cloudflare Worker",
            "a WebAuthn-compatible domain",
            "browser and key-flow verification"
          ]
        },
        "limitations": {
          "zh-tw": [
            "安全性主張必須靠獨立測試支持",
            "AGPL-3.0 與瀏覽器相容性需納入審查"
          ],
          "en": [
            "Security claims need independent testing",
            "AGPL-3.0 and browser compatibility need review"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers"
        ],
        "external_services": [
          "WebAuthn"
        ]
      },
      "current_stage": {
        "zh-tw": "產品安全模型與功能名稱已整理",
        "尚未進行 SmallGreen 安全驗證": null,
        "en": "Product security model and features are mapped; SmallGreen security verification has not started"
      },
      "next_steps": {
        "zh-tw": [
          "核對密鑰是否離開瀏覽器",
          "測試分享生命週期與撤銷",
          "進行安全與瀏覽器相容性 review"
        ],
        "en": [
          "Confirm keys never leave the browser",
          "test sharing lifecycle and revocation",
          "perform security and browser-compatibility review"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/zerolink/"
    },
    {
      "id": "statusflare",
      "name": "Statusflare",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "krzko/statusflare",
        "license": "Apache-2.0",
        "default_branch": "main",
        "last_push": "2025-12-15",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 Workers、D1 與 R2 組成的監測與狀態頁平台",
          "en": "A monitoring and status-page platform using Workers D1 and R2"
        },
        "problem": {
          "zh-tw": "解決服務需要監測、事件頁、SLO 與公開 API 的問題",
          "en": "Solves the need for monitoring incident pages SLOs and a public API"
        },
        "audience": {
          "zh-tw": [
            "維護網路服務的人",
            "需要公開事件紀錄的團隊"
          ],
          "en": [
            "People maintaining network services",
            "teams publishing incident records"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "排程監測",
            "事件與 SLO",
            "R2 快取頁面",
            "通知、RSS 與 API"
          ],
          "en": [
            "Scheduled monitoring",
            "incidents and SLOs",
            "R2-cached pages",
            "notifications RSS and API"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "D1",
            "R2",
            "Cron；Hyperdrive 為選配"
          ],
          "en": [
            "Cloudflare Workers",
            "D1 R2 and Cron; Hyperdrive is optional"
          ]
        },
        "limitations": {
          "zh-tw": [
            "多元監測與通知設定需較完整維運",
            "目前維護狀態與資源成本需實測"
          ],
          "en": [
            "The varied monitoring and notification setup needs more operations work",
            "maintenance and resource cost need testing"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "d1",
          "r2",
          "cron"
        ],
        "external_services": [
          "Hyperdrive (optional)",
          "notification webhooks"
        ]
      },
      "current_stage": {
        "zh-tw": "架構功能與資料層已整理",
        "尚未完成最小服務範圍與監測驗收": null,
        "en": "Architecture features and data layers are mapped; minimal scope and monitoring acceptance are pending"
      },
      "next_steps": {
        "zh-tw": [
          "確認排程與通知資料流",
          "測試事件建立與關閉",
          "量測長期保存與 teardown"
        ],
        "en": [
          "Confirm scheduled and notification flows",
          "test incident open and close",
          "measure retention and teardown"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/statusflare/"
    },
    {
      "id": "llmkit",
      "name": "LLMKit",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "smigolsmigol/llmkit",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2026-08-16",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "具備預算控管與證據記錄的 AI Gateway／SDK",
          "en": "An AI gateway and SDK with budget controls and request evidence"
        },
        "problem": {
          "zh-tw": "解決 AI provider 成本、路由與請求證據分散，難以在送出前控管的問題",
          "en": "Solves the lack of pre-dispatch control over AI provider cost routing and request evidence"
        },
        "audience": {
          "zh-tw": [
            "使用多 AI provider 的開發者",
            "需要成本與稽核邊界的團隊"
          ],
          "en": [
            "Developers using multiple AI providers",
            "teams needing cost and audit boundaries"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "預估費用與 budget admission",
            "provider gateway",
            "成本歸屬",
            "請求證據與 MCP tools"
          ],
          "en": [
            "Estimated-cost budget admission",
            "provider gateway",
            "cost attribution",
            "request evidence and MCP tools"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Worker 與資料層",
            "AI provider 憑證",
            "需先定義成本與敏感資料策略"
          ],
          "en": [
            "A Cloudflare Worker and data layer",
            "AI provider credentials",
            "cost and sensitive-data policy"
          ]
        },
        "limitations": {
          "zh-tw": [
            "仍屬高敏感的 AI 基礎元件",
            "budget 計算與 provider 行為需獨立驗證"
          ],
          "en": [
            "It is a sensitive AI infrastructure component",
            "budget calculations and provider behavior need independent verification"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "d1",
          "kv",
          "workers-ai"
        ],
        "external_services": [
          "AI providers",
          "MCP clients"
        ]
      },
      "current_stage": {
        "zh-tw": "核心產品主張與安全方向已整理",
        "尚未完成最小部署與成本 oracle 驗證": null,
        "en": "Core product claims and security direction are mapped; minimal deployment and cost-oracle verification are pending"
      },
      "next_steps": {
        "zh-tw": [
          "固定最小 provider 集合",
          "建立預估與實際費用對照",
          "驗證拒絕請求與 evidence 完整性"
        ],
        "en": [
          "Fix a minimal provider set",
          "compare estimated and actual cost",
          "verify rejection and evidence completeness"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/llmkit/"
    },
    {
      "id": "prism",
      "name": "Prism",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "skyphusion-labs/prism",
        "license": "AGPL-3.0",
        "default_branch": "main",
        "last_push": "2026-08-26",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "單一 Cloudflare Worker 的多模態 AI playground",
          "en": "A multimodal AI playground running as a single Cloudflare Worker"
        },
        "problem": {
          "zh-tw": "解決多種 AI 模態、RAG 與模型服務需要多套介面與後端的問題",
          "en": "Solves the need to assemble separate interfaces and backends for multimodal AI RAG and model services"
        },
        "audience": {
          "zh-tw": [
            "想自架 AI playground 的開發者",
            "需要測試多模態流程的人"
          ],
          "en": [
            "Developers self-hosting an AI playground",
            "people testing multimodal flows"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "文字圖片影音與語音",
            "RAG 與 web search",
            "D1 歷史",
            "R2 artifacts",
            "Vectorize 與 workflow"
          ],
          "en": [
            "Text image video voice and music",
            "RAG and web search",
            "D1 history",
            "R2 artifacts",
            "Vectorize and workflows"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "D1",
            "R2",
            "Vectorize",
            "Workers AI 或外部模型",
            "需設定 AI Gateway 與使用者登入"
          ],
          "en": [
            "Cloudflare Workers",
            "D1 R2 Vectorize",
            "Workers AI or external models",
            "AI Gateway and user authentication"
          ]
        },
        "limitations": {
          "zh-tw": [
            "範圍與元件遠超小型服務",
            "多使用者、模型成本與資料安全需拆分驗證"
          ],
          "en": [
            "Its scope and components exceed a small service",
            "multi-user model cost and data security need separate verification"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers",
          "d1",
          "r2",
          "vectorize",
          "durable-objects",
          "workers-ai"
        ],
        "external_services": [
          "AI Gateway",
          "external model providers",
          "web search"
        ]
      },
      "current_stage": {
        "zh-tw": "功能版與複合架構已確認",
        "暫列研究案例不進單一服務上架": null,
        "en": "The feature build and composite architecture are confirmed; it remains research-only rather than a single-service entry"
      },
      "next_steps": {
        "zh-tw": [
          "拆分最小單模態版本",
          "先完成資料與成本邊界",
          "保留複合應用到後續 showcase"
        ],
        "en": [
          "Extract a minimal single-modality version",
          "establish data and cost boundaries first",
          "reserve composite work for a later showcase"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/prism/"
    },
    {
      "id": "beam",
      "name": "Beam",
      "axis": "cloudflare-native",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "scobb/beam",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2026-06-16",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "cookie-free 的隱私取向網站分析服務",
          "en": "A privacy-oriented cookie-free website analytics service"
        },
        "problem": {
          "zh-tw": "解決網站需要基本分析又不希望導入 cookie 與個人追蹤的問題",
          "en": "Solves the need for basic website analytics without cookies and personal tracking"
        },
        "audience": {
          "zh-tw": [
            "網站作者",
            "重視隱私的產品團隊"
          ],
          "en": [
            "Website authors",
            "privacy-conscious product teams"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "輕量追蹤腳本",
            "分析 dashboard",
            "自有網域與 email 報告"
          ],
          "en": [
            "A lightweight script",
            "an analytics dashboard",
            "custom domains and email reports"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Cloudflare Workers",
            "自有網域",
            "郵件與付款服務為選配"
          ],
          "en": [
            "Cloudflare Workers",
            "a custom domain",
            "optional email and payment services"
          ]
        },
        "limitations": {
          "zh-tw": [
            "商業化功能與外部付款會增加範圍",
            "目前尚未核對完整部署與資源需求"
          ],
          "en": [
            "Commercial and payment features expand scope",
            "complete deployment and resource needs are unverified"
          ]
        }
      },
      "architecture": {
        "cloudflare": [
          "workers"
        ],
        "external_services": [
          "Email provider",
          "Stripe (optional)"
        ]
      },
      "current_stage": {
        "zh-tw": "產品定位與隱私方向已整理",
        "尚未完成開源部署路徑驗證": null,
        "en": "Product positioning and privacy direction are mapped; the open deployment path is unverified"
      },
      "next_steps": {
        "zh-tw": [
          "確認目前可部署功能範圍",
          "補事件匿名化與刪除規則",
          "再評估是否進入正式卡片"
        ],
        "en": [
          "Confirm the currently deployable scope",
          "define event anonymization and deletion",
          "then assess catalogue entry"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/beam/"
    },
    {
      "id": "upptime",
      "name": "Upptime",
      "axis": "github-runtime",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "upptime/upptime",
        "license": "MIT",
        "default_branch": "master",
        "last_push": "2026-08-26",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "把 GitHub Actions、Issues 與 Pages 組成的開源狀態監測服務",
          "en": "An open status-monitoring service built from GitHub Actions Issues and Pages"
        },
        "problem": {
          "zh-tw": "解決小型服務需要排程監測、歷史資料與公開狀態頁的問題",
          "en": "Solves the need for scheduled checks history and a public status page for small services"
        },
        "audience": {
          "zh-tw": [
            "GitHub 使用者",
            "需要公開狀態頁的專案維護者"
          ],
          "en": [
            "GitHub users",
            "project maintainers needing a public status page"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "排程檢查",
            "把 response data 寫回 repo",
            "自動開關 Issue",
            "Svelte 狀態頁"
          ],
          "en": [
            "Scheduled checks",
            "commit response data to the repo",
            "open and close Issues",
            "a Svelte status page"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "GitHub repository",
            "GitHub Actions",
            "GitHub Pages",
            "repository secrets 與權限設定"
          ],
          "en": [
            "A GitHub repository",
            "GitHub Actions",
            "GitHub Pages",
            "repository secrets and permissions"
          ]
        },
        "limitations": {
          "zh-tw": [
            "資料與權限集中在 GitHub",
            "Actions 額度與公開 repo 政策需納入"
          ],
          "en": [
            "Data and permissions are concentrated in GitHub",
            "Actions quotas and public-repository policy apply"
          ]
        }
      },
      "architecture": {
        "github": [
          "actions",
          "pages",
          "repository",
          "issues"
        ]
      },
      "current_stage": {
        "zh-tw": "GitHub 作為執行、資料與發布層的模式已確認",
        "尚未完成 SmallGreen 部署契約": null,
        "en": "GitHub as runtime data store and publishing layer is clear; the SmallGreen deployment contract is pending"
      },
      "next_steps": {
        "zh-tw": [
          "固定 repository 權限模型",
          "驗證排程與 Issue 狀態機",
          "完成 repo teardown 與資料保留說明"
        ],
        "en": [
          "Fix repository permissions",
          "verify scheduled checks and the Issue state machine",
          "document repo teardown and retention"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/upptime/"
    },
    {
      "id": "metrics",
      "name": "Metrics",
      "axis": "github-runtime",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "lowlighter/metrics",
        "license": "MIT",
        "default_branch": "master",
        "last_push": "2026-05-29",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "由 GitHub Actions 產生個人或組織資訊圖的自動化工具",
          "en": "An automation tool that generates profile infographics with GitHub Actions"
        },
        "problem": {
          "zh-tw": "解決 GitHub 活動與個人頁面資訊需要手動整理更新的問題",
          "en": "Solves the manual work of collecting and updating GitHub activity on profile pages"
        },
        "audience": {
          "zh-tw": [
            "GitHub 使用者",
            "需要自動更新個人頁的人"
          ],
          "en": [
            "GitHub users",
            "people automating profile pages"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "多種資料 plugin",
            "輸出 SVG、Markdown、PDF 與 JSON",
            "排程更新"
          ],
          "en": [
            "Many data plugins",
            "SVG Markdown PDF and JSON output",
            "scheduled updates"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "GitHub repository",
            "Actions workflow",
            "GitHub token 與各 plugin 的外部憑證"
          ],
          "en": [
            "A GitHub repository",
            "an Actions workflow",
            "a GitHub token and plugin-specific credentials"
          ]
        },
        "limitations": {
          "zh-tw": [
            "plugin 範圍大且外部 API 多",
            "token 權限與失敗通知需明確設定"
          ],
          "en": [
            "The plugin surface and external APIs are broad",
            "token scopes and failure alerts need explicit setup"
          ]
        }
      },
      "architecture": {
        "github": [
          "actions",
          "repository"
        ],
        "external_services": [
          "GitHub API",
          "optional provider APIs"
        ]
      },
      "current_stage": {
        "zh-tw": "產品形狀與輸出類型已整理",
        "尚未縮小成可驗證的最小 plugin 組合": null,
        "en": "Product shape and outputs are mapped; a minimal verifiable plugin set is not selected"
      },
      "next_steps": {
        "zh-tw": [
          "選定最小 plugin 集合",
          "驗證 token 最小權限",
          "補 Actions 失敗與資料清除流程"
        ],
        "en": [
          "Choose a minimal plugin set",
          "verify least-privilege tokens",
          "add Actions failure and data-cleanup flows"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/metrics/"
    },
    {
      "id": "giscus",
      "name": "giscus",
      "axis": "github-runtime",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "giscus/giscus",
        "license": "MIT",
        "default_branch": "main",
        "last_push": "2026-05-26",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "使用 GitHub Discussions 作為資料層的網站留言元件",
          "en": "A website comment component using GitHub Discussions as its data layer"
        },
        "problem": {
          "zh-tw": "解決網站留言需要另建資料庫、登入與管理後台的問題",
          "en": "Solves the need to build a separate database login and moderation backend for website comments"
        },
        "audience": {
          "zh-tw": [
            "有 GitHub repo 的網站作者",
            "需要低維運留言的團隊"
          ],
          "en": [
            "Website authors with a GitHub repo",
            "teams needing low-operations comments"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "Discussion 留言",
            "GitHub OAuth",
            "依頁面映射討論",
            "不含廣告與追蹤"
          ],
          "en": [
            "Discussion comments",
            "GitHub OAuth",
            "page-to-discussion mapping",
            "no ads or tracking"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "GitHub repository 與 Discussions",
            "GitHub App 設定",
            "網站嵌入元件"
          ],
          "en": [
            "A GitHub repository with Discussions",
            "GitHub App configuration and a website embed"
          ]
        },
        "limitations": {
          "zh-tw": [
            "留言資料與權限依賴 GitHub",
            "社群與 moderation 規則需自行管理"
          ],
          "en": [
            "Comments and permissions depend on GitHub",
            "community and moderation rules are yours to manage"
          ]
        }
      },
      "architecture": {
        "github": [
          "discussions",
          "api"
        ],
        "external_services": [
          "GitHub OAuth"
        ]
      },
      "current_stage": {
        "zh-tw": "資料層與使用方式清楚",
        "尚未驗證 SmallGreen 網站的留言權限邊界": null,
        "en": "Data layer and usage are clear; comment permissions on a SmallGreen site are unverified"
      },
      "next_steps": {
        "zh-tw": [
          "確認 repo 與 Discussion category",
          "測試頁面映射與刪除",
          "補 OAuth 與 moderation 說明"
        ],
        "en": [
          "Confirm repo and Discussion category",
          "test mapping and deletion",
          "document OAuth and moderation"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/giscus/"
    },
    {
      "id": "picx",
      "name": "PicX",
      "axis": "github-runtime",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "XPoet/picx",
        "license": "AGPL-3.0",
        "default_branch": "master",
        "last_push": "2025-02-26",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 GitHub API 與 repository 作為圖片儲存的圖床工具",
          "en": "An image host using the GitHub API and a repository for image storage"
        },
        "problem": {
          "zh-tw": "解決個人網站需要圖片上傳介面而不想維護獨立物件儲存的問題",
          "en": "Solves the need for an upload interface without maintaining separate object storage"
        },
        "audience": {
          "zh-tw": [
            "部落格作者",
            "使用 GitHub 的開發者"
          ],
          "en": [
            "Blog authors",
            "developers using GitHub"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "GitHub OAuth",
            "圖片上傳",
            "repository／branch 管理",
            "圖片網址生成"
          ],
          "en": [
            "GitHub OAuth",
            "image upload",
            "repository and branch management",
            "image URL generation"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "靜態網站 hosting",
            "GitHub OAuth",
            "具備寫入權限的 GitHub token"
          ],
          "en": [
            "Static hosting",
            "GitHub OAuth and a GitHub token with write access"
          ]
        },
        "limitations": {
          "zh-tw": [
            "圖片直接進 Git repository",
            "儲存量與 token 權限不適合所有場景",
            "授權為 AGPL-3.0"
          ],
          "en": [
            "Images go into a Git repository",
            "storage and token permissions do not fit every case",
            "license is AGPL-3.0"
          ]
        }
      },
      "architecture": {
        "github": [
          "api",
          "repository"
        ]
      },
      "current_stage": {
        "zh-tw": "GitHub 作為圖片資料層的模式已確認",
        "尚未驗證 repository 權限與檔案刪除": null,
        "en": "GitHub as the image data layer is clear; repository permissions and deletion are unverified"
      },
      "next_steps": {
        "zh-tw": [
          "測試 OAuth 與 repository grant",
          "量測圖片與歷史檔案成長",
          "補刪除與 rate limit 說明"
        ],
        "en": [
          "Test OAuth and repository grants",
          "measure image and history growth",
          "document deletion and rate limits"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/picx/"
    },
    {
      "id": "running-page",
      "name": "running_page",
      "axis": "github-runtime",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "yihong0618/running_page",
        "license": "MIT",
        "default_branch": "master",
        "last_push": "2026-07-16",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "整合運動資料的個人跑步首頁",
          "en": "A personal running homepage that presents activity data"
        },
        "problem": {
          "zh-tw": "解決跑步紀錄分散在 Garmin、Strava 等服務，無法集中展示的問題",
          "en": "Solves the fragmentation of running records across Garmin Strava and similar services"
        },
        "audience": {
          "zh-tw": [
            "跑者",
            "想自架運動資料頁的人"
          ],
          "en": [
            "Runners",
            "people self-hosting an activity page"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "跑步活動展示",
            "地圖與統計",
            "靜態頁發布"
          ],
          "en": [
            "Running activity display",
            "maps and statistics",
            "static-page publishing"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "GitHub 或其他 hosting",
            "Garmin／Strava 等帳號與 secret",
            "地圖服務設定"
          ],
          "en": [
            "GitHub or another host",
            "Garmin or Strava accounts and secrets",
            "map-service configuration"
          ]
        },
        "limitations": {
          "zh-tw": [
            "外部運動與地圖服務依賴高",
            "secret 與個人位置資料需要額外保護"
          ],
          "en": [
            "It depends heavily on activity and map services",
            "secrets and location data need extra protection"
          ]
        }
      },
      "architecture": {
        "github": [
          "actions",
          "pages",
          "repository"
        ],
        "external_services": [
          "Garmin",
          "Strava",
          "Mapbox or MapCN"
        ]
      },
      "current_stage": {
        "zh-tw": "個人展示場景已整理",
        "尚未確認純 GitHub runtime 的最小部署路徑": null,
        "en": "The personal-display use case is mapped; a minimal GitHub-runtime path is unconfirmed"
      },
      "next_steps": {
        "zh-tw": [
          "拆出不含敏感資料的 demo",
          "確認 provider API 與 secret 邊界",
          "再評估是否適合單一服務卡"
        ],
        "en": [
          "Extract a non-sensitive demo",
          "confirm provider APIs and secret boundaries",
          "then assess a single service card"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/running-page/"
    },
    {
      "id": "blog-post-workflow",
      "name": "Blog Post Workflow",
      "axis": "github-runtime",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "gautamkrishnar/blog-post-workflow",
        "license": "AGPL-3.0",
        "default_branch": "master",
        "last_push": "2026-08-10",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 GitHub Actions 從 RSS 更新 README 的內容同步工作流",
          "en": "A GitHub Actions workflow that updates a README from RSS feeds"
        },
        "problem": {
          "zh-tw": "解決個人頁面需要定期手動同步文章、影片或 Stack Overflow 內容的問題",
          "en": "Solves the manual work of syncing articles videos or Stack Overflow content to a profile"
        },
        "audience": {
          "zh-tw": [
            "使用 GitHub profile 的作者",
            "需要自動更新內容的人"
          ],
          "en": [
            "GitHub-profile authors",
            "people automating content updates"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "排程讀取 RSS",
            "更新 README",
            "支援文章、影片與 Stack Overflow feed"
          ],
          "en": [
            "Scheduled RSS reads",
            "README updates",
            "support for article video and Stack Overflow feeds"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "GitHub repository",
            "Actions workflow",
            "contents:write 權限",
            "RSS sources"
          ],
          "en": [
            "A GitHub repository",
            "an Actions workflow",
            "contents:write permission and RSS sources"
          ]
        },
        "limitations": {
          "zh-tw": [
            "需要寫入 repository",
            "RSS 格式與來源變動會影響結果",
            "授權為 AGPL-3.0"
          ],
          "en": [
            "It needs repository write access",
            "RSS changes affect results",
            "license is AGPL-3.0"
          ]
        }
      },
      "architecture": {
        "github": [
          "actions",
          "repository",
          "rss"
        ]
      },
      "current_stage": {
        "zh-tw": "工作流邊界清楚",
        "尚未完成 RSS 失敗與寫入權限的證據設計": null,
        "en": "Workflow boundaries are clear; RSS failure and write-permission evidence are pending"
      },
      "next_steps": {
        "zh-tw": [
          "建立最小 feed fixture",
          "驗證 contents:write 最小權限",
          "補失敗通知與回滾策略"
        ],
        "en": [
          "Create a minimal feed fixture",
          "verify least-privilege contents:write",
          "add failure alerts and rollback"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/blog-post-workflow/"
    },
    {
      "id": "shot-scraper",
      "name": "shot-scraper",
      "axis": "github-runtime",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "simonw/shot-scraper",
        "license": "Apache-2.0",
        "default_branch": "main",
        "last_push": "2026-07-12",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 CLI 與瀏覽器自動化擷取網頁截圖或資料的工具",
          "en": "A CLI and browser-automation tool for screenshots and web extraction"
        },
        "problem": {
          "zh-tw": "解決網頁截圖、簡單擷取與定期產出需要自行維護瀏覽器流程的問題",
          "en": "Solves the need to maintain browser flows for screenshots simple extraction and scheduled outputs"
        },
        "audience": {
          "zh-tw": [
            "文件與內容維護者",
            "需要網頁快照的開發者"
          ],
          "en": [
            "Documentation and content maintainers",
            "developers needing web snapshots"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "截圖",
            "JavaScript 擷取",
            "影片與批次執行",
            "GitHub Actions template"
          ],
          "en": [
            "Screenshots",
            "JavaScript extraction",
            "video and batch execution",
            "a GitHub Actions template"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Python CLI",
            "Chromium 環境",
            "GitHub Actions 或其他 runner"
          ],
          "en": [
            "The Python CLI",
            "a Chromium environment",
            "GitHub Actions or another runner"
          ]
        },
        "limitations": {
          "zh-tw": [
            "瀏覽器資源與第三方網站變動會影響結果",
            "輸出檔案可能快速累積"
          ],
          "en": [
            "Browser resources and third-party changes affect results",
            "output files may accumulate quickly"
          ]
        }
      },
      "architecture": {
        "github": [
          "actions",
          "workflow-artifacts"
        ],
        "external_services": [
          "Target websites"
        ]
      },
      "current_stage": {
        "zh-tw": "工具能力與 Actions 路徑已整理",
        "尚未驗證 Cloudflare／GitHub 的小型部署邊界": null,
        "en": "Tool capabilities and the Actions path are mapped; the small Cloudflare or GitHub deployment boundary is unverified"
      },
      "next_steps": {
        "zh-tw": [
          "定義固定目標網站 fixture",
          "測量 runner 與 artifact 成本",
          "補失敗與 robots 政策說明"
        ],
        "en": [
          "Define fixed target-site fixtures",
          "measure runner and artifact cost",
          "document failure and robots policy"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/shot-scraper/"
    },
    {
      "id": "gitblog",
      "name": "Gitblog",
      "axis": "github-runtime",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "yihong0618/gitblog",
        "license": "MIT",
        "default_branch": "master",
        "last_push": "2026-08-20",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "以 GitHub Issues 與 Actions 作為內容層的個人部落格",
          "en": "A personal blog using GitHub Issues and Actions as its content layer"
        },
        "problem": {
          "zh-tw": "解決個人寫作需要 CMS、資料庫與 hosting 維護的問題",
          "en": "Solves the need to maintain a separate CMS database and hosting for personal writing"
        },
        "audience": {
          "zh-tw": [
            "使用 GitHub 的作者",
            "想把 repo 當內容資料庫的人"
          ],
          "en": [
            "Authors using GitHub",
            "people treating a repo as a content database"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "Issues 文章",
            "Actions 建置",
            "RSS feed",
            "靜態部落格發布"
          ],
          "en": [
            "Issue-based posts",
            "Actions builds",
            "an RSS feed and static blog publishing"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "GitHub repository",
            "Issues",
            "Actions",
            "Pages 或其他靜態 hosting"
          ],
          "en": [
            "A GitHub repository",
            "Issues",
            "Actions and Pages or another static host"
          ]
        },
        "limitations": {
          "zh-tw": [
            "內容與權限綁定 GitHub",
            "Issue API 與 Actions 額度需納入"
          ],
          "en": [
            "Content and permissions are tied to GitHub",
            "Issue API and Actions quotas apply"
          ]
        }
      },
      "architecture": {
        "github": [
          "issues",
          "actions",
          "pages",
          "repository"
        ]
      },
      "current_stage": {
        "zh-tw": "GitHub 作內容資料庫的模式已整理",
        "尚未完成發布與刪除的端到端驗收": null,
        "en": "GitHub as a content database is mapped; end-to-end publishing and deletion acceptance are pending"
      },
      "next_steps": {
        "zh-tw": [
          "固定文章 schema 與狀態",
          "測試 Issue 變更到頁面的流程",
          "補 repo backup 與 teardown"
        ],
        "en": [
          "Fix the post schema and states",
          "test Issue-to-page flow",
          "add repo backup and teardown"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/gitblog/"
    },
    {
      "id": "git-history",
      "name": "Git History",
      "axis": "github-runtime",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "pomber/git-history",
        "license": "MIT",
        "default_branch": "master",
        "last_push": "2024-10-10",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "用瀏覽器呈現 Git repository 檔案歷史的檢視工具",
          "en": "A browser viewer for the history of files in a Git repository"
        },
        "problem": {
          "zh-tw": "解決一般 Git diff 不容易理解長期檔案演變的問題",
          "en": "Solves the difficulty of understanding long-term file evolution from ordinary Git diffs"
        },
        "audience": {
          "zh-tw": [
            "開發者",
            "文件維護者",
            "需要檢視內容演變的人"
          ],
          "en": [
            "Developers",
            "documentation maintainers",
            "people inspecting content evolution"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "檢視檔案歷史",
            "支援 GitHub、GitLab 與 Bitbucket",
            "以 URL 開啟 repository"
          ],
          "en": [
            "View file history",
            "support GitHub GitLab and Bitbucket",
            "open repositories by URL"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "靜態前端與 API／repository 讀取權限",
            "需確認目前 hosting 流程"
          ],
          "en": [
            "A static frontend and repository read access",
            "with the current hosting flow to be confirmed"
          ]
        },
        "limitations": {
          "zh-tw": [
            "上游更新較久",
            "大型 repository 與 API rate limit 需測量"
          ],
          "en": [
            "The upstream is older",
            "large repositories and API rate limits need measurement"
          ]
        }
      },
      "architecture": {
        "github": [
          "api",
          "repository"
        ]
      },
      "current_stage": {
        "zh-tw": "使用情境與資料來源已整理",
        "尚未確認現代 GitHub API 的相容性": null,
        "en": "Use case and data sources are mapped; compatibility with current GitHub APIs is unverified"
      },
      "next_steps": {
        "zh-tw": [
          "確認 API 與 hosting 入口",
          "測試大型檔案歷史",
          "補 rate limit 與快取策略"
        ],
        "en": [
          "Confirm API and hosting entry points",
          "test large file histories",
          "add rate-limit and caching policy"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/git-history/"
    },
    {
      "id": "utterances",
      "name": "utterances",
      "axis": "github-runtime",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中",
        "en": "In research"
      },
      "source": {
        "repository": "utterance/utterances",
        "license": "MIT",
        "default_branch": "master",
        "last_push": "2024-08-15",
        "checked_on": "2026-08-27"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "使用 GitHub Issues 作為資料層的輕量留言元件",
          "en": "A lightweight comment component using GitHub Issues as its data layer"
        },
        "problem": {
          "zh-tw": "解決網站留言需要自建資料庫與管理後台的問題",
          "en": "Solves the need to build a separate database and moderation backend for comments"
        },
        "audience": {
          "zh-tw": [
            "有 GitHub repo 的網站作者",
            "需要簡單留言的內容站"
          ],
          "en": [
            "Website authors with a GitHub repo",
            "content sites needing simple comments"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "Issue 留言",
            "OAuth",
            "頁面映射",
            "不含廣告與追蹤"
          ],
          "en": [
            "Issue comments",
            "OAuth",
            "page mapping",
            "no ads or tracking"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "GitHub repository",
            "Issues",
            "GitHub OAuth App",
            "網站嵌入設定"
          ],
          "en": [
            "A GitHub repository",
            "Issues",
            "a GitHub OAuth App and website embed configuration"
          ]
        },
        "limitations": {
          "zh-tw": [
            "留言權限與 moderation 依賴 GitHub",
            "上游維護較慢需評估"
          ],
          "en": [
            "Comment permissions and moderation depend on GitHub",
            "slower upstream maintenance needs assessment"
          ]
        }
      },
      "architecture": {
        "github": [
          "issues",
          "api"
        ],
        "external_services": [
          "GitHub OAuth"
        ]
      },
      "current_stage": {
        "zh-tw": "產品模式與依賴已整理",
        "尚未完成與 giscus 的選型比較": null,
        "en": "Product model and dependencies are mapped; comparison with giscus is pending"
      },
      "next_steps": {
        "zh-tw": [
          "比較 Issues 與 Discussions 的資料邊界",
          "測試頁面映射與刪除",
          "依維護狀態決定是否保留"
        ],
        "en": [
          "Compare Issues and Discussions boundaries",
          "test mapping and deletion",
          "decide whether to keep it based on maintenance"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/utterances/"
    },
    {
      "id": "foreclosure-map",
      "name": "法拍地圖",
      "axis": "github-runtime",
      "state": "content-research",
      "state_label": {
        "zh-tw": "研究中／待部署驗證",
        "en": "In research / deployment verification pending"
      },
      "source": {
        "repository": "ai-cooperation/foreclosure-map",
        "license": "Apache-2.0",
        "default_branch": "main",
        "last_push": "2026-08-29",
        "checked_on": "2026-08-29"
      },
      "product_summary": {
        "project_type": {
          "zh-tw": "將台灣法院法拍物件整理成可篩選的互動地圖與週期資料管線",
          "en": "An interactive map and weekly data pipeline for Taiwan court-auction properties"
        },
        "problem": {
          "zh-tw": "法拍公告分散在多個法院系統，使用者難以用地理位置與條件快速查找",
          "en": "Court-auction notices are spread across multiple court systems",
          "making geographic and condition-based search difficult": null
        },
        "audience": {
          "zh-tw": [
            "想查詢法拍屋與法拍土地的個人",
            "不動產從業者",
            "不動產市場研究者"
          ],
          "en": [
            "People searching for auctioned homes and land",
            "real-estate professionals",
            "property-market researchers"
          ]
        },
        "capabilities": {
          "zh-tw": [
            "在地圖瀏覽有座標的法拍物件",
            "依物件類型法院縣市拍別與底價篩選",
            "開啟法院公告原文",
            "保留每週資料快照與歷史索引"
          ],
          "en": [
            "Browse geocoded auction properties on a map",
            "filter by type court county auction round and price",
            "open court notices",
            "retain weekly snapshots and a history index"
          ]
        },
        "deployment_requirements": {
          "zh-tw": [
            "Python 3、Playwright 與 Chromium",
            "可執行每週排程的 runner",
            "靜態 hosting 或 GitHub Pages",
            "需先核對法院與地理編碼服務的使用條款"
          ],
          "en": [
            "Python 3",
            "Playwright and Chromium",
            "a runner for weekly scheduling",
            "static hosting or GitHub Pages",
            "and review of court and geocoding service terms"
          ]
        },
        "limitations": {
          "zh-tw": [
            "地理編碼成功率與資料新鮮度會受外部服務與排程影響",
            "公開快照的保存與再散布政策待確認",
            "第三方資料與外部服務不因上游 Apache-2.0 而改變授權",
            "不構成法律估價或投資建議"
          ],
          "en": [
            "Geocoding coverage and freshness depend on external services and scheduling",
            "public snapshot retention and redistribution policies need confirmation",
            "third-party data and external services remain under their own terms despite the upstream Apache-2.0 license",
            "and the tool is not legal valuation or investment advice"
          ]
        }
      },
      "architecture": {
        "github": [
          "repository",
          "pages"
        ],
        "external_services": [
          "司法院法拍公告系統",
          "twland.ronny.tw",
          "國土測繪中心 NLSC",
          "Leaflet CDN",
          "Google tag",
          "optional Telegram",
          "optional SMTP"
        ]
      },
      "current_stage": {
        "zh-tw": "已核對上游公開 repo、GitHub Pages 與 b7345422e2f63e815c4a8e27fefdbcf27e5d81d6；上游已補 Apache-2.0 LICENSE 與 README 邊界說明，但可攜部署契約、資料條款與 SmallGreen 實機驗證尚未完成",
        "en": "The public upstream repository",
        "GitHub Pages site and commit b7345422e2f63e815c4a8e27fefdbcf27e5d81d6 are checked; upstream now includes an Apache-2.0 LICENSE and README boundary disclosure": null,
        "but portable deployment contracts": null,
        "data terms and SmallGreen live verification are incomplete": null
      },
      "next_steps": {
        "zh-tw": [
          "建立不含上游程式的 SmallGreen adapter 並把 runner 路徑改為可設定",
          "核對司法院 twland NLSC 與 CDN 的條款及抓取頻率",
          "用固定 fixture 驗證 scrape geocode build 與重跑冪等",
          "完成真實部署驗收與 teardown 後再評估升級"
        ],
        "en": [
          "Build a SmallGreen adapter without redistributing upstream code and make runner paths configurable",
          "review court twland NLSC and CDN terms and request rates",
          "verify scrape geocode build and rerun idempotency with fixed fixtures",
          "then complete live deployment and teardown before considering promotion"
        ]
      },
      "url": "https://smallgreen-site.pages.dev/services/foreclosure-map/"
    }
  ]
}
