Hi! I’ve been test-driving Silver Bullet for a few days now. As a regular Logseq user, I thought I’d add some initial thoughts in the hope it may be helpful feedback.
Things I immediately love
- Self-hosted, dockerized, painless to get up and running
- The simple underlying file structure (markdown files in a hierarchical directory structure)
- Extendable and customizable beyond any other app (PlugOS concept)
- PWA frontend is smooth and reliable
- Offline mode is really exciting though I have not yet tested this feature. My hope is that I can self host in a home network, go out into the world adding notes, and return home to sync up.
- The docs (nice work!)
- The community seems pretty active and growing
Things I immediately miss from Logseq:
1. Outlines (Bulleted Lists)
Specifically, Logseq creates relationships/refs via nested outlines, which enable a highly efficient journal-based workflow.
If I’m editing a daily Journal, and I want to add some notes about a particular subject (page), all I need to do is reference that page in the top level of the outline, then add notes or tasks nested under that item.
For example, let’s say I have a 1on1 with someone named Swarna. Let’s say Swarna is part of a team “Dev Team”. Typically I will open 2 windows:
- The page for
[[Swarna]]
or the team they belong to[[Dev Team]]
. On this team page, there are several queries to see previous discussion topics, tasks, and notes from all members of the team. This means I go to every meeting with all the most important active topics and tasks within that context. - The daily journal (99% of intake is done exclusively in journals)
* [[Swarna]]
* [ ] a new task I need to accomplish
* [ ] #topic an open topic for discussion in future conversations with Swarna
In Logseq, all nested “blocks” are related to the link mention in the parent block. This is accomplished via path-refs
property of a block (see full block
schema here), which collects all the linked pages on this item, or on any of its parent items, up to and including the page it is added to.
Why is this an advantage? Because it allows me to add referenced content to a particular page without the need to leave my Journal. Because I don’t need to leave my journal, I can add content or tasks to multiple pages from the same journal, allowing me to context switch very quickly. The tool stays out of the way of the note intake. In addition, when you visit a specific page like the team page, the “Linked Mentions” equivalent function in Logseq displays all references to the page, and (since everything was added via journal) each update also shows the specific date when you added it. This would make Linked Mentions in SB much more powerful.
If I wanted to do this today in SB, it seems I have 2 options:
- I would need to add the
[[Swarna]]
link mention to each individual item. Then I would be able to querytask where name =~ /swarna/
checking thename
string property of the task. - For each topic in my meeting, I would need to leave my Journal and visit the specific page for the active topic, add some notes, then go to a different page when topics change. I’m assuming this is how most people use SB.
SB attribute proposal – To solve this exclusively for an item
object type, it would be great if it contained a similar attribute to path-refs
which contained all the linked pages referenced by any parents (ideally these would be stored in hierarchical order so they can be used as a sort of breadcrumb). I found this concept of custom attribute extractors in your docs that appears promising, but I believe currently we only have access to the text
of this single item, and therefore can not use this approach to collect the link refs of parent items. Is that correct?
In my view, there should also be a way to nest content (not only items and tasks) under a link ref, so the entire chunk of linked content would show up under the existing “Linked Mentions”.
2. Editing Live Content
Currently in SB, if I create a template to render tasks from other pages, those tasks are not editable in place (for example to alter the deadline or to tick the checkbox). Instead I need to go back to the source page where the task was originally added to make any changes.
Is this an intentional decision? Shouldn’t this content be editable and update the origin unless it has been “baked” onto the page?
This goes for Linked Mentions, and any custom template
.
3. The Search
In Logseq all search is rolled up into a single UI which includes grouped results for pages, blocks (specific content), commands, recents, etc. This is a relatively minor critique.
That’s all for now. I hope this was helpful. I look forward to continuing to adopt this great tool, and would love to contribute in the future.