The path forward
oskardotglobal opened this issue ยท 16 comments
As we've learned, Obsidian will keep trying to prevent the sync plugin from working on newer versions. On desktop, just replacing the asar is possible, but on mobile it is not.
There has to be a better solution for the problem with the plugin than to keep on playing cat and mouse with the obsidian devs.
We could:
- Reverse engineer the actual sync plugin so we don't have to ride off of code they might patch
- Write a sync server and client from scratch
There's this somewhat abandoned project called obsidian-diy-sync which could serve as a starting point for this
I've been working on a general library compatible with the server which can then be plugged into Logseq or Obsidian but progress has been slow as I'm only now starting to learn TypeScript. The logic for websockets/callbacks is a bit confusing. That is the plan rather than maintaining a plugin they will relentlessly patch. After that is done, Logseq will come first as I would rather migrate away from Obsidian as a closed source solution.
I can help out if you need to, I have decent experience with TS
I'll be staying with Obsidian for a while so I can then also help maintain the actual obsidian plugin
I can help out if you need to, I have decent experience with TS
Thanks. I'll make an issue in the other repo to ask for some help/feedback
I saw the Obsidian update and before I hit the button I thought "No. Going to go check the obi-sync repo first", and behold. Obsidian introduces more f*ckery.
Not updating Obsidian until another solution is found.
Mine just updated itself. I'm using Syncthing in the meantime
Scrolling through the original Hacker news post I've just realized the Obsidian CEO tried to bribe you @acheong08
I don't want to reduce his motivation to learn how to reverse engineer things! I learned a lot from those kinds of projects. However, we do have a way to gift someone a subscription[1]
@acheong08 if you want a Sync subscription I'll be happy to cover it.
Ah was that a bribe? Also got an email for it.
My response:
- I think it's more fun (and for learning) to keep doing this somewhat blind. It's a great learning experience to read minified JS (although somewhat painful). I would like to avoid the temptation of just watching requests without understanding the internals.
I ended up borrowing an account from a friend to fix a few bugs though. It's too difficult to do completely blind
I actually thought the offer for a free account was to make the reverse engineering process easier rather than for me to use lmao
Idk, feels like it lmao
Sorry for the slow progress. I just moved to a new country with nothing but a laptop and some clothes -- Had to prepare for the start of university. I've settled in and will continue to work on this
@acheong08 Am I dreaming, or did you put out an update?
Does anything address the fiasco that broke it prior? Or are you still aiming to work on a separate project.
I'm just keeping compatibility (See #32) with the latest clients.
It's currently Christmas/New years break and I've got a bit of time. I've stopped using Obsidian (Now using neovim + syncthing). I've done a bit more JavaScript during my semester in university and now have a bit more confidence with it. If I can finish up the pending tasks on https://github.com/gptlang/CopilotChat.nvim/ I'll take another shot.
Scrolling through the original Hacker news post I've just realized the Obsidian CEO tried to bribe you @acheong08
I don't want to reduce his motivation to learn how to reverse engineer things! I learned a lot from those kinds of projects. However, we do have a way to gift someone a subscription[1]
@acheong08 if you want a Sync subscription I'll be happy to cover it.
This was in response to someone who stated "Give him sync for free! Or atleast let me sponsor the kid."
I think this person suggested that I offer a free subscription because in his original HN post, @acheong08 explained his motivation for the project by saying "I'm a recent high school graduate and can't afford $8 per month for the official sync service"
Re-read my reply: "I don't want to reduce his motivation..." โ In other words, I didn't want to offer a subscription if it would reduce acheong08's motivation to keep working on this project, but that I would be happy to cover it if he did want one. I continue to be supportive of the project within the bounds previously described in #19.
On a separate note, please be aware that we are actively working on lots more improvements to Sync, which could affect this project. E.g. #32 is a side effect of a change to check the number of vaults a user can sync since we recently increased that from 5 to 10. We're also making more improvements around security to better support our commercial users. This is to say you should expect an increase in changes around Sync in the near future.
On a separate note, please be aware that we are actively working on lots more improvements to Sync, which could affect this project
I'll try to keep up with things so nothing breaks but probably won't support new things (e.g. I see a region picker now).
Anytype
is upcoming note taking app which is focused on local-first and privacy. Its protocol is open source with MIT license. https://github.com/anyproto/any-sync. Maybe something like that can be integrated in ?
Over the past few days, I've tried to make the JavaScript plugin (independent from Obsidian's native one) and got the basic sync working. As I tried to integrate it into Obsidian with a UI to choose vaults / view history etc, I kinda just gave up. It wasn't really enjoyable & took more time than I'd liked. Since I won't be using it anyways, it lead to a bunch of procrastination and annoyance.
Will be archiving this project so I don't have to worry about it anymore and do more enjoyable things.