Proposing development of a Fibery <-> Obsidian sync plugin (independent, open source)

Thanks for thinking of me @Oshyan! It does sound like an interesting project, though I’m not familiar with Obsidian. But unfortunately I don’t currently have the time available to to justice to a project like this :worried:

2 Likes

Fantastic, thank you! Would you be interested in a progressive contribution based on a phased project, milestones, etc? E.g. Phase 1 is basic .md content sync, no databases, no Dataview, etc. Phase 2 is basic database sync. etc., and each phase you could contribute some portion of your total? Or are you only interested if it is as extensive an integration as you outline above (i.e. all features in your bullet list and more)?

Some great ideas here, getting into some aspects I hadn’t considered more deeply yet. Love it!

No worries Matt! Just thought I’d ask. :grin: If you happen to know any other devs with Fibery experience who might have interest let me know.

I’ll look over the Fibery Partners page and do some more research, but perhaps @Dimitri_S might have interest? I’m also going to work on how to present this idea to the Obsidian community. Hopefully with the relative ease of Fibery API, an experienced Obsidian dev could do just fine with it, even without prior Fibery experience. My main concern would be the data model and translating concepts/data from one to the other, which I think requires some understanding of Fibery’s way of doing things vs. Obsidian.

But this is a promising start!

Chiming in.
@Oshyan sounds like an awesome idea. Do you have any clients interested in that use case directly ?
I’m concerned with open source license with amount of funding provided.
We made toggl integration free and open source but there are plans to extend it with paid tier.
I’d consider similar model for this one instead of free forever for any extension of basic functionality.

1 Like

I would be willing to progressively contribute. The milestones would need to be discussed and agreed upon beforehand.

1 Like

Hi, that’s an interesting idea. I’m also both a user of Obsidian (perso) and Fibery (pro).

I’m still wondering what are the first use cases you’d like to address with such a plugin.

If that can be helpful, I can share what I did at the moment (similar to, but not quite what you are describing).

I don’t have too much time to code in a plugin at the moment (+ javascript is not my cup of tea) but I’d be happy to provide some help if a developer has questions about these 2 pet projects.

1 Like

@Oshyan wanted to check if you are aware of current limitation of fibery sync api. It’s one way only meaning that ANY content changes made in Fibery directly to obsidian data will be lost.
The following should be preserved:

  • New fields/formulas added to existing data entries from Obsidian
  • Relationships in fibery
  • Views and ranks in them in fibery

I do remember @mdubakov mentioned that one day - we will get two ways syncing support. Not sure when is this one day coming though.

1 Like

Just to clarify - it is possible to create custom apps that will ‘push’ data to external sources, but this manifests as external actions available in automations.
There is no automatic mechanism for always updating the external data when data is changed in Fibery, AFAIK

4 Likes

There is something used for Jira. I don’t believe it’s using external actions but some-kind of triggers instead.
External actions can be a potential solution combined with rules to update certain things in Obsidian but it’s quite a clunky solution TBH.

3 Likes

I do not have anyone on my side besides me who is interested at this time. However it may well be something that I would recommend to people if it became available, strengthening the use cases for either Obsidian or Fibery respectively (both of which I recommend but both of which also have concerns come up from users due to various limitations that would be partly or wholly solved by syncing them).

Funding is not wholly determined at this point, we’re still gathering a sense of who will contribute and how much. Until a formal effort is launched, e.g. on OpenCollective, it’s hard to say how much might be available. But to be fair it will likely not be a huge amount.

What are your specific concerns about the licensing?

Yes, absolutely!

For me the minimum useful capability would be sync of Rich Text/Document content (including from Entities). For me this provides backup of a reasonable amount of my content, though far from all, and also allows me to do fast, local, offline search, local LLM AI operations for privacy/cost savings, etc.

That said the initial milestone/MVP of this is open to discussion and should be planned by all interested parties who would use the plugin, IMO.

Thanks, that’s good to know! That 2nd tool seems particularly interesting just for my own use as well.

My assumption was that it could be a simple periodic sync like most others Fibery currently has, but do it bi-directionally. Is that possible given current options?

Maybe there is a misunderstanding here. Let me elaborate on our current business model.
Taking for example the Toggl integration.
It’s code is open source and even hosted by Reify Academy. Can be used by anyone free of charge. However, that is basic version of toggl integration only.
For advanced version with extra features we will be charging monthly subscription fee AND source code won’t be published.

For custom integration for our clients we use similar model - however as client is essentially sponsoring initial stage of development they are given X months to use the premium version for free.
For custom integration open source version extracted from premium.
A client(in case of open collective - clients) receives support and pro-rated usage of premium version NOT the source code for integration.
How does that sound ?

2 Likes

I understand your approach, yes; it’s a fairly common one in my experience and can certainly work well. But I wanted to understand your objection to/concern with a fully open source approach (all features open/free). Are you just saying that you feel some ongoing revenue is needed to sustain development and make it a long-term viable project? And in that case that you suggest this “hybrid” open/premium model as a way to do that?

Spot on. The main cost of software is not in development, maintenance overtime adds up to a lot more.

OSS projects in general are notoriously bad in getting any level of funding, even popular ones. One famous recent example was a log4j bug.

So yes I’m thinking about what happens after the initial version.
Either we will continue to extend it with growing interests from clients willing to use it
OR
Community can continue extending it given it becomes popular.
Both of those things could happen in theory which would mean win-win for both parties.

The last thing I want is to create something and abandon it cause it takes too much time and energy to maintain for free.

I did find this interesting example of paid plugin in obsidian. Very similar idea.

3 Likes

Yes, just as I thought. I would say I’m open to the possibility of OS + premium (paid) features, especially if an interested dev is inclined to go this route. However a majority of successful Obsidian plugins are not commercialized this way, so I would be concerned about compatibility with the general Obsidian community ethos. These concerns - longevity/maintainability and reception by the respective communities - need to be balanced.

It’s my hope as well that a more direct integration between Obsidian and a true database tool like Fibery would perhaps start to make that tool the de facto choice for those who want additional DB capability. Currently I think this is mostly Notion due, I think, to its higher profile and ease of use. I think Fibery has a stronger case for being a good Obsidian companion, even without a direct sync, but especially so if that can be developed. So it would be my hope that a smaller group of enthusiastic users kick-start the dev of this, which then helps prove its value to Obsidian people, which gains more users, and thus helps create long-term support for the project through dev contributions, ongoing voluntary funding, etc.

Note that Open Collective specifically has ongoing (e.g. monthly) contribution options precisely to try to address the kind of long-term maintenance concerns you have. E.g. someone can pledge $1200, but as $100/mo for a year rather than in a lump sum.

1 Like

i wrote a workflow in n8n to sync obsidian files from Google Drive to Fibery, extracting YAML and putting all in the corresponding fields, and the whole document as MD in a rich text field.

its not a two way sync, but a one way from Obsidian to Fibery. it probably works with other file storage systems as well

the javascript that picks apart the Markdown can be adapted to work on a button inside fibery too i guess? it looks like this

var mdData = $json.data;

// Split the markdown content into sections
const sections = mdData.split(/(?:\n---\n|> \[!Meta\]\n)/);

// Initialize variables for extracted data
const extractedData = {};

// Check if a frontmatter section exists
if (sections.length > 1) {
    // Extract data from frontmatter section
    const frontmatterLines = sections[0].split('\n');
    frontmatterLines.forEach(line => {
        const match = line.match(/^\s*([^:]+):\s*(.*)$/);
        if (match) {
            const key = match[1].trim();
            const value = match[2].trim();
            extractedData[key] = value;
        }
    });
}

// Extract data from body section
const bodyLines = sections[sections.length > 2 ? 2 : 1].split('\n');
bodyLines.forEach(line => {
    const match = line.match(/^\s*([^:]+)::\s*(.*)$/);
    if (match) {
        const key = match[1].trim();
        const value = match[2].trim();
        extractedData[key] = value;
    }
});

// Extract data from meta section
if (sections.length > 2) {
    const metaLines = sections[sections.length > 2 ? 3 : 2].split('\n');
    metaLines.forEach(line => {
        const match = line.match(/^\s*([^:]+):\s*(.*)$/);
        if (match) {
            const key = match[1].trim();
            const value = match[2].trim();
            extractedData[key] = value;
        }
    });
}


return(extractedData);

the file is a bit more complex than it would need if data is kept the same throughout the vault. but mine are a mix of frontmatter YAML and “postmatter” callouts

3 Likes

Hi Oshyan,

I previously used Obsidian and I had one of my teams develop custom plugins for me. It was a love/hate relationship for me and while ultimately it was a good learning experience but a significant drain on my brain (and I’m recovering from a brain injury, lol).

I got to a point of mastery - though not mastery of all the programming.

I’ve found that Fibery is so much more intuitive and amazing, and while the are some shortcomings, I do miss the development community.

What is it you would want to use both for versus just Fibery? Is it a privacy thing? I know the majority of Obsidian users are highly focused on that.

If there is a development community, or if not and one can be started, I will volunteer time, money, and resources. I’ve only just start bringing over some team members, but right off the bat this tool is illuminating for me unlike any other I’ve used and I have used everything.

1 Like

for me some reasons to use obsidian:

  • local and offline (this really improves speed and also mobile use. nothing is more of a kill than having no access to a note when wanting to add an idea. one of the main reasons i will quit the clickup journey, as i lost hours of work with a lack of reliable offline access ((editing documents messing stuff up)))
  • keyboard speed (its unbelieavable fast to edit documents with just keyboard never to click anywhere. )
  • linking (having the ability to create links to documents with cmd+L … this should work in fibery too, but as its in the browser cmd+L activates the brwoser bar)
  • task management. its so easy to create inline tasks and have these accumulate at other places.
  • document first; dataview later (obsidian has all the related information in the document. there is no framework in how i need to lay out the info on the page. it can be structured or unstructured. no sidebars and hidden options - all in plain sight. but when i need a table view, i have the option to get it all with dataview later on. this is perfect to work with my thought process)

resons to use fibery (over obsidian):

  • online, team capable (obsidian is not usable for teams at all. because of the unstructured way of things and the easyness of editing and destroying anything)
  • structured data (as much as i dont like to be in a corset, in a team its important that everything follows rules

so using them both can give me an offline experience that is fast. i can setup my templates and go about my day as I did the past three years. then it syncs to fibery and those informations that need to be in the team pop up at the right place in the right format.
of course - a fibery offline mode and mobile mode would solve a lot of these hickups and would probably lead me to adopt fibery a lot more. currently its still clickup (becuase of their mobile tool and team sharing capabilities)

1 Like

Something to add here:

As a very new plugin for Obsidian just came about there is yet another reason to really dig into the sync options:

khoj uses LLM or chatGPT to query and talk to your whole second brain. start a conversation with your vault is mindblowing. it would be amazing if fibery would also allow to access the whole information accross all DB and documents to write new documents, forms, pitches etc. but for now khoj is a way of doing this. still very early dev but really amazing already

2 Likes

I’m pretty confident that it will at some point be possible to chat with AI in Fibery where the information available to the AI includes the content of the workspace.
It’s a natural progression from semantic search I guess.

3 Likes

First an apology for going silent in this thread for a while. I’ve had a lot going on in my personal life, including some family health issues (everyone is OK, just things to work through!). But I remain very interested in this idea and hopeful that an actual sync/integration plugin could be developed in time.

For me this would be one of the principle reasons to integrate with Obsidian. I think it’s clear at this point that Fibery will probably never have the vibrancy of development community that Obsidian does, and that’s OK. It would be even more “OK” though if we could have at least some access to all the capability in those plugins, while also taking advantage of what Fibery has to offer (which I agree is generally better than Obsidian in many respects).

  • Offline and local access to my core data (text, markdown, hopefully structured data too, i.e. databases, although this seems much harder to sync properly)
  • Use of Obsidian’s advanced text editing environment, customizable hotkeys, etc.
  • Alternate and powerful views and UI affordances for working with text, e.g. Tabs, flexible Panes, Themes, and perhaps one of my biggest motivators: Canvas view
  • Since this one is important enough, I’ll repeat it as its own point: Canvas View. Because of its importance to me, and what I think it represents, I’ll elaborate further on it separately below.
  • Ability to leverage local tools to operate on my content/data (making an Obsidian sync inherently creates a local archive of markdown files that can be manipulated by any local or even cloud tool, provided it connects to Obsidian, and which then syncs legibly back into Obsidian)
  • Ability to utilize any number of mobile markdown/Obsidian apps for a far superior mobile experience, especially for the kind of quick note-taking, list management (e.g. shopping list), etc. that I mostly want for mobile (and which is fairly horrible with Fibery at the moment)
  • Access to the development community and all Obsidian plugins (since almost all Obsidian plugins fundamentally operate on markdown content, their manipulations/functions are mostly codified in a way that could be synced into Fibery legibly)

So about Canvas View: to me this is an (unfortunately) far superior “Whiteboard” function that sprang from nowhere in Obsidian and already does the most important knowledge organization things better than Fibery (for the most part), including embedding full contents of notes/docs, better and smoother visual connections, frames, embedding active websites, and more. Honestly this one feature was one of the most motivating things for me to want a sync and I started using Obsidian exclusively for tracking my personal therapy work due to the ability to create visual maps of my “Parts” (IFS therapy model), but it is equally if not more powerful and applicable to many business cases.

I’ve tried to use the Fibery whiteboard for similar things in the past and it’s just too buggy, inconsistent, and inadequate. And unfortunately it does not appear to be getting much development focus for the moment, understandably given the many competing priorities, but this just gets right back to the main point: Fibery team can’t and won’t “do it all”, but what if they don’t have to? What if we can reliably sync and in general operate compatibly on the same content with another tool that massively expands Fibery’s accessible functionality? Then the Fibery devs don’t have to do everything.

Imagine if the Obsidian ↔ Fibery sync plugin had existed already a year ago. Then all of the cool AI tools that immediately sprung up (some within days or a mere week of ChatGPT API availability) could have been usable on Fibery content from the moment that plugin became available. Likewise as soon as Canvas became available I could start my IFS mapping, but those docs/pages that I created in Obsidian would also be available in Fibery right away, and I could link to and search on them for other purposes for which Fibery is better, while still maintaining the advantages of Obsidian’s Canvas.

I also hope that such a direct and well-developed sync could actually make Fibery the de facto/default “other” tool that Obsidian users turn to and become comfortable with when Obsidian alone doesn’t do all they need. Right now this is Notion mostly, and a few others. What if it were Fibery? The massive and popular Obsidian community could actually help popularize Fibery for individual PKM use cases, which could in turn make Fibery more popular overall (just as personal Notion use seems to have translated heavily into organizational use).

In short, this whole idea is - to me - fairly significant in its potential impact, and I think to a degree it should be considered with a little distance from the fact that it would be syncing with one specific tool (Obsidian). If you think of it more like a local backup and interop system which allows you to reliably operate on Fibery content with any number of other Markdown-compatible tools, both offline and online, then it gets closer to the hoped-for reality and potential impact. It just happens to be enabled by working through Obsidian, which makes sense because it’s a mature, robust, and popular tool, with a good API, and strong development community. So while a true stand-alone local markdown sync tool for Fibery could be made, I think it makes more sense to leverage the Obsidian advantages (given it is free anyway), speeding up development and popularity/reach with minimal downsides. Even if the only reason to make it sync with Obsidian was to be able to access that community, it’s reason enough: a Fibery-only local sync would only be of real interest to existing Fibery customers, whereas an Obsidian plugin that syncs directly and reliably with a powerful, collaborative cloud dev/proj management and database tool would potentially be of great interest to many Obsidians, i.e. expanding Fibery’s market. We just need a developer or two to take on the creation of the plugin…

Fantastic, thank you! Because of your interest and that of a few others (including myself), I am strongly considering setting up an OpenCollective for this project. That would allow us to safely contribute money to it in a way that is quantifiable and can be clearly and reliably demonstrated to any potentially interested developer(s) (as opposed to the more nebulous - though greatly appreciated - pledges of support here). Is that something you would consider supporting, even with just an initial contribution of say $100 or something?

You’re probably right, but why wait? :wink: In a distant future I’m hopeful that Fibery will encompass everything I need/want Obsidian for right now, and implement it all in a superior way. But realistically that’s probably not going to happen, and even if it does, in the meantime I have to make do with a lot of limitations vs. my needs. An Obsidian sync plugin could, I think, solve a lot of challenges in the short-medium term. Maybe we can even get Fibery team itself to contribute a little toward the effort? :grin:

1 Like

Sorry for the double-reply, but I forgot this one…

That’s quite cool, and goes a long way toward what I am hoping for from this plugin! Although relying on a 3rd party tool/platform with non-trivial costs/less accessible self-host requirements (cost/complexity vs. a simple Obsidian plugin). Nonetheless it’s very cool and something of a proof of concept.

Is there a major (technical) reason it’s not two-way? Or you just didn’t need/want to develop that?