Pando

Pando, module by module

Every feature Pando owes, grouped into the thirteen modules it is built from, with how far each one actually is. The list was fixed in Phase 0, before anything was built, so the denominator cannot be shrunk to flatter the number.

234 features 167 of 167 working 100% parity 174 covered by a test that can fail 65 Pando's own, counted apart

verified 😍 three people drove it, each with a different journey, and all three found it beautiful, consistent, smooth, efficient and easy verified shipped, and a named persona drives it against the deployed site tested shipped, and a named test would fail if it broke built shipped, with nothing proving it described written here, not built dropped deliberately not built; the note says why

Recently changed

bda40455 fix(app): a shared board or table is no longer a blank page 16 Aug 2026, 23:53 CET
No feature changed status.
The whole log, 40 commits
5f05e5e3 test(share): a shared board or table is a blank page — pinned red, 9 checks 16 Aug 2026, 23:18 CET
No feature changed status.
4cd817c1 feat(blog): the template gallery — 24 shapes, one press each 16 Aug 2026, 22:57 CET
No feature changed status.
e316d013 feat(blog): every picture reshot in Ocean, every em dash gone, the strategy written 16 Aug 2026, 21:48 CET
No feature changed status.
a0ee61ef docs(goals): launch iteration 32 — the background tab, and three instruments that lied 16 Aug 2026, 19:31 CET
No feature changed status.
4417f51d feat(notify): the tab you are not looking at can tell you an agent wrote 16 Aug 2026, 18:30 CET
No feature changed status.
845053a7 feat(billing): the Stripe product, as a script rather than six clicks 16 Aug 2026, 18:05 CET
No feature changed status.
397404af feat(store): the Android path, minus the two things only Andreas can do 16 Aug 2026, 17:37 CET
No feature changed status.
891c348a feat(legal): Kleinunternehmer nach § 19 UStG is decided, and the pages say so 16 Aug 2026, 17:24 CET
No feature changed status.
ddd94511 fix(test): four drivers were pressing somebody else's chord 16 Aug 2026, 17:13 CET
No feature changed status.
e7f00100 feat(landing): the page stops drawing a product and shows one 16 Aug 2026, 17:13 CET
No feature changed status.
e6ea7492 feat(blog): 20/20 productivity — eat the frog, the twelve-week year, the project brief 16 Aug 2026, 16:18 CET
No feature changed status.
17fae3f4 feat(blog): habits, personal OKRs, and the limit of the two-minute rule 16 Aug 2026, 15:48 CET
No feature changed status.
de0b40d2 feat(blog): reading notes, post-mortems, personal kanban 16 Aug 2026, 15:18 CET
No feature changed status.
8bfa801f feat(blog): agentic development on the go, in two parts 16 Aug 2026, 15:10 CET
No feature changed status.
70bfc469 feat(blog): meeting notes, someday/maybe, and time-blocking 16 Aug 2026, 14:48 CET
No feature changed status.
8ae951ce feat(blog): the agent series completes at 7 of 7, plus Waiting for 16 Aug 2026, 14:18 CET
No feature changed status.
e227ec29 feat(blog): the agent series — the shared branch, tables, and not re-reading 16 Aug 2026, 13:49 CET
No feature changed status.
52bd6952 feat(blog): posts 7, 8 and 9 — PARA, inbox zero, Eisenhower 16 Aug 2026, 13:20 CET
No feature changed status.
32815d89 feat(security): a speed bump on the nine doors a stranger gains from (S10) 16 Aug 2026, 12:50 CET
No feature changed status.
606584c9 test(boot): drive the boot NOBODY drove — the not-yet-accepted one 16 Aug 2026, 12:17 CET
No feature changed status.
bbb458e4 fix(boot): the terms gate is DRAWN, not awaited — it stalled every signed-in boot 16 Aug 2026, 12:01 CET
No feature changed status.
df0387b9 feat(account): delete your account and take everything with you, from inside the app (S4) 16 Aug 2026, 10:55 CET
No feature changed status.
d0f5e903 feat(legal): the terms gate — agreement is a record the server writes (S4) 16 Aug 2026, 10:21 CET
No feature changed status.
fc68663e fix(legal): every public page links the Impressum — it was reachable only by typing the URL 16 Aug 2026, 09:49 CET
No feature changed status.
6122468e test(security): stored markup cannot become markup — the XSS sweep (S10 round 3) 16 Aug 2026, 09:20 CET
No feature changed status.
2c0ae3ff test(security): the MCP sweep — the connector inherits the route gates (S10 round 2) 16 Aug 2026, 09:06 CET
No feature changed status.
edf9177c test(security): the authorization sweep — 33 probes at a stranger's branch, S10 round 1 16 Aug 2026, 08:54 CET
No feature changed status.
eec83187 feat(blog): posts 4 and 5 — Zettelkasten without the graveyard, the weekly review that survives 16 Aug 2026, 05:17 CET
No feature changed status.
e26a9d55 feat(app): the changes view — everything since a chosen delta, filterable (S12 first cut) 16 Aug 2026, 04:23 CET
No feature changed status.
1d8faad8 feat(blog): the flagship — the inbox your agent writes for you 16 Aug 2026, 03:46 CET
No feature changed status.
10c52971 fix(blog): a teaser is not the first sentence twice 16 Aug 2026, 03:22 CET
No feature changed status.
d8441cc0 feat(blog): the three posts rewritten to the style bar, with real product pictures 16 Aug 2026, 03:18 CET
No feature changed status.
25cafc5b fix(links): /api/me says when a session is a link guest — the banner draws from it 16 Aug 2026, 03:02 CET
No feature changed status.
fc5feff7 fix(style): the banner pays the size census too — 0.95em, a step the sheet owns 16 Aug 2026, 02:55 CET
No feature changed status.
7a5c0b39 feat(links): Show in my Pando — a link visitor becomes an account with the branch in it 16 Aug 2026, 02:53 CET
No feature changed status.
772437ed feat(legal): Impressum, Datenschutzerklärung, AGB v1.0 — the §5-DDG facts from the register 16 Aug 2026, 02:37 CET
No feature changed status.
e621b27d feat(blog): the template pipeline, and posts 2 and 3 of 27 16 Aug 2026, 02:21 CET
No feature changed status.
63aa0d61 fix(blog): the code-span sentinel is visible bytes, and the restore regex has its backslash 16 Aug 2026, 01:54 CET
No feature changed status.
803f4a10 feat(blog): the blog engine, and the first of the twenty-seven 16 Aug 2026, 01:51 CET
No feature changed status.

Modules

Structure 23/23

One graph. Bullets, parentage, order, zoom and collapse.

10 delighted · 13 verified

Editing 30/30

Text, notes, formatting, node types, undo.

18 delighted · 7 verified · 5 tested

Node types and layouts 16/16

What a node looks like, without changing what it is.

8 delighted · 4 verified · 4 tested

Tags, dates, links 19/20

Connecting bullets without moving them.

9 delighted · 2 verified · 8 tested · 1 dropped

Mirrors and templates 14/14

One piece of content in more than one place.

4 delighted · 9 verified · 1 tested

Search 21/22

Filtering the outline live, and keeping the filter.

18 verified · 3 tested · 1 dropped

Sharing and permissions 14/14

Permissions are edges in the same graph as the bullets.

13 verified · 1 tested

Sync and the mutation queue 9/9

Every change is an atomic mutation through an asynchronous queue.

3 delighted · 4 verified · 2 tested

Calendar 15/15

A day-shaped view of the same graph.

1 delighted · 8 verified · 6 tested

Export and import 15/15

Nothing written here is trapped here.

9 verified · 6 tested

Account 10/10

Who you are is a node; what you may do is an edge.

4 verified · 6 tested

Presentation 40/40

The projection, on whatever screen it lands on.

5 delighted · 19 verified · 16 tested

Agents 6/6

The same graph, reachable without a browser.

4 verified · 2 tested