Export function to prevent vendor lock-in

Hi y’all and especially @Neicudi,

so, I started using Kitsun recently and really like it. Works much better for me than Anki, I love the community decks, the openness about suggestions from the community and so on and so forth.

One thing that really worries me and almost made me not even do the trial: there is no export function.
I do plan to buy the lifetime subscription and use this platform for years to come.
Let me try to explain why I still think an export function, including community decks, is very important.

Vendor lock-in
For learning, it’s inherent that users invest A LOT of time in the platform and the decks (even when “only” using community decks). Without an export function users are completely dependent on the platform.
I read in another thread that you intend to keep the site running even when you’re the only person left using it. I believe you, but I still think users should be able to take their progress with them.

  • What if they don’t like where the service is going?
  • Users shouldn’t have to rely to on someone else’s backups they don’t know anything about.
  • What if you are offered enough money to sell the platform and it changes dramatically?
  • What happens to the service in case you can’t work on it anymore? Unforeseen life changes or accidents do happen.

Reuse, remix, contribute
I totally get that you want to protect the content people put a lot of work into and don’t want a trillion copies of decks in your database with non or only minor changes.
I still think users should be able to export community decks:

  • Most community decks are based on other decks or books anyway. Here’s my open source heart coming through. I think it’s fair to give back to the community and enable people to reuse and remix.
  • If anyone want’s to go in a completely different direction with a deck they should be able to do so. It’s a total waste of time to do everything from scratch when there is a perfectly fine base to start on.
  • What happens if a deck creator abandons a deck? Probably you could assign it to someone else manually. But is that ok, in case the original author comes back some day? Are there any thoughts or rules about that already? Wouldn’t an official “copy and continue” feature be cleaner? Maybe manually requested and approved so it doesn’t get out of hand. Ideally offer users of the deck to switch to the new one while keeping their progress.
  • If a content creator is actively working on and maintaining a deck I think it doesn’t make any difference for their patreon or whatever they set up. People who want to give back or contribute generally want to reward the effort and are glad they don’t have to do it themselves. At least I feel even more compelled to contribute if the content is accessible and doesn’t prevent me from using it any way I want.
  • If I really want to get the data out of here, you know I can just scrape it. By providing an export function the database access happens on your own terms. Maybe users could request an export in the settings and you can just run it within 2 days when load on the server is low. Or regularly generate a zip-file of decks automatically if there were changes so the user progress is just a small json/csv/whatever file to export right away.
  • There’s no need to provide a one-button solution for copying a community deck into a user’s personal decks if that’s what worries you. Yet I’d rather see you encouraging users to adhere to best practices (e.g. contributing and suggesting changes instead of just copying decks) by nudging, UI design, moderating and communicating than by completely forbidding things.
  • It’s probably not easy and needs to be thought about thoroughly to make it work, but it would be awesome if users could add their own stuff to community decks. Like layouts or additional fields while still using the original fields. Possibly even make those optionally available to the community. That may further prevent unnecessary copying and split the maintenance effort between the deck creator and contributors.

I know this was a lot of text, thank you for taking your time to read it all.
Let me add that I really love Kitsun and that I don’t want to be negative, but contribute ideas about how to make it even better. I’m happy to discuss and brainstorm ideas and features.

Cheers,
Anna

1 Like

Hi @kikiwi! Welcome! :smiley:

I just want to state right away that this is definitely on my to-do list. Right now I run manual exports for anyone that asks me (usually through PMs). I will never lock anyone’s personal content and not allow them to export their own cards.

I understand your concerns about how I can’t guarantee manual exports forever, but I think this would simply be solved by the re-introduction of the export functionality as mentioned above.


Community decks:

The Kitsun community, myself and the Kitsun team-members put in a lot of work to increase the quality of the decks on Kitsun. I want to avoid exactly the situation that’s happening over at other tools/websites (say, Anki) where there’s 5000 different copies of the same deck and the user has no clue which one is the most up to date or the best.

This is not always the case, there’s enough decks made from scratch already. Often by using the dictionary tool or by manual card creation. The deck author themselves can choose whether they’d want to export their decks and share them on other websites or through other means.

Quality sources and decks take a lot of time to create. I feel like this would take away all potential monetization options deck authors would have if it ever comes to that point (say patreon or buymeacoffee). I agree that it would be optimal to start with a quality deck and customize it completely, but Kitsun already has a lot of customization going on that you can utilize to fit your learning style. The only major “problems” I could see here are:

  • The layout styling
  • The sibling cards (aka layouts on a card) having shared progress where you might want it separately

We have plans to add deck creation collaboration at some point, where the deck author can approve/invite “team” members to help with editing and tackling feedback. In the case that a deck will really get completely abandoned and is actively used by a lot of members, our team could try to reach out to them to see how they think about appointing a new deck author (either the Kitsun team, or a community member).

I personally think it does. What if someone exports the deck, imports it again and then publishes it to the community centre? I get what you mean, but this would definitely be a real scenario, just take a look at the alternatives right now.

Of course, that’s true. But the amount of people who will scrape something is a lot less than the amount of people who would push a button to export a community deck.


I want to mention again that I do understand where you’re coming from, but aside from the above mentioned arguments and things like having copies of large decks clog up the database. Kitsun too is still in a very startup-ish kinda phase. Community content made better by feedback from our community members and curation of content is one of the ways we set Kitsun apart from other tools.

In that sense, allowing exports of community decks could be detrimental to both Kitsun and the respective deck creators. I think letting users export their personal decks and letting the author export their own content is sufficient. That way the deck authors themselves can always decide if they wish to share exports or not.

I have no problems with letting users export their own content of course :slight_smile:

5 Likes

@Neicudi,
thank you for taking the time for your thorough answer.

I’m very happy to hear this. Indeed this takes away my biggest worry. I know you actively work on improving the platform and look forward to what is to come.


Exporting the community decks:

This is where we disagree. I think people realize how much work goes into making and maintaining a quality deck. People not willing to spend any money won’t use this service anyway.
Do you plan to directly support monetization on this service?
On platforms that are outside this service (patreon etc) and optional I think it’s mostly the time and work people want to reward.

Export function or no, I would really love to see further options to personalize the usage of decks.
Using a personal layout or tweaking the deck’s layouts would be awesome.
Also adding additional fields as a kind of “extension” to the original deck would be cool.
I don’t know if sharing those would be cool. It’s probably easier to let the deck author add those contributors to the team for the deck.
As you can guess, I’m really looking forward to more collaboration features that I saw mentioned here and there :grin:

I totally get that concern. I would personally prefer if the design of features strongly discourages this and strongly encourages collaboration and contribution to the original deck instead of preventing it.

Discourage, for example, by recognizing an uploaded copy and put warnings and explanations. Then not allowing those very similar decks to be shared or at least discuss why before allowing to share.

Encourage by enabling users to personalize the deck for themselves like mentioned above and making the option to give feedback/contribute more prominent and rewarding. Like, being able to see if I already gave feedback for an item and showing if deck author has approved or denied the change, possibly with a comment. Showing on the deck page who contributed approved changes, giving contributors badges/titles/achievements or whatever gamifies the contributions.

Just brainstorming and thinking out loud here, feel free to ignore xD

If deck creators decide to share their deck somewhere else this still leaves the potential DB clogging problem and that users can’t export their progress.
I would still prefer to give authors the option of just allowing users export their deck.
Or let users export their progress data only so can combine that with the deck export if the author shares it. Though I guess that’s such an edge case it’s probably not worth implementing.

I also understand where you’re coming from. I can accept and respect that we disagree about the accessibility of community deck data.
I just wanted to give you feedback and thoughts about the matter and I hope you perceived it as constructive rather than bashing or something.

2 Likes

Glad to hear :kithappy:

No plans as of yet at least. But having a prompt that’d ask users to help out the creator of the deck upon import could be nice (linking to their patreon or something). Bit offtopic but In regards to helping out creators we could also look into “Sponsored Decks” where Kitsun helps support creators of quality/popular decks once we grow a bit bigger :slight_smile:

After an export and reimport it would be pretty near impossible to decently check if it’s a duplicate or not (Querying the database to find matches would be too heavy if it happens a lot). I get your point about encouraging and discouraging users from doing certain actions though, and that is always my preference as well where possible.

Hmm, for progress exporting I would not mind allowing exports of your known words. That way you could possibly filter out words on other platforms :slight_smile: Not sure how else the progress would need to be exported, as every website/platform has their own type of progress system. (Kitsun SRS levels would be meaningless to many).

Thanks! Yeah, no worries! I think it’s a legitimate concern to have so it does not come off as bashing at all. Tone is difficult to convey through text like this so I’d never assume the worst (and hopefully my messages don’t come off as such either!) :smiley:

2 Likes

I suspect you could catch most with something as simple as putting a deck ID into the exported data. My guess is that most users don’t fiddle with raw data. You know, like 90% of users never change a default setting if it’s somewhat sane.

That’s a nice idea.
Speaking of a prompt to help the creator… I might be missing something obvious but I haven’t found any easy way to get to a deck’s info page. To look up who the author of a deck is, I went into the community center and searched for the deck’s name.

I was indeed thinking of exporting the index of item + SRS level so it would be easy to match with a script if the deck author publishes their deck export somewhere else.
Using the known words system is a great idea though and much more useful. Users could take their progress with them even without any deck exports at all :+1:
I would still include the SRS level. It’s easy enough to roughly map them to whatever levels another program/service uses.
That data would also be useful for making stats about progress. Maybe this is also an idea for a possible API?

glad to hear :smiley:

Not at all :fox_face: