<!-- title: 单元格连坐：Jupyter该退休了 -->

# 单元格连坐：Jupyter该退休了——本期开源挖掘：7个能长期自持的底座与小玩具

## 概述

这一轮挖掘，我刻意避开了聚光灯下的 AI 编程工具，把视线挪到另一类项目上：**能长期自持的底座**——装上就能跑五年、数据握在自己手里、甚至能顺着它做一门小生意的自托管项目；以及**极客小玩具**——用极少的代码完成一件漂亮事。七个仓库横跨数据科学、CRM、统计分析、档案管理、投资记账、桌面主题和纯静态工具，没有一个需要按月付订阅费。一个小声明：成稿环境未能实时联网核验，文中 Star 数均为写作时点的约数，量级可靠，精确数字请以仓库主页为准。

---

## 1. marimo-team/marimo | 万星级 | 活跃发版

**一句话定位**：反应式 Python 笔记本，对 Jupyter 的推倒重做——单元格之间不再各活各的，而是像电子表格一样“连坐”。

**它解决什么痛点**：Jupyter 最大的原罪是隐式状态。你改了第 3 个单元格，第 17 个单元格里那个偷偷依赖它的变量不会重算，于是图表、结论、训练指标全部悄悄过期。每个重度 notebook 用户都吃过这个亏，只是习惯了忍。

**核心功能拆解**：
- **Notebook 就是纯 .py 文件**。存储格式是标准 Python，能进 git（diff 清晰可读）、能被 import 当模块、能直接跑 pytest。所谓“笔记本”和“程序”的边界，在这里被抹掉了。
- **依赖自动追踪**。运行时解析单元格之间的变量依赖，构成一张 DAG。你改一处，所有受影响的下游单元格自动重跑；你删了某个变量，引用它的地方当场标红。乱序执行带来的状态错乱，从机制上不存在了。
- **控件即变量**。每个单元格可以拖入滑条、下拉框、按钮，直接绑定到 Python 变量。写完 `marimo run` 一条命令，笔记本就变成一个可分享的 Web 小应用——数据分析的交付物，从“发个 ipynb 文件”升级成“发个 URL”。
- **SQL 一等公民**。`sql()` 单元格直接写 SQL 查 DataFrame，数据团队里那些 SQL 背景的同事不用学 Python 也能干活。

**上手难度**：⭐⭐（`pip install marimo` 后 `marimo edit` 即起）

**适用人群与变现思路**：数据分析师、算法工程师、需要在团队里交付分析结果的人。商业方向：把“内部工具工厂”做成服务——替业务团队把 notebook 变成带 UI 的内部应用，按应用收交付费，marimo 是现成的引擎。

仓库：[github.com/marimo-team/marimo](https://github.com/marimo-team/marimo)

---

## 2. twentyhq/twenty | 万星级 | 活跃发版

**一句话定位**：开源 CRM，正面硬刚按席位收费的 Attio 和 Salesforce，把“客户关系”变成你自己数据库里的一等公民。

**它解决什么痛点**：CRM 是全世界最古老的 SaaS 生意，也是最典型的数据绑架——客户资产躺在厂商服务器上，席位费一年一涨，想导出全量数据时才发现 API 收费且残缺。

**核心功能拆解**：
- **数据模型完全开放**。公司、联系人、机会是标准对象，但真正的野心在自定义：任意建对象、字段、关系，UX 是 Notion database 那一套，销售用起来不觉得自己在用“企业软件”。
- **API 全量对等**。REST、GraphQL、Webhooks 一应俱全，界面上能做的，API 都能做。数据随时可搬，这是开源 CRM 对 SaaS 最本质的胜利。
- **Kits 是二开的钥匙**：把数据模型、页面视图、工作流打包成一个行业模板。律所、房产中介、跨境卖家各要一套——这意味着它天然是外包与实施商的印钞底座。
- **技术栈主流**：NestJS + React + Postgres + Redis，docker-compose 自托管，找人维护不愁。

**上手难度**：⭐⭐⭐（自托管需基本的 Docker 功底）

**适用人群与变现思路**：给中小企业做交付的团队、行业软件外包商。路径清晰：拿 Kits 按行业二开成垂直 CRM，收实施费 + 年度维护费，国内“轻量 CRM 私有化”是实打实的刚需市场。

仓库：[github.com/twentyhq/twenty](https://github.com/twentyhq/twenty)

---

## 3. umami-software/umami | 2万星级上下 | 活跃发版

**一句话定位**：无 Cookie、隐私合规的网站统计，一个把 Google Analytics 拉下马的经典开源案例。

**它解决什么痛点**：GA 又重又不合规——GDPR 之下要弹 Cookie 横幅，国内个保法之下同样麻烦，而且数据在谷歌手里。老牌开源统计要么配置繁琐，要么界面停留在上个时代。

**核心功能拆解**：
- **部署轻到一个离谱**：单个 Next.js 应用，数据库任选 Postgres / MySQL / SQLite，docker 一把起，五分钟出报表。
- **合规是设计出来的，不是补出来的**：埋点脚本不到 2KB，不采集个人身份信息、不依赖 Cookie，意味着你的网站根本不需要 Cookie 同意横幅——这是它对独立开发者最大的实用价值。
- **报表够用且克制**：PV/UV、访问来源、设备、自定义事件、UTM 归因，外加可公开分享的只读面板（给客户看数据不用开账号）。
- **商业模式成熟**：官方提供付费云托管，是“开源核心 + 托管收费”的教科书样本。

**上手难度**：⭐⭐

**适用人群与变现思路**：独立开发者、出海站长、代理建站的服务商。变现直接：官方云收费就是付费先例；本地化机会在于把“建站 + 统计 + 合规”打包成一站式托管，卖给不想碰服务器的中小企业。

仓库：[github.com/umami-software/umami](https://github.com/umami-software/umami)

---

## 4. paperless-ngx/paperless-ngx | 2万星级上下 | 活跃发版

**一句话定位**：家庭与小团队的纸质档案数字化中枢，扫描件从“永远找不到”变成“一秒搜到”。

**它解决什么痛点**：合同、发票、说明书、体检报告散落在抽屉、邮箱和微信收藏里，需要时全靠翻。市面上的文档管理软件要么按页收费，要么把你的档案传到别人云上。

**核心功能拆解**：
- **消费目录是唯一入口**：把文件扔进 `consume` 文件夹（或手机拍照上传），流水线自动接管：去重、OCR、归档。
- **机器学习会自己长记性**：内置分类器从你的历史标注中学习——同一商户的发票见多了，标签、通信方、文档类型自动填好，越用越省事。
- **全文检索打底**：Tesseract OCR 出来的文本全量索引，中文文档配合好分词后可用性不错；标签、 correspondent（通信方）、文档类型、自定义字段多维过滤。
- **树莓派能跑**：资源占用克制，一台吃灰小主机 + 一个扫描仪就是完整档案室。

**上手难度**：⭐⭐（docker-compose 开箱即用）

**适用人群与变现思路**：家庭财务管理者、自由职业者、小商户。变现方向：装机与迁移服务本身空间有限，真正值钱的是二开——“发票 OCR + 自动记账”流水线，接上记账软件就是一个完整的小产品。

仓库：[github.com/paperless-ngx/paperless-ngx](https://github.com/paperless-ngx/paperless-ngx)

---

## 5. ghostfolio/ghostfolio | 数千星级 | 活跃发版

**一句话定位**：自托管的投资组合记账本，给多账户投资者一张跨越券商与币种的资产全景图。

**它解决什么痛点**：券商 App 只让你看它自己那一亩三分地。账户一多——A 股、美股、港股、加密、定投养老金——你的真实资产配置、币种敞口、隐性成本，没有任何一个界面能完整回答。且这些数据敏感至极，本就不该躺在第三方服务器上。

**核心功能拆解**：
- **记账模型朴素而正确**：手动录入或 CSV 导入交易，系统自动算持仓、成本、分红、多币种折算，不碰你的交易权限——它只记账，不做交易，天然安全。
- **X-ray 体检是招牌功能**：一键扫描投资组合的隐性费用、集中度风险、币种与行业暴露，把“我以为我分散了”和“我实际上重仓了”之间的差距摆上台面。
- **FIRE 人群友好**：储蓄率、被动收入覆盖率、退出imeline等长期主义指标内置。
- **官方付费云版运行多年**：开源 + 订阅的模式已被验证，不是 ppt 项目。

**上手难度**：⭐⭐

**适用人群与变现思路**：多账户投资者、家庭 CFO。二开方向明确：替换行情数据源、接入国内券商对账单格式，做一个本土化私有部署版，面向高净值个人工作室收费。

仓库：[github.com/ghostfolio/ghostfolio](https://github.com/ghostfolio/ghostfolio)

---

## 6. danth/stylix | 千星级上下 | 持续维护

**一句话定位**：Nix 生态的全局主题引擎——一张壁纸定乾坤，全机软件跟着换肤。

**它解决什么痛点**：dotfiles 玩家的经典酷刑：换一套配色，终端、编辑器、状态栏、GTK 应用、启动菜单要挨个改一遍，改完还互相打架。主题分散在十几个程序的配置文件里，永远不齐。

**核心功能拆解**：
- **声明一次，处处生效**：你只声明三样东西——一张壁纸、一套 base16 十六色调色板、几款字体。stylix 用 Nix 的 module 体系把这份声明“编译”成几十个软件的具体配置。
- **覆盖面是护城河**：kitty、alacritty、vim、emacs、GTK、grub 等几十个 target，从终端到启动画面一个调性。换壁纸 = 全机换肤，且是声明式的——不满意，回滚一个 generation 就回去了。
- **和 NixOS / home-manager 咬合紧密**：主题不再是“配置片段”，而是系统拓扑的一部分。这个思路本身值得所有配置管理工具抄作业。

**上手难度**：⭐⭐⭐⭐（前置技能：先会 Nix）

**适用人群与变现思路**：NixOS 用户、dotfiles 作者、追求视觉一致性的重度 Linux 玩家。直接变现难，但它的调色板提取与多目标配置生成逻辑，完全可以抽出来做成跨平台的主题引擎——macOS / VS Code 生态里还没有对标物。

仓库：[github.com/danth/stylix](https://github.com/danth/stylix)

---

## 7. jstrieb/github-pages-url-shortener | 数百星级 | 低维护（这恰恰是优点）

**一句话定位**：零服务器、零成本的短链服务，整个“系统”就是 GitHub Pages 上几个静态文件。

**它解决什么痛点**：短链服务两头堵——商业服务收费且随时倒闭，自建方案则要求你养一个常驻后端加数据库，为了省两个字符付一个月服务器钱。

**核心功能拆解**：
- **核心是一个平台级巧思**：用户访问 `user.github.io/abc`，这个路径并不存在，GitHub Pages 触发 404——而 404 页面是你写的。页内 JS 读出路径 `abc`，在与页面一起分发的压缩映射表里查出目标 URL，`location.replace` 完成跳转。整条链路没有一个后端进程。
- **短链即 git 记录**：映射表由仓库里的脚本生成、随静态页发布，每一条短链的增改都进版本历史，天然自带审计。
- **边界诚实**：映射表随页面加载到客户端，链接量大了页面会变大——几百条以内无感，这是它明码标价的取舍。项目本体也已停止大更新，但纯静态、零依赖的东西不会腐烂，这反而是自托管世界的真理。

**上手难度**：⭐⭐（fork 仓库、跑一次生成脚本即可）

**适用人群与变现思路**：极客、课程作者、开源项目作者。直接变现谈不上——它的价值是一份思维样本：**用平台的约束换掉自己的运维成本**。二开路径：把客户端映射表换成 CDN 边缘 KV，同样零服务器，可扩到海量链接。

仓库：[github.com/jstrieb/github-pages-url-shortener](https://github.com/jstrieb/github-pages-url-shortener)

---

## 本期横向对比

| 仓库 | 类型 | Star（约数） | 上手难度 | 适用场景 |
|------|------|------|------|------|
| marimo | 开发者工具 | 万星级 | ⭐⭐ | 数据分析交付、内部工具 |
| twenty | 商业底座 | 万星级 | ⭐⭐⭐ | 私有化 CRM、行业二开 |
| umami | 商业底座 | 2万星级上下 | ⭐⭐ | 网站统计、合规分析 |
| paperless-ngx | 自托管 | 2万星级上下 | ⭐⭐ | 档案数字化、全文检索 |
| ghostfolio | 商业底座 | 数千星级 | ⭐⭐ | 多账户投资记账 |
| stylix | 极客配置 | 千星级上下 | ⭐⭐⭐⭐ | Linux 全局主题 |
| github-pages-url-shortener | 小而美 | 数百星级 | ⭐⭐ | 零成本短链 |

## 本期全景

```mermaid
mindmap
  root((本期挖掘))
    开发者工具
      marimo
        反应式笔记本
        notebook变应用
    生意底座
      twenty
        开源CRM
        行业Kit二开
      umami
        无Cookie统计
        官方云已收费
      ghostfolio
        投资全景记账
        付费云先例
    自托管
      paperless-ngx
        纸张变档案
        分类器越用越准
    极客小玩具
      stylix
        壁纸定全局
      静态短链
        四零四页跳转
        短链进git史
```

## 本期之最

- **最值得立即尝试：marimo**。一条 pip 装完，一个下午就能把手头的 notebook 迁过去，从此告别“改了上游下游不重算”的暗坑——这是本期唯一一个“用了就回不去”的项目。
- **最有商业潜力：twenty**。CRM 是验证了四十年的付费需求，Kits 机制把“通用开源”变成“垂直产品”的路径铺得明明白白，适合有行业客户的团队做二次开发。
- **最被低估：github-pages-url-shortener**。几十行 JS，把 GitHub Pages 的 404 机制用成了基础设施，Star 数百却值得每个写代码的人读一遍源码——好的工程未必复杂，有时只是比常人多想了一层。

## 参考来源

1. [marimo-team/marimo](https://github.com/marimo-team/marimo) — 反应式 Python 笔记本仓库主页
2. [twentyhq/twenty](https://github.com/twentyhq/twenty) — 开源 CRM 仓库主页
3. [umami-software/umami](https://github.com/umami-software/umami) — 隐私优先网站统计仓库主页
4. [paperless-ngx/paperless-ngx](https://github.com/paperless-ngx/paperless-ngx) — 文档档案管理仓库主页
5. [ghostfolio/ghostfolio](https://github.com/ghostfolio/ghostfolio) — 自托管投资记账仓库主页
6. [danth/stylix](https://github.com/danth/stylix) — Nix 全局主题引擎仓库主页
7. [jstrieb/github-pages-url-shortener](https://github.com/jstrieb/github-pages-url-shortener) — 纯静态短链服务仓库主页

> 说明：本期成稿环境无法实时联网，文中 Star 数为写作时点约数，项目动态请以各仓库主页为准。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
