Contribute to the Text app: the hidden gem!

Nextcloud Office comes with powerful and visible apps like Talk, Groupware and Deck, but quietly working in the background is perhaps the lesser known Text app.

Nextcloud Text is perfect for note-taking, outlines and templates and it is also used in some other apps like Collectives for the text editing component. When you want to work in a simple and uncluttered environment, Text is your ideal choice. It offers a variety of rich formatting options without the more advanced functionalities of a complete office app like Writer in Nextcloud Office. The Text App saves its files as ‘markdown’ files which is very popular among writers, bloggers and techies alike.

Calling all developers!

Like any app, Text gets regular updates, bug fixing and development, and it is a great place to get started contributing to Nextcloud! Several Nextcloud developers, like Max and Jonas who developed the Collectives app, got their first contributions to Nextcloud in through Text. And if you get involved, you’ll certainly encounter them, triaging issues and fixing bugs!

Do you:

  • Already have experience programming?
  • Are familiar with tools y.js, vue.js and tiptap?
  • Curious to learn about new technologies?

Then you should contribute to the Text App!

The tools being used (y.js, vue.js, tiptap) are all built by people who know their craft, have looked into the problems in depth, and found innovative solutions which makes Text a great place to learn how to build up code for those with some experience in programming.

About y.js

y.js was implemented to solve the problem of merging conflicts while collaborative editing. Dealing with these conflicts is a very interesting challenge that people have studied for decades. The requirement for combining the changes of different people was to have a certain order: the changes of person A would be merged first, then the changes of person B, etc., even if the changes of person A and B were made at the same time. The order has to be respected. This means the submission of the changes was often out of order, changes had to be resubmitted, and the user experience was not smooth. y.js was invented between 2016 and 2020 as part of a research project, and it became the first widely used implementation of a CRDT (conflict-free replicated data types) algorithm for shared editing. CRDTs allow collaborating without worrying about the resolution of conflicts. This means we can allow accepting the changes even if they arrive in different orders. The implementation of y.js in Text resulted in great improvements for the performance and user experience.

Getting started

In the Text repository, there’s a very accessible entry-point for new contributors: all issues are triaged, feedback on pull requests is provided fast, and the team is continuously investing in reducing technical debt.

To get started, a variety of ‘good first issues’ are ready for you! Some of the issues just require a one line change in the code and are a very accessible starting point to get some confidence, while other issues are detailed and provide a great chance to learn how the code is structured. Overall, all issues contain elaborate explanations and help is available if you get stuck!

With that, let’s get going! 👨‍💻👩‍💻