{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Henry 的空间",
  "home_page_url": "https://henry.098555.xyz/",
  "feed_url": "https://henry.098555.xyz/feed.json",
  "description": "Henry 的空间——记录技术、设计、生活与持续进步的笔记。",
  "language": "zh-CN",
  "authors": [
    {
      "name": "Henry"
    }
  ],
  "items": [
    {
      "id": "https://henry.098555.xyz/blog/hefei-last-goodbye/",
      "url": "https://henry.098555.xyz/blog/hefei-last-goodbye/",
      "title": "合肥的最后一面，我把项链留下，也把“以后”收了回来",
      "summary": "我们在一段没有名字的关系里短暂地认真过。去合肥见她最后一面，把话说清楚，也把一条没有未来的项链留在了那里。",
      "date_published": "2026-11-02T00:00:00.000Z",
      "tags": [
        "生活",
        "城市",
        "随笔"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/henrys-room-chapter-three/",
      "url": "https://henry.098555.xyz/blog/henrys-room-chapter-three/",
      "title": "Henry 的空间 · 第三章：从能用到好用，让空间真正活起来",
      "summary": "网站已经能写作、发布和交流，为什么还要继续改？这一章记录一轮被推翻的改版、反复试出来的动效，以及几个看似细小却影响信任的缺口。不是功能清单，而是这个空间寻找自己气质的过程。",
      "date_published": "2026-10-25T00:00:00.000Z",
      "tags": [
        "Henry的空间",
        "项目复盘",
        "交互设计",
        "AI协作"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/henrys-room-chapter-two/",
      "url": "https://henry.098555.xyz/blog/henrys-room-chapter-two/",
      "title": "Henry 的空间 · 第二章：把一个博客，做成可以长期维护的系统",
      "summary": "第一章记录这个空间怎样长大，第二章拆开它的实现：静态页面与动态服务如何分工，网页写作怎样走到真正上线，邮件、数据、性能与私密内容又各自需要守住什么边界。",
      "date_published": "2026-10-25T00:00:00.000Z",
      "tags": [
        "Henry的空间",
        "个人博客",
        "Astro",
        "Cloudflare",
        "工程实践"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/henrys-room-chapter-one/",
      "url": "https://henry.098555.xyz/blog/henrys-room-chapter-one/",
      "title": "Henry 的空间 · 第一章：从一个念头到一个真正的网站",
      "summary": "从想拥有一个自己的博客，到反复打磨、推倒重来，再到愿意认真维护它。第一章只复盘这段真实发生的过程：那些兴奋、不满意、故障、取舍，以及这个空间怎样慢慢有了自己的样子。",
      "date_published": "2026-10-24T00:00:00.000Z",
      "tags": [
        "Henry的空间",
        "项目复盘",
        "个人博客"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/vibe-coding-era/",
      "url": "https://henry.098555.xyz/blog/vibe-coding-era/",
      "title": "Vibe Coding 时代，真正稀缺的是什么",
      "summary": "当自然语言开始直接变成软件，开发门槛降低了，但判断、验证和责任没有消失。聊聊 Vibe Coding 带来的好处、代价，以及工程师角色正在发生的变化。",
      "date_published": "2026-10-22T00:00:00.000Z",
      "tags": [
        "Vibe Coding",
        "AI 编程",
        "Codex",
        "工程判断",
        "开发方式"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/ios-gallery-predecessor/",
      "url": "https://henry.098555.xyz/blog/ios-gallery-predecessor/",
      "title": "那个被放弃的 iOS 风格图库，成了 Henry 媒体库的前传",
      "summary": "从一个部署在 Ubuntu 上的 iOS 风格照片画廊，到后来的 Henry 媒体库：记录功能、失败点、技术选择与开源组件声明。",
      "date_published": "2026-10-19T00:00:00.000Z",
      "tags": [
        "iOS 风格",
        "图库",
        "Henry媒体库",
        "Python",
        "项目复盘"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/ai-api-gateway/",
      "url": "https://henry.098555.xyz/blog/ai-api-gateway/",
      "title": "我搭了一个 AI API 聚合平台，最后决定停下来",
      "summary": "从 New API、Cloudflare、Nginx 到 Codex 与小米 MiMo 的协议兼容问题，记录一次没有按预期收尾的多模型接入实验。",
      "date_published": "2026-10-18T00:00:00.000Z",
      "tags": [
        "AI API",
        "New API",
        "Codex",
        "开源",
        "项目复盘"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/henry-media-library/",
      "url": "https://henry.098555.xyz/blog/henry-media-library/",
      "title": "我给自己写了一个媒体库：几万张照片和视频，为什么最后跑进了浏览器",
      "summary": "一个本地优先的私人媒体库：原生 JavaScript、IndexedDB、Python 单文件后端和 SwiftUI 客户端，如何一起处理海量照片、视频、缩略图与文件夹。",
      "date_published": "2026-10-18T00:00:00.000Z",
      "tags": [
        "Henry媒体库",
        "本地优先",
        "JavaScript",
        "Python",
        "SwiftUI",
        "媒体管理"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/henry-model/",
      "url": "https://henry.098555.xyz/blog/henry-model/",
      "title": "我给自己做了一个模型管家：让 Codex、dsh 和 LM Studio 学会共存",
      "summary": "一个 macOS 原生模型编排工具：如何联动 Codex、DeepSeek Harness、LM Studio 和云端聚合平台，并处理配置、内存、launchd、权限与状态同步。",
      "date_published": "2026-10-18T00:00:00.000Z",
      "tags": [
        "Henry模型管家",
        "macOS",
        "SwiftUI",
        "AI工具",
        "本地模型",
        "Codex"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/sapphire/",
      "url": "https://henry.098555.xyz/blog/sapphire/",
      "title": "我改造了一个 macOS 刘海应用",
      "summary": "基于 Shariq Charolia 的开源项目 Sapphire，记录一次不只是“翻译”的本地化实践：补齐缺失模块、重做字符串体系，以及处理 macOS 签名、权限和产品边界。",
      "date_published": "2026-10-17T00:00:00.000Z",
      "tags": [
        "macOS",
        "Sapphire",
        "开源",
        "汉化",
        "Swift",
        "开发"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/hello-world/",
      "url": "https://henry.098555.xyz/blog/hello-world/",
      "title": "你好，世界：重新开始写作",
      "summary": "为什么我决定在这个快节奏的时代，重新拿起笔，用文字对抗碎片化。",
      "date_published": "2026-09-04T00:00:00.000Z",
      "tags": [
        "随笔",
        "写作",
        "开始"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/design-principles/",
      "url": "https://henry.098555.xyz/blog/design-principles/",
      "title": "极简设计的五个原则",
      "summary": "留白、层次、克制、一致性、聚焦。好的设计往往安静而克制。",
      "date_published": "2026-09-02T00:00:00.000Z",
      "tags": [
        "设计",
        "极简",
        "苹果"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/cloudflare-pages/",
      "url": "https://henry.098555.xyz/blog/cloudflare-pages/",
      "title": "用 Cloudflare 免费搭建个人博客",
      "summary": "一套免费、快速、安全的建站方案：托管、CDN 与 HTTPS 全部搞定。",
      "date_published": "2026-08-28T00:00:00.000Z",
      "tags": [
        "技术",
        "Cloudflare",
        "部署",
        "免费"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/focus/",
      "url": "https://henry.098555.xyz/blog/focus/",
      "title": "深度工作：如何重新掌控注意力",
      "summary": "信息过载的时代，专注力是最稀缺的资源。分享我的方法。",
      "date_published": "2026-08-20T00:00:00.000Z",
      "tags": [
        "效率",
        "专注",
        "生活"
      ]
    },
    {
      "id": "https://henry.098555.xyz/blog/city-walk/",
      "url": "https://henry.098555.xyz/blog/city-walk/",
      "title": "一次说走就走的城市漫游",
      "summary": "没有目的地地走上一整天，也许是最好的休息方式。",
      "date_published": "2026-08-05T00:00:00.000Z",
      "tags": [
        "旅行",
        "城市",
        "生活"
      ]
    }
  ]
}