Nullboard 2023.11.05 介绍与选型指南

Nullboard 单文件极简看板的定位、架构、功能与 Trello/Wekan/Kanboard 量化选型对比,数据来源官方仓库与 nullboard.io,查询日期 2026-10-24。

Nullboard看板任务管理自托管2026/10/24

Nullboard 2023.11.05 介绍与选型指南

目标:面向需要在自托管环境或纯离线场景中管理任务看板的运维与个人用户,讲清 Nullboard 的定位、架构、功能边界与同类看板工具的量化对比,并给出选型结论。本文信息全部来自 Nullboard 官方仓库与官网,查询日期 2026-10-24,文中星数与版本数据均标注来源。

一、环境信息

本文是 Nullboard 的认知篇,不涉及本地部署实操(部署实操见安装篇)。为便于读者复核信息口径,先列出本文引用的信息源与查询日期:

信息项取值来源
组件名称NullboardGitHub 仓库 apankrat/nullboard
主仓库地址https://github.com/apankrat/nullboard同上
官网https://nullboard.io官网首页
版本口径codeVersion 20231105(即 2023.11.05)nullboard.html 源码内 NB.codeVersion 字段;与 官方 changelog 最新条目日期一致
看板数据格式版本blobVersion 20190412nullboard.html 源码内 NB.blobVersion 字段
开源许可2-clause BSD + Commons Clause(禁止售卖)仓库 README「License」章节
项目状态Beta(官方自述"Still very much in beta")仓库 README「Beta」章节
GitHub Stars4144(查询日期 2026-10-24)GitHub 仓库页 HTML 内 stargazerCount 字段取证
主体交付物单个 HTML 文件 nullboard.html(master 分支实测 105597 字节)仓库文件列表与 raw 文件实测

关键差异解读:Nullboard 没有传统意义上的语义化版本号与 Release tag,官方以「changelog 日期 + 代码内 codeVersion」作为版本演进标记,最新一次更新为 2023.11.05。选型时不应按「最新版本号」评估新旧,而应按最近变更日期评估维护活跃度。

二、软件概述

Nullboard 是一款极简主义的看板(kanban)与任务清单(task list)管理工具,作者 apankrat 在 README 中将其定位为 "a minimalist take on a kanban board / a task list manager, designed to be compact, readable and quick in use"(对看板/任务清单的一种极简诠释,追求紧凑、可读、快速上手)。

它有几个在同类产品中非常罕见的形态特征:

  • 单文件 Web 应用:整个应用就是一份 HTML 文件(nullboard.html),外加一个古老的 jQuery 包和一个 Web 字体包,没有后端进程、没有数据库、没有构建步骤。
  • 完全离线可用:官方 README 明确写道 "Can be used completely offline. In fact, it's written exactly with this use in mind."——它是按离线使用为第一场景写的。
  • 数据本地存储:所有看板/列表/笔记数据保存在浏览器的 localStorage 中,可随时导出/导入为纯文本 JSON 格式的 .nbx 文件。
  • 名字梗:Nullboard 缩写恰好是 NB,作者自认是 "a nice touch"(N.B. = nota bene,拉丁语"注意",英文信件常用缩写)。

作者在 README「Background」一节交代了造轮子动机:试过 Trello(不接受数据放云上)、Wekan(太重、无离线支持)、Things(不合适)、Inkscape 文本列表(不好扩展)、纯文本文件与纸笔(重排麻烦),最后决定自己写一个「完全符合自己工作流」的工具。这个动机本身也说明了 Nullboard 的产品哲学:为个人效率服务,而不是为团队协作平台服务。

💡 技术拓展:看板类工具的「数据存储位置」决定了整个产品形态,常见三类各有取舍——

存储形态代表产品优点代价
云端存储Trello、Notion多端同步、协作强数据在他方、需联网、隐私顾虑
服务器数据库Wekan、Kanboard集中管控、可多人需维护常驻服务与数据库
浏览器本地存储Nullboard零后端、零依赖、离线可用数据锁在单浏览器、需自行备份

Nullboard 选择了第三类,并用「自动备份 Agent + 导出文件」补齐本地存储的丢失风险,本文实际讨论的正是这一形态。

三、核心架构

Nullboard 的架构极度简单,理解它只需要弄清三个构件:

3.1 单文件前端

整个看板逻辑(渲染、编辑、拖拽、撤销、导入导出、备份调度)都封装在 nullboard.html 一个文件内。文件内嵌 CSS 与 JavaScript,运行时只额外依赖:

  • jQuery(用于 DOM 操作与 AJAX);
  • Barlow 字体包(作者称赞其 "both narrow and still very legible"——既窄又清晰)。

文件头部注释自带项目标识:

<!doctype html>
<html>
<head>
  <!--
        +-------------------------------------------------------------+
        |                                                             |
        |             Nullboard, a minimalist kanban board            |
        |                    https://nullboard.io                     |
  ...

(实测节选自 master 分支 nullboard.html 文件头部,2026-10-24)

这意味着部署侧只需要「任何能吐出这个文件的东西」:Nginx/Apache 的一个静态目录、甚至直接双击文件以 file:// 协议在浏览器打开。官方 README 的「Dockerized version」一节也是直接指向社区 fork(rsoper/nullboard),说明官方根本没有把「运行时」当成一个需要解决的问题。

3.2 localStorage 数据层

所有看板数据保存在浏览器 localStorage 中(键名形如 nullboard.board.<id>.meta,源码 Storage 模块可见),伴随三个官方明示的风险与对策:

  • 清浏览器缓存可能清掉数据:README「Caveats」明确警告 "Uses localStorage for storing boards/lists/notes, so be careful around clearing your cache",并链接了 Stack Overflow 上关于 localStorage 持久性的经典讨论。
  • 对策一:手动导出——看板可导出为 .nbx 文件(简单 JSON 格式),可再导入恢复;「All boards can be exported at once」(2021.04.10 changelog)。
  • 对策二:自动备份——通过配套的 Nullboard Agent 把每块看板的每次修订自动备份到磁盘(见 3.3)。

3.3 备份体系(Nullboard Agent)

浏览器内代码无法直接写本地文件,因此自动备份由一个很小的伴生程序 Nullboard Agent 完成:Nullboard 通过标准 HTTP 协议把备份请求发给 Agent(对 Nullboard 而言「备份不过是对一个本地 Web 服务发请求」),Agent 负责落盘。

备份协议在源码 SimpleBackup 类中定义,共四类请求(nullboard.html 源码 L2469-L2550):

请求方法与路径用途
checkStatusPUT {base}/config检查 Agent 是否在线可用
saveConfigPUT {base}/config(带 conf 表单字段)保存应用全局配置
saveBoardPUT {base}/board/{board_id}保存看板数据与修订元数据
nukeBoardDELETE {base}/board/{board_id}看板被删除时同步移除其备份

鉴权方式为请求头 X-Access-Token(配对时在 Nullboard 设置里粘贴 Agent 生成的 Access Token)。备份失败时 Nullboard 会在每次看板修改与每次页面刷新时重试,成功后会把所有看板的积压备份一并补跑(官方 nullboard.io/backups 页面说明)。

Agent 的官方实现是 Windows 原生程序(apankrat/nullboard-agent,托盘常驻,仓库页星数 11,查询日期 2026-10-24);Linux/macOS 服务器场景可用社区实现的 Python 版 nbagent(luismedel/nbagent,PyPI 最新 1.1.0,仓库页星数 16,查询日期 2026-10-24),协议与官方 Agent 相同。备份后端的选装与部署见安装篇与命令详解篇。

四、功能特性

以下特性清单来自官方 README 与 nullboard.io/changes changelog(查询日期 2026-10-24),均为官方明示能力:

  • 就地编辑:所有内容(看板名/列表名/笔记)直接在原位编辑,改动自动保存;
  • 撤销/重做:每块看板保留最近 50 个修订(代码内可配置 maxUndo);
  • 快速插项:Ctrl+Enter 在下方新增笔记、Ctrl+Shift+Enter 在上方新增(2019.04 changelog);
  • 拖拽:笔记可跨列表拖动,列表也可整列移动;
  • 隐藏控件:几乎所有控件默认隐藏,把视觉噪音压到最低;
  • 折叠笔记:长笔记可折叠到只显示首行;
  • Raw 笔记:可把笔记标记为 raw 形态用于给列表分区(Alt+R 切换);
  • 链接识别:http/https 链接自动识别,悬停「脉冲」提示,右键菜单打开;按住 CapsLock 高亮全部链接并左键直达;可选把 `foo` 标记为 file:///foo 本地文件链接(2021.08.04 changelog,对应配置 fileLinks);
  • 多看板:支持多块看板近乎即时切换,看板索引可重排(2021.04.10);
  • 主题与排版:浅色/深色主题反转;字体可换(多种选择)、字号/行高/列表宽度可调(2021.04.10 changelog,对应配置 fontSize/lineHeight/listWidth);
  • 打印:看板可打印(2019.06.10 changelog,2022.11.12 又改进了打印排版);
  • 快捷键:包括 Tab 在笔记间移动、Alt+↑/↓ 结束编辑并折叠/展开、Ctrl+Z / Ctrl+Y 撤销重做;
  • 自动备份:看板修改时自动发往本地/远程备份 Agent(2021.04.26 changelog 引入)。

特性边界(官方明示的限制,README「Caveats」):

  • 为桌面端键盘/鼠标设计,移动端与触屏基本未测试(2023.11.05 更新改善过移动端缩放,但官方仍未宣称支持);
  • 浏览器兼容口径:Firefox 为开发基准,Chrome 实测过,Safari「should work」,Edge「may work」;
  • 数据在 localStorage,清缓存风险需要备份机制对冲;
  • 无多人协作、无账号体系、无权限模型——数据归属单一浏览器。

五、快速开始

Nullboard 的「快速开始」成本趋近于零,按场景三选一:

方式一:在线体验(零安装) 直接访问官方预览站 https://nullboard.io/preview ,即可在浏览器里使用完整功能(数据保存在你浏览器本地,不是云端账号)。

方式二:单文件本地使用(完全离线) 从官方仓库下载 nullboard.html 到本地任意目录,双击以浏览器打开即可。官方 README 将「完全离线使用」列为一等公民场景,该方式不需要任何网络与服务器。文件极小(实测 master 分支 105597 字节,约 103 KB),拷贝到 U 盘即完成"安装"。

方式三:服务器部署 + 自动备份(自托管推荐形态) 把 nullboard.html 放到内网任意静态服务器(Nginx 静态目录即可),团队/个人通过浏览器访问统一入口;再部署一个备份 Agent(Windows 用官方 nb-agent.exe,Linux 服务器用 Python 版 nbagent)实现看板自动落盘备份。完整从零到一的操作步骤(Nginx 站点配置、nbagent 安装、systemd 托管、配对验证)在《Ubuntu 22.04 安装 Nullboard 2023.11.05 指南》中逐条实测给出。

💡 说明:方式一/二的数据都只在当前浏览器里,换浏览器/换电脑不会跟随;需要跨浏览器迁移时用「导出 .nbx → 新浏览器导入」。方式三便于固定入口,但看板数据仍各存于访问者自己的浏览器,备份 Agent 与各浏览器之间按 Access Token 配对。

六、适用场景与限制

结合架构与功能边界,Nullboard 的甜区与雷区都很清晰。

适合用:

  • 个人待办/轻量项目跟踪:一个人的看板,追求打开即用、快捷键飞快、界面安静;
  • 离线环境:内网隔离区、无外网工作站、随身 U 盘里的工具集——localStorage + 单文件形态在离线场景几乎无敌;
  • 内网自托管固定入口:一台内网静态服务器 + 一个 HTML 文件就能服务整个内网,无数据库无进程,攻击面与运维成本趋近于零;
  • 对数据主权敏感的用户:数据不出本机浏览器(或经备份 Agent 落在指定磁盘),不经过任何第三方云。

不适合用:

  • 多人协作:没有账号、权限、实时协同,看板数据按浏览器隔离,团队共享编辑无从谈起;
  • 跨设备同步诉求强的用户:换设备要靠导出/导入或备份恢复,没有自动云同步;
  • 移动端重度用户:官方明示基本未针对触屏测试;
  • 需要复杂看板语义的团队:没有泳道/工时/甘特/自动化规则这类重量级 kanban 特性。

风险与成熟度提示(来源:官方仓库,查询日期 2026-10-24):

  • 项目自述仍处 Beta;
  • 主应用最近一次 changelog 为 2023.11.05,此后近三年无官方更新(查询日期 2026-10-24),选型时应接受「低频维护、功能冻结」的现状——不过对单文件纯客户端应用而言,无更新并不等于不可用;
  • 许可为 2-clause BSD + Commons Clause:可自由使用、修改、再分发,但不得售卖本软件本身。

七、同类选型对比

把 Nullboard 放进看板/任务管理赛道做横向对比。量化数据取自各项目 GitHub 仓库页 stargazerCount 字段与官方 changelog/发布页,查询日期 2026-10-24;Trello 为闭源 SaaS,无公开仓库,按官方产品页口径描述。

对比维度NullboardTrelloWekanKanboardFocalboard
产品形态单 HTML 文件纯客户端闭源 SaaSNode.js + MongoDB Web 应用PHP + SQLite/MySQL Web 应用Mattermost 系看板
开源许可BSD-2-Clause + Commons Clause闭源MITMITAGPL 系(项目已归档)
自托管仅需静态文件托管不可需常驻服务需常驻服务需常驻服务
数据存储浏览器 localStorage + Agent 磁盘备份云端MongoDBSQLite/MySQL/PostgreSQL数据库
完全离线可用是(官方设计目标)否否否否
多人协作无强(核心卖点)支持弱(单用户为主,有只读分享)团队向
GitHub Stars(2026-10-24)4144—(闭源)211319928已归档
版本节奏changelog 日期制,最新 2023.11.05,无 semver持续迭代(不公开明细)高频发布(v7.x 线)低频稳定(1.2.x 线)2023 年后停止维护
部署体量~103 KB 单文件—Node + MongoDB 全套PHP 环境Mattermost/独立服务
学习成本极低低中中中

(Stars 数据来源:各项目 GitHub 仓库页 HTML stargazerCount 字段;版本节奏来源:各项目 Releases/changes 页面;Focalboard 为 mattermost/focalboard 仓库,2026-10-24 访问已无活跃发版,社区普遍按归档状态对待。)

关键差异解读与选型建议:

  • 以「协作」为第一诉求 → Trello(闭源 SaaS,开箱即用)或 Wekan(可自托管的 Trello 风格,社区体量最大,21131 stars);代价是必须维护常驻服务与数据库。
  • 以「个人/小团队自托管 + 轻量」为诉求 → Kanboard(PHP 老牌,9928 stars,功能聚焦、资源占用小,但对多人场景同样偏弱)。
  • 以「个人效率 + 离线 + 零运维」为诉求 → Nullboard 是最彻底的一个:部署面趋近于零(一个文件),数据面完全本地,备份面有现成协议与多实现。它不是 Wekan/Trello 的替代品,而是「我看我自己的板子」这个细分场景下的最优解。
  • 放弃项:Focalboard 独立版已停止维护,新项目不建议再选。
  • 一句话结论:需要「团队看板平台」选 Wekan/Kanboard/Trello;需要「个人极速看板 + 服务器一个文件搞定」选 Nullboard,并用备份 Agent 补上 localStorage 的丢失风险。

八、参考链接

站内延伸:部署实操见《Ubuntu 22.04 安装 Nullboard 2023.11.05 指南》;配置项逐项说明见《Nullboard 2023.11.05 配置参数详解》;备份 Agent 命令行与备份协议实测见《Nullboard Agent 常用 CLI 命令与工具详解》。