Sindre Sorhus:一个人,一千多个仓库和六十多款 App
2014 年辞掉办公室工作去东南亚背包旅行顺便写开源,结果旅行结束了,开源一直没停。他创建了 GitHub 上星数最多的仓库之一 Awesome(★52 万),维护着上千个 npm 包,又一个人做了 60 多款精致的 Mac / iOS 小工具,用户超过 600 万。2026 年 10 月,他把个人网站改成了用 Swift 编写。
- 开源
- npm
- Swift / macOS
- TypeScript
- 独立开发
一句话:「Full-Time Open-Sourcerer & App Maker」。不开公司,只靠自己和社区赞助,同时维护 JavaScript 生态里依赖最广的一批基础包,以及一长串「本该是系统自带」的 Mac 小工具。
代表作:Awesome(★522,173)、awesome-nodejs(★6.7 万)、type-fest(★1.7 万)、ky(★1.7 万)、got(★1.5 万)、pure(★1.4 万)、ora、execa、np;App 有 Gifski、Velja、Plash、Dato、Supercharge、Text Lens、Mailway 等。
关键数字:GitHub 粉丝 8.5 万、公开仓库 1,145 个;官网写着 61 款 App、12 年 App 匠龄、600 万以上用户、回复过 1 万多封支持邮件;X 关注者约 6.7 万。
此刻:Now 页面(2026-10-20)写着:在越南旅行,喝着越南咸咖啡,在做一个新的秘密 Mac App,并「试图修复我所有开源项目里的所有 bug(是的,真的)」。
他的 About 页开头只有三句话:「2014 年,我辞掉办公室的工作,去东南亚背包旅行,顺便写开源。背包旅行结束了,开源却一直没有停。」十二年后,这个挪威人成了开源世界里最高产、也最有辨识度的个人维护者之一。
档案速览
Profile
- 身份
- 全职开源维护者、独立 App 开发者,靠社区赞助与 App 收入生活
- 所在地
- 挪威人,常年在东南亚旅居(2026 年 10 月在越南)
- 开源组织
- h5bp、editorconfig、gruntjs、yeoman、tastejs(TodoMVC)、awesome-lists、avajs、babel、xojs、chalk
- 代表作
- Awesome、got、ky、type-fest、pure、ora、execa、np、Gifski、Velja、Supercharge
- 技术栈
- JavaScript / TypeScript(npm 包)、Swift / SwiftUI(Apple 平台 App)
- 关键数字
- 1,145 个公开仓库;GitHub 粉丝 84,982;近一年贡献约 5,700 次
- 发明
- 「ponyfill」这个词
他到底在做什么?
Sindre 的工作有两条线,遵循同一个原则:一个东西只做好一件事。在 npm 上,他写了上千个小而专注的模块(他有一篇博客就叫《Small Focused Modules》),让更大的系统可以像积木一样拼起来。在 Apple 平台上,他做了 60 多款小工具:把视频转成高质量 GIF、选择用哪个浏览器打开链接、在菜单栏放世界时钟、复制屏幕上无法选中的文字……「每一款都只解决一个问题,很多是免费的。」
支撑这一切的是一套很「人」的价值观:他写过《Empathy in Open Source》,提醒大家开源不只是代码,更是人;也写过《Issue Bumping》,解释为什么在旧 issue 下评论「有进展吗?」并没有帮助。
成长与经历
- 童年
挪威、乐高与 Flash
在挪威长大,乐高城市几乎占满整个卧室;九岁做简单网页。课间大家玩 Flash 游戏,他想知道怎么做的,于是反编译、重画角色、加新敌人和排行榜。「我改东西、搞坏、再改回来,直到游戏按我想的那样运行。这仍然是我学习的方式。」
- 二十多岁
真正学会编程
此前只是复制 PHP 和 JavaScript 而不完全理解。通过给 TodoMVC 做贡献进入开源,后来成为它的维护者之一;也参与了 HTML5 Boilerplate、Yeoman、Grunt 等项目。
- 2012
pure
漂亮、极简、快速的 ZSH 提示符,至今 ★1.4 万。
- 2013–2014
Quick Look 清单、got、Awesome
2013 年整理开发者 Quick Look 插件清单;2014 年 3 月开始写 Node.js HTTP 库 got;7 月创建 Awesome:各种有趣主题的精选列表,后来成为 GitHub 上星数最多的仓库之一,衍生出成千上万个 awesome-xxx。同年辞职去东南亚。
- 2015–2016
工具链
np(更好的 npm publish)、execa(给人用的进程执行)、ora(优雅的终端加载动画)、awesome-electron 等相继发布。
- 2018
Gifski 与 ky
与 Kornel Lesiński 合作的 Gifski 把视频转成高质量 GIF;ky 是基于 Fetch 的小巧 HTTP 客户端。
- 2019
type-fest
「一组必不可少的 TypeScript 类型」,如今是 TypeScript 生态的常用依赖之一。
- 2024–2026
App 井喷
2024 年发布 Supercharge、Scratchpad、App Buddy 等;2025 年发布 Default Browser、Shortcutie、Googly Eyes、Text Lens、Simple Color Palette、Short Run、Menu Drop、Zone Bar;2026 年发布 DS_Store Inspector、Imago(Flux 2 文生图)、Mailway。10 月把个人网站重写为 Swift。
代表作品详解
Awesome ↗
「Awesome lists about all kinds of interesting topics.」它不是代码,而是开源世界的「目录」:每个主题一份精选清单,由社区维护,再链接到更多的 awesome-xxx。它定义了一种开源协作的格式,也成为 GitHub 上星数最多的仓库之一。
长期维护一个超级项目的疲惫同样真实:Awesome 的描述里写着「在我有时间处理积压之前,暂时关闭 PR」;awesome-nodejs 写着「因为太多垃圾和低质量提交,暂停接收」;awesome-electron 则直接说「因为我厌倦了审核低质量的东西」。
- GitHub
- ★522,173 · ⑂37,608
- 衍生
- awesome-nodejs ★6.7 万、awesome-electron ★2.7 万
got · ky · execa · type-fest ↗
这几个包几乎出现在每个现代 JavaScript 项目的依赖树里:got(★1.5 万)是「人性化且强大的」Node.js HTTP 库;ky(★1.7 万)是基于 Fetch 的小巧客户端,支持现代浏览器、Node.js、Bun 和 Deno,零依赖;execa(★7.6 千)是「给人用的进程执行」;type-fest(★1.7 万)提供一组 TypeScript 标准库里没有、但人人都需要的类型。
它们的共同点是 API 小而友好、文档详尽、几乎每周都在更新。Now 页面实时显示:这一周他在开源上有 157 次贡献、关闭了 101 个 issue、更新了 14 个 npm 包。
Supercharge ↗
「Elevate your Mac experience.」把一系列「系统本该有」的增强功能装进一个 App。它是 Sindre 目前最主推的作品:GitHub 主页和 Awesome 的 README 顶部都放着它的推荐位。
Gifski ↗
「Convert videos to high-quality GIFs on your Mac.」基于 Kornel Lesiński 的 gifski 编码器,能生成色彩远好于常规工具的 GIF。它也是 Sindre 少数开源的 App 之一(★8.6 千),是学习 SwiftUI Mac App 的好范例。
- GitHub
- ★8,585
最近两年的 App
| App | 年份 | 做什么 |
|---|---|---|
| Mailway | 2026 | 把 mailto 链接交给任意邮件 App 或网页邮箱 |
| Imago | 2026 | 用 Flux 2 从文字生成图像(免费) |
| DS_Store Inspector | 2026 | 查看 .DS_Store 文件的内容(免费) |
| Zone Bar | 2025 | 菜单栏里的世界时钟 |
| Menu Drop | 2025 | 菜单栏里的快速隔空投送(免费) |
| Text Lens | 2025 | 复制屏幕上无法选中的文字 |
| Googly Eyes | 2025 | 菜单栏里一对盯着你鼠标的眼睛 |
| Velja | — | 强大的浏览器选择器 |
| Plash | — | 把网页设成桌面壁纸 |
| Dato | — | 菜单栏日历与时间 |
他还把做 App 时写的基础组件开源成了 Swift 包,比如 KeyboardShortcuts(★2.7 千,几分钟给 macOS App 加上可自定义的全局快捷键,完全沙盒、兼容 Mac App Store)和 Defaults(★2.5 千,现代化的 UserDefaults)。
开源与 GitHub
GitHub 主页 README 是一张故意做旧的 90 年代网页:欢迎动图、打字的猫、独角兽、「施工中」标志、访客计数器、火焰 GIF,以及一句「i love code and unicorns」。简介则写:「Full-Time Open-Sourcerer. Focused on Swift & JavaScript. Makes macOS apps, CLI tools, npm packages.」
| 仓库 | ★ | 年份 | 说明 |
|---|---|---|---|
| awesome | 522,173 | 2014 | 各种主题的精选列表 |
| awesome-nodejs | 67,196 | 2014 | Node.js 包与资源 |
| awesome-electron | 27,324 | 2015 | Electron 资源 |
| quick-look-plugins | 18,788 | 2013 | 开发者 Quick Look 插件 |
| type-fest | 17,458 | 2019 | TypeScript 类型合集 |
| ky | 17,128 | 2018 | 基于 Fetch 的 HTTP 客户端 |
| got | 14,952 | 2014 | Node.js HTTP 库 |
| pure | 14,452 | 2012 | ZSH 提示符 |
| ora | 9,769 | 2016 | 终端加载动画 |
| Gifski | 8,585 | 2018 | 视频转 GIF |
他的开源靠 GitHub Sponsors 和企业赞助支撑:几乎每个热门仓库的 README 顶部都写着「Sindre Sorhus' open source work is supported by the community」,下面列着赞助商。
个人网站研究
首页标题「Full-Time Open-Sourcerer & App Maker」,导航是 Apps、Blog、Now、About、Contact、Donate。App 区可以按全部、免费、付费、Mac、iPhone & iPad、菜单栏筛选,还有「Wall of Love」用户留言墙、「Timeline」时间线(2013 年至今 64 款 App)和一个「Guess the App」小游戏。
Now 页面是一个实时仪表盘:此刻在 GitHub 上提交了什么、你在页面停留期间他的 npm 包被下载了多少次、这周关闭了多少 issue。页脚则写着:「The people who are crazy enough to think they can change the world are the ones who do 🦄」。
| 维度 | 观察 |
|---|---|
| 技术 | 2026 年 10 月起用 Swift 编写:自研的 SiteKit,类 SwiftUI 的组件、用修饰符写样式,编译器会在访客之前发现坏链接 |
| 彩蛋 | 「Visit 1999」入口,用 1999 年的网页风格重做了整个网站 |
| About | 一串关于他的小事:从 90 年代起就用 Tab 缩进、永久深色模式、曾连续编码 43 小时(不推荐) |
| 博客 | 约 67 篇,多为新 App 发布与开源观点 |
写作与观点
- 2026-10-11This Website Is Now Made in Swift
SwiftUI 式组件、修饰符样式,以及一个能在访客之前抓到坏链接的编译器。
- 2024-08-13The Micro-Benchmark Fallacy
「这是个陷阱。」
- —Goodbye, Node.js Buffer
是时候从 Buffer 迁移到 Uint8Array 了。
- —Empathy in Open Source
开源不只是代码,更是人。
- —Issue Bumping
为什么评论「有进展吗?」没有帮助,以及什么时候可以催。
- —Small Focused Modules
做小而专注的模块,才能复用、才能拼出更大的东西。
The apps are small, focused tools that each solve one problem well, and many of them are free.
— sindresorhus.com/about
独角兽无处不在。开源是辛苦的工作,所以也应该有趣。
— Sindre Sorhus,About 页
长处与局限
| 维度 | 长处 | 局限 / 需要留意 |
|---|---|---|
| 开源 | 数量与质量兼具,基础包被整个生态依赖 | 一人维护上千个仓库,积压的 issue 与 PR 难免(他本人也在公开处理) |
| App | 小而专注、原生、很多免费,600 万以上用户 | 大部分 App 闭源,且只面向 Apple 平台 |
| 社区 | 定义了 awesome 列表文化 | 热门列表因低质量提交多次暂停接收 |
| 可持续 | 赞助 + 付费 App 支撑全职开源十二年 | 收入高度依赖个人,存在「巴士因子」风险 |
可以从他身上学什么
- 小而专注:每一个包、每一个 App,都只解决一个问题。
- 边玩边学:改、坏、再改回来,是最原始也最有效的学习方式。
- 把组件也开源:KeyboardShortcuts、Defaults 让别人做 App 更轻松。
- 把乐趣放进工作:独角兽、1999 版网站、猜 App 游戏。
- 一个人也可以很大:不开公司,只靠自己和社区支持。
推荐先看这三个
- sindresorhus.com/apps ↗
挑一款免费的菜单栏小工具装上,感受「本该是系统自带」的手感;顺便玩一局 Guess the App。
- Awesome ↗
任何你想学的主题,都可以从这里找到一份精选清单。
- Empathy in Open Source ↗
想参与开源之前,先读读维护者希望你怎样与他们相处。
去看看 Sindre Sorhus 本人的作品
去 sindresorhus.com 挑一款小工具,然后点一下那个「Visit 1999」。
资料来源
- Sindre Sorhus 的 X 个人资料
- sindresorhus.com
- About Sindre Sorhus
- Now
- App Timeline
- Blog
- GitHub:sindresorhus
- Awesome
- ky README
- KeyboardShortcuts README
- Gifski
本页由公开资料整理,可能存在遗漏或过时之处;以本人公开发布的信息为准。