C.W.K.
Stream
Lesson 03 of 04 · published

Bear's Experience, Not Bear's Storage

~11 min · bear, own-db, reconcile-hell, library

Level 0Cold Draft
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Take the library experience. Reject the storage model that produced it. They were never the same thing."

What Bear Gets Right

Bear is genuinely admired here, and for good reasons: a calm sidebar, instant search, and no folder friction — you write, and finding things later just works. That library experience is exactly what Rekindle wants once it grows past single-file mode. So the honest question is: how much of Bear should be copied?

What Bear's Storage Would Cost

The part that must not be copied is the storage model. Bear keeps notes in its own database as the master. Import that into Rekindle and the vault forks: the DB says one thing, the .md files say another, and now you own reconciliation between two masters forever. That's the exact reconcile-hell the whole stack refuses — the same reason cwkPippa has one ground truth and rebuildable mirrors rather than two authorities kept in sync.

Bear's model      DB is master, files are an export   -> two masters to reconcile
Rekindle's model  files are master, index is derived  -> one master, rebuildable view

# The library UX is compatible with BOTH. Only one of them
# forks your vault and hands you a reconciliation problem.

Take the Experience, Not the Storage Model

The key realization is that the library experience and the own-DB storage model are separable. A sidebar, instant search, and no folder friction are all views — they can be computed from a derived index over plain files just as well as from a master database. That's the Obsidian sweet spot: Bear's calm library feel, on file-canonical storage, on the same CM6 engine Rekindle already stands on. So Rekindle takes the experience and leaves the storage behind.

This is a general move worth naming: when you admire an app, separate the experience you want from the architecture that happened to produce it. They're usually not the same thing, and copying the architecture to get the experience is how you inherit problems you never wanted.

Code

The experience is separable from the storage model·text
Model             Storage                              Consequence
----------------  -----------------------------------  --------------------------
Bear's model      DB is master, files are an export    two masters to reconcile
Rekindle's model  files are master, index is derived   one master, rebuildable view

The library UX (sidebar, instant search, no folder friction)
is compatible with BOTH — it's a VIEW, computable from either.

# So take the UX from Bear, take the storage from the vault,
# and refuse the one thing that would fork your data.

External links

Exercise

Pick an app whose feel you'd want to copy. Write two lists: (1) the experiences you actually want (views, interactions), and (2) the architectural choices it made to get there. For each item in (2), ask whether it's genuinely required by (1). Most won't be — and the ones that would break your invariants are exactly the ones to refuse.
Hint
Experiences are things like 'instant search,' 'no folder friction,' 'calm sidebar.' Architecture is 'notes live in a private SQLite master.' The second is one way to get the first, not the only way — and if it forks your source of truth, it's the wrong way for you.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.