Integrate an open interface for collaboration plaftorms

Anki wouldn’t be Anki without the free shared decks and all the add-ons. And you ignore the large influence of foosoft on JP learning community and everyone else in the community. Sherlock too.

I worry about that all the time. I also think it would be illegal if some altruistic person were to scrape and back up everything (and then maybe create torrents or whatever). That just shows closed source = bad.

I think we should try to provide a fillip to open source projects, not the closed source ones. Honestly, I don’t like the fact that AnkiWeb is closed source but that doesn’t mean we should have another closed source (+ third party and paid) software being promoted in-app. Who guarantees that they’ll not leave the ecosystem in the future if free PR is done?

2 Likes

I think it is technically possible, but it would just be inconvenient. For example, there is a discussion in another thread to incorporate the FSRS simulator into the Anki, which means they are making Anki even more complicated, but FSRS is useful and I think such an activity is encouraged. Official Anki has supported their activities since the beginning, such things can only be done with full time developers.

I think the importance of official Anki in the Anki community is at least about 50%, but at the lowest estimate it’s about 30%.

I agree that ideally it ankiWeb should be open source, for example the page for Add-ons is not fully functional and inconvenient, if it is open source I think developers can add useful features by themselves. However, in reality, I think it would be difficult to do so.

My worry is that the number of users will increase so much that the server will not be able to keep up. The number of shared decks and user stored media will increase as the number of users grows. Unless the users pay for the cost of this server, volunteers will not be able to share what they contribute, it’s like a plate of food.

I completely agree that everything should be free, but volunteers and donations alone cannot cover this cost. When a Kitten breaks the server, we need at least one full time developer to fix it quickly, but AnkiDorid’s donation amount won’t even cover the cost of that.

The current Anki server costs are all maintained by the $25 paid by us AnkiMobile users, desktop Anki users and AnkiDorid users do not pay anything at all, so they are squeezing money out of AnkiMobile users, this has been going on for at least 14 years.

In other words, Anki has already proven that they have no problem continuing to sell paid products. This thread is about the adding of a paid third party organization to Anki, but since Anki is a company that sells paid apps for $25 all along, it is not a non-profit volunteer organization. So I think Anki makes money from their business and as part of their services they provide the free servers and useful tools for volunteers to participate.

I initially didn’t plan to reply to this thread, but maybe somebody wants to hear my thoughts on the issue.

The folks at AnkiHub are doing an amazing job and have a proven record of contributing positively to the Anki ecosystem. I strongly believe they are good people and don’t plan on hijacking Anki or serving the community poorly.

Money is not evil; it’s a necessity to keep progress going, and both AnkiHub and Dae are aware of that. Dae has made it clear that he also has to think of his business, and therefore made this decision. I totally respect that and wouldn’t do it any other way.

However, Anki is not like any other software developed by some LLC. It’s a very open community that thrives on its members and their altruistic contributions. This includes everything from the Anki core and add-ons to AnkiDroid, the Android app. Anki wouldn’t be where it is without its community and volunteers.

In light of that, I think it’s fair for others to request that all parties be given the same opportunities. Dae is already kind of doing that with his idea of allowing other parties to make PRs that include them in the core. Personally, I think that’s a poor long-term approach for reasons others have pointed out, but it makes sense for getting things started.

“Ideas don’t come out fully formed; they only become clear as you work on them. You just have to get started.”
I personally don’t have the resources or time to come up with a fully-fledged PR for AnkiCollab to be included in the core right now, but AnkiHub has the manpower and motivation to lay the first brick.

I don’t see anything particularly wrong with that, and maybe they can develop a system that balances an open interface with a solution tailored to their system. If they keep in mind that others might want to reuse as much code as possible while they develop the implementation, I can use their groundwork to create a working version for AnkiCollab and we can all slowly evolve it into an open interface from there. I’m suggesting this because I want to make it clear that if they aren’t allowed to do the heavy lifting, nobody will get any collaboration platform because there’s no way for me to implement an open interface from the ground up.

From what I understand, nobody is strictly against having AnkiHub available in the core, as long as the spirit of Anki is upheld and there is always an alternative for die-hard FOSS fans. If AnkiHub can use this step to improve the user experience and other platforms can use their groundwork to enable collaboration for those who don’t want to support AnkiHub, isn’t that a win-win?

I don’t think the first-mover advantage is a significant (negative) factor for free and open alternatives. AnkiHub’s development started over two years before AnkiCollab and already had about 30,000 users when I first published it. Yet, as of now, I still have about 800k notes stored on my server. People don’t really care about who came first; they pick the products that are available and suit their needs. If they want a highly polished, professional platform or are american medical students they will pick AnkiHub, if they only care about small deck collaboration or are fine with a quick and dirty method, AnkiCollab will do fine.

However, it should be clear to users that Anki itself has nothing to do with AnkiHub and is simply offering functionality for convenience, not endorsing it. Catchphrases like “AI Features on AnkiHub” or “Sign up here” don’t belong there. It should be clear to AnkiHub users how to connect the two, but Anki users shouldn’t feel like they are missing out on anything.

I don’t know why you’re so worried about my server, but please stop stressing about my resources. I’ll make sure to let you know once we come closer to the limit of what’s manageable;)

8 Likes

Oh indeed I was nosy, I apologize.

2 Likes

I agree with almost all of your views, but I wonder about only this point.
The official Anki and AnkiHub (Anking) are already so obviously related that they cannot be said to be unrelated?
To me they seem to have a relationship like a head office and a sales agent.

This PR/topic blew up in the middle of a particularly busy time, which was unfortunate. I regret not providing a more comprehensive reply earlier, as it’s led to a bunch of speculation.

As mentioned earlier, this PR arose from some talks between AnkiHub and I, which we actually had over a year ago. They outlined their concerns about onboarding and mobile users. At no point did I get the impression threats were being made - they were just frank about the issues with the status quo, and I was aware of other platforms like Migaku that have spun off their own SRSes in the past. As AnKing/AnkiHub are a significant driver of users to Anki, I felt it would be a shame if it got to the point where they felt like their only remaining option would be to migrate away from Anki, taking their present and future users with them.

The leaderboard is another one that mobile users could benefit from. But that presumably has its own protocol unrelated to collaboration, and would not benefit from the “open collaboration protocol” being proposed here.

I agree with the sentiment. My motivation here is making things easier for AnkiHub+Anki users, not about promoting/endorsing AnkiHub. A “third-party” section with more neutral language would hopefully reduce some of the concerns some users have about the promotion of third-party/paid services.

They are valid concerns, and additions would need to be considered on a case-by-case basis. My main concern would be that the contributors are willing/able to maintain that part of the codebase moving forward, and it’s something that enough users would benefit from.

I appreciate you taking the time to weigh in, and largely agree with you.

As you’ve presumably also concluded, I don’t think the alternatives are viable at the moment. Something ala AnkiConnect is still a ways off, and any solution based on such a generic API is likely to be more clunky/perform worse than a bespoke implementation at the Rust level. And a generic collaboration protocol is going to be hard to build without more examples and/or working together, so commonality/differences can be discovered.

I think that’s likely the most pragmatic approach. AnkiHub would be sponsoring the initial hard work, and giving you something to work from. I think it’s reasonable to ask them to be mindful of other implementations (and you might make this easier for them by giving them a brief summary of your protocol, if they’re not already familiar with it). On the other hand, asking them to deliver an open interface from the get-go feels a bit unrealistic.

8 Likes

Since the original leaderboard was no longer developed by the author, I am developing it now. (I suggested to him that I could log in to his server and maintain it without deleting the add-on, but that was not possible due to the terms of service.)

If AnkiMobile could send collection data directly to the web server, it would be quite useful so I want to use it. (For example sending decks directly from AnkiMobile to AnkiHub for synchronization)

Other than leaderboard, I was previously asked by the AnkiDroid developer if I would be interested in developing a Pokemanki for mobile, I want it to work cross-platform so I plan to develop a Pokemanki that runs on a web server, this also requires uploading the decks.

1 Like

Like AnkiHub intends to, the leaderboard add-on could could send/receive data when the user taps the sync button. You would need to write the Rust code that extracts the information from the collection and sends it to the web service.

UI could be presented to the user either via an independent Svelte page inside the app, or via the external site - the latter would minimize the amount of code that needs to be maintained inside Anki.

I think such an approach is only practical for external services that just need to send/receive data. For add-ons that do things like modify other Anki screens like the reviewer, that’s going to become complicated to manage, and is likely going to have to wait until we have more hooks, JS add-ons and an API in place.

1 Like

That’s interesting, since I thought it would be impossible to develop such a feature and incorporate it into official Anki, so I’ll look into it.

But I think it will be a long time before it can be developed.
If I develop an advanced server for mobile like Ankihub, and request the adding feature to the official Anki, I think it should have at least 5000 to 10,000 users, but so far there are only 300 users on the leaderboard. (I just looked and there are 299 people)

For leaderboard, it seems to me that just the function to send the decks directly to the server without any UI would be sufficient.

Other add-ons that use servers are HyperTTS and AnkiBrain (AI add-on).

There are probably no other add-ons that use servers, maybe a server is too much work for the developer.
For example, the author of leaderboard had been developing it for over 4 years, but he said it was too much work and he lost motivation.

Third party organizations might be interested in this interface.
In the future, this Ankihub feature seems to me to be capable of sending and receiving complete decks. (Though that may not be possible)

For example, apps with their own SRS web servers, such as Migaku or Anki’s similar apps, might want to offer their users the option of syncing with Anki.

School officials may also need a closed server to manage student learning or distribute their own decks.

I think the problem with this is that it competes with AnkiMobile.
For example, schools could distribute their own servers instead of AnkiMobile, and copycat apps could offer a paid option to sync with Anki.

However, based on the discussion and conclusions of this thread, such conflicts and financial reasons may not be very important.

In my opinion advanced developers can add feature directly to Anki and AnkiDorid (like FSRS and Image Occlusion), so hooks for mobile don’t seem to be in much demand. (It would be useful if there were though)

We updated the design according to feedback:




image

7 Likes

Looks good :slight_smile:

1 Like

The fact that this is located in “third-party services” section already conveys that AnkiHub is a third-party service. Do we need to be repetitive?

Also, I think that adding a brief description will be better. Otherwise, a user who doesn’t already know about AnkiHub will be forced to search online to know what it is. I think that we should retain “provides features such as collaborative deck editing” from the previous description, without retaining catchy phrases like “AI capabilities”.

4 Likes

I’m a bit unsure if there needs to be a new tab for third parties, at the moment there is only Ankihub, so it seems to me that it is more outstanding. (But I agree that it will be needed once more third parties are added.)

If the official Anki makes it clear that they are not promoting AnkiHub, I think it might look something like this.
image

Not a fan of the dropdown idea and the wording.

“You should use only services you trust” feels out of the place with services built-in into the app (which implies a certain level of trust).

3 Likes

eh, i wish all of this work would just be put into making the sync server more robust.
also, it would help a lot with people complaining about downtime and such if the system eventually becomes distributed.
theres a lot of things i have in mind, but im not quite sure about the security aspects…

1 Like

I’m sure a lot of people would help if AnkiWeb were open source. I’m looking forward to the day that dreaded full sync dialog is gone.

1 Like

Well I too don’t like it :confused: as I already explained I think Anki and AnkiHub should officially partner and promote it, however, no one seems interested…

For anybody curious why AI was mentioned, this is what we are currently working on:

Video demo link

4 Likes

This genuinely looks great. Thanks for linking me to it in Github!

Now, as I’ve said before, it is better to mention the feature rather than the technology. One possibility that I see here is of a more general semantic search feature. Preferably, accessibile from the browser. I have seen somebody recently bringing this up, although they didn’t mention Al or LLM. I believe more people will use AnkiHub for “semantic search” then they will for the underlying “AI”. Perhaps such phrases can be used as alternatives to “AI”. From a personal standpoint, I would love having something like a “Google search” inside Anki : )

Apart from this, a few questions will help define better terms to use instead of AI. How is a user supposed to use the chat bot? How will this fit into the workflow of a user? Is it supposed to replace Google search for complex topics medical students study? How is it necessary to access the chat bot from the review screen? Do users suspend one card while studying another card from a different note?

1 Like