# Post v2 roadmap

**URL:** https://community.silverbullet.md/t/post-v2-roadmap/3070
**Category:** General
**Created:** [August 23, 2025, 1:45pm UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070 "2025-08-23T13:45:47Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)
#### Post date: [August 23, 2025, 1:45pm UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/1 "2025-08-23T13:45:47Z")

</div>

The first proper release of v2 is nigh’. Here are some topics that are top of mind for me to work on next for the SB core (I have other areas to work on for [Sustainable SilverBullet](https://community.silverbullet.md/t/sustainable-silverbullet/3051)).

Please let me know if you see other priorities.

Overall my primary concern is stability, reliability and security. Stabilizing the core functionality and APIs rather than rapidly expanding the feature set. I’d rather have the community be able to build stuff with Space Lua than to build in more functionality directly.

Specifically:

1. **Sync engine:** I think here we see mixed experiences. I barely see any issues, for others weird stuff happens. I think at its core the sync engine works correctly, it’s just a lot of special cases that make things potentially unreliable. I have some ideas on how to improve this (@mjf — who I know is suffering). Part of this should also be to allow more flexibility in what to sync (specifically: whether to include documents/attachments or not).
2. **Encryption:** Currently we rely purely on you securing your server and browser, with SSL in between. I want to explore encryption to make things more secure at various levels: encryption of the local database (IndexedDB), but perhaps even an E2EE mode where the content is stored encrypted on the server and only the end-user has the key. Obviously the latter would break the concept of “these are just a bunch of markdown files on disk” and the ability to run shell commands so this would be optional. It could, however, provide a secure way to run SB in a multi-tenant cloud environment.

---

<div class="post-metadata">

### Author: ![nguyeho7](https://community.silverbullet.md/letter_avatar_proxy/v4/letter/n/f1d935/32.png) [@nguyeho7](https://community.silverbullet.md/u/nguyeho7)
#### Post date: [August 24, 2025, 10:53pm UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/2 "2025-08-24T22:53:34Z")

</div>

Maybe one thing you can consider is spacelua development experience, like documentation, error handling (I think I had one case where invalid space lua code would cause everything to loop), more examples (simple ways to create slash commands, and new page templates) and tooling.

This is probably not that interesting for non technical users but even just “this is how you can make a header on top of your journal page that shows upcoming birthdays” would be neat and a motivation to learn lua.

Right now we can plop space lua code anywhere but it might actually be better to be more opinionated (at least, give strong recommendation) as to where the code should be (like, an extensions/ folder?)

---

<div class="post-metadata">

### Author: ![mjf](https://community.silverbullet.md/user_avatar/community.silverbullet.md/mjf/32/654_2.png) [@mjf](https://community.silverbullet.md/u/mjf)
#### Post date: [August 25, 2025, 6:37am UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/3 "2025-08-25T06:37:28Z")

</div>

> [@zef](#):
>
> **Encryption:** Currently we rely purely on you securing your server and browser, with SSL in between. I want to explore encryption to make things more secure at various levels: encryption of the local database (IndexedDB), but perhaps even an E2EE mode where the content is stored encrypted on the server and only the end-user has the key. Obviously the latter would break the concept of “these are just a bunch of markdown files on disk” and the ability to run shell commands so this would be optional. It could, however, provide a secure way to run SB in a multi-tenant cloud environment.

The End-to-End-Encryption (E2EE) is indeed good thing and it is certainly worth implementing, but please, it **should** be optional, opt-in, feature.

I have my disks, of course, encrypted. I edit the content of files in `vi(1)` very often and I also use other unix tools to inplace edit them, such as `sed(1)` for finding and renaming things in the whole space etc.

---

<div class="post-metadata">

### Author: ![mjf](https://community.silverbullet.md/user_avatar/community.silverbullet.md/mjf/32/654_2.png) [@mjf](https://community.silverbullet.md/u/mjf)
#### Post date: [August 25, 2025, 6:48am UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/4 "2025-08-25T06:48:13Z")

</div>

> [@zef](#):
>
> **Sync engine:** I think here we see mixed experiences. I barely see any issues, for others weird stuff happens. I think at its core the sync engine works correctly, it’s just a lot of special cases that make things potentially unreliable. I have some ideas on how to improve this

I would beg for some deep inspection of the overall logic. What is the actuall “notion” of the _source of truth_ in Silverbullet? How does it resolve split-brain scenarios? Do some potentional edge-case race conditions exist? I know you did your best to avoid any logical flaws in the code but from what I have seen so far, there are at least some edge-cases where the synchronization mechanisms **can** fail to do good job for the user. On the other hand, these things are always extremely hard to debug, reproduce, etc.

Apart from synchronization of the content between Silverbullet clients and the server I would also like to see the _eversaving_ mechanism to be revisited. Silverbullet is now saving immediately after I write a letter. This is sub-optimal, it causes miscellaneous issues (discrupts selection of text, for example, in code blocks) and the scenario should be somehow configurable, customizable. I would suggest to look into this as well.

Some people were also suffering from the periodical actions in Silverbullet, as I remember. Any background action, such as (re-)indexing, saving or synchronizing, should not disrupt client action (reseting menu position, for example, or the issue with the selected text).

All of these things look like to have something similar. I cannot guess more. 🙂

---

<div class="post-metadata">

### Author: ![laurybueno](https://community.silverbullet.md/user_avatar/community.silverbullet.md/laurybueno/32/1601_2.png) [@laurybueno](https://community.silverbullet.md/u/laurybueno)
#### Post date: [August 27, 2025, 5:11pm UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/5 "2025-08-27T17:11:05Z")

</div>

Those priorities look great!

If I were to add anything, it would be some “selective sync” to avoid overloading the browser with big files in the space.

This is a bad habit, but I love storing files like PDFs, PPTs, and images in notes. Having them available in the exact right context is very appealing to me.

---

<div class="post-metadata">

### Author: ![Nick](https://community.silverbullet.md/letter_avatar_proxy/v4/letter/n/f9ae1b/32.png) [@Nick](https://community.silverbullet.md/u/Nick)
#### Post date: [August 28, 2025, 6:31am UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/6 "2025-08-28T06:31:03Z")

</div>

Ability to for custom code to use Cmd+/ kind of input would be nice for full text search.

IMO Encryption is incredibly out of scope for now, as long as we dont allow multi-user interaction, E2E is extremely trivial for single user with just space-JS thingy.

If you however implement solid multi-user env. and new sync, with stuff like Jetstream for event handling, that would be much more useful than e2e.

---

<div class="post-metadata">

### Author: ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)
#### Post date: [August 28, 2025, 9:04pm UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/7 "2025-08-28T21:04:22Z")

</div>

Another important item:

- **Documentation:** I’m seeing some comments on this topic here and there and it has to be acknowledged. We need more and better docs. With more examples.

---

<div class="post-metadata">

### Author: ![mjf](https://community.silverbullet.md/user_avatar/community.silverbullet.md/mjf/32/654_2.png) [@mjf](https://community.silverbullet.md/u/mjf)
#### Post date: [August 29, 2025, 6:21am UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/8 "2025-08-29T06:21:23Z")

</div>

What about to use something like GH discussions for this? To have a thread to discuss documentation there… (?) @zef

---

<div class="post-metadata">

### Author: ![mjf](https://community.silverbullet.md/user_avatar/community.silverbullet.md/mjf/32/654_2.png) [@mjf](https://community.silverbullet.md/u/mjf)
#### Post date: [August 29, 2025, 9:00am UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/9 "2025-08-29T09:00:56Z")

</div>

Just to left note here as well. It would be splendid if we have the indexed [citations](https://community.silverbullet.md/t/ideas-on-citations/2999/2) support (also beying discussed [here](https://community.silverbullet.md/t/how-do-you-do-citations-in-sb/3029/7)). 🙂

(I am a little confused by the fact that so few people engaged in the discussion about the feature. Nobody cites?)

---

<div class="post-metadata">

### Author: ![deepkn](https://community.silverbullet.md/user_avatar/community.silverbullet.md/deepkn/32/412_2.png) [@deepkn](https://community.silverbullet.md/u/deepkn)
#### Post date: [August 29, 2025, 9:42am UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/10 "2025-08-29T09:42:09Z")

</div>

I do remember there were a bunch of concerns around performance at scale - when the number of documents shoots up. Personally I haven’t hit them yet and maybe v2 has made it much better, but given there is some thought on a managed hosted silverbullet solution, this could turn up as a concern pretty quick. It might be worth reviving the discussions around that as well.

---

<div class="post-metadata">

### Author: ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)
#### Post date: [August 29, 2025, 10:00am UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/11 "2025-08-29T10:00:42Z")

</div>

I’ve just updated the “sync engine” item to include selective syncing. Indeed, it should at least be possible to opt out of syncing documents (anything that is not a page) to all devices, this really limits scalability.

---

<div class="post-metadata">

### Author: ![CaffeineFueled](https://community.silverbullet.md/user_avatar/community.silverbullet.md/caffeinefueled/32/802_2.png) [@CaffeineFueled](https://community.silverbullet.md/u/CaffeineFueled)
#### Post date: [August 29, 2025, 9:26pm UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/12 "2025-08-29T21:26:03Z")

</div>

Isn’t the forum we already have the right place for it or am I missing something?

---

<div class="post-metadata">

### Author: ![MrMugame](https://community.silverbullet.md/user_avatar/community.silverbullet.md/mrmugame/32/358_2.png) [@MrMugame](https://community.silverbullet.md/u/MrMugame)
#### Post date: [August 29, 2025, 9:57pm UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/13 "2025-08-29T21:57:39Z")

</div>

If this is done in a gitignore style, could I then exclude all files and live in an “offline” mode again ? 👀  
Obviously it won’t be aaaas offline as the offline mode was, but just letting the sync engine pass through all files seems like a simple way to bring back offline mode, without all the coding overhead.

---

<div class="post-metadata">

### Author: ![zef](https://community.silverbullet.md/user_avatar/community.silverbullet.md/zef/32/7_2.png) [@zef](https://community.silverbullet.md/u/zef)
#### Post date: [January 4, 2026, 1:26pm UTC](https://community.silverbullet.md/t/post-v2-roadmap/3070/14 "2026-01-04T13:26:55Z")

</div>

For transparency, and as already hinted at in [Who is using `paragraph` for queries?](https://community.silverbullet.md/t/who-is-using-paragraph-for-queries/3686) I intend to spend the next few weeks primarily on optimizations, specifically on indexing.

In current `main` indexing is split into two phases, but this is proving problematic. I’ll likely revert this, but rebuild a lot of the indexing in a different way with proper test and ability to benchmark it better. I think this is worth pursuing. I hope to cut down the “client bootstrap” time significantly this way, but we’ll see.
