Making Space open source

by Till Friebe4 min readOctober 11, 2022


As of today, you can find the code for Space on GitHub. Here are the reasons why we made Space open-source, which license we chose and how you can contribute.

Why make Space open-source?

Making a project is a big decision and I don't want to regret it. That's why I wrote down all the pros and cons and weighed them against each other.

Advantages of open-source

The biggest advantage in my opinion is increasing the trust of the community. Making an app open-source is like a Ulysses Pact. Many problems for the user can no longer occur, for example:

  • Dark patterns can't exist
    Since the app is open-source, it can be forked at any time. This is convenient when the community no longer likes the app's development direction.
  • The danger that Space gets abandoned decreases
    If I am no longer interested in Space, the community can fork Space and develop it further.
  • There is no malware
    Since the code is viewable by anyone, the likelihood that malicious code exists is very low.

Open source also has the advantage that everyone can contribute. This means that the code, documentation and tests can be improved more quickly. With more eyes looking over the code, bugs and security vulnerabilities can also be found and closed more quickly. This also has the advantage that I don't program everything alone and there is more discussion of features.

Another reason is that developers like to work on open-source projects as they show their developer experience. This is also true for me, of course. Making it open-source on GitHub adds the way to be supported via GitHub Donations, providing an additional method of income.

Disadvantages

One disadvantage of making Space open-source is that others can copy easily algorithms. By this, I don't mean simply code, because adopting code is often not trivial because the architecture of the app is different. Instead, I mean, for example, the Spaced Repetition algorithm. With algorithms, the idea behind them is more crucial than the implementation.

If the app can't be funded through donations, the app will have to be monetized at some point. Users with enough technical skills can work around that. In my opinion, however, this is a weak argument, because the number of technical users who can do this isn't very large. Also, I don't like to punish a lot of users because a few users don't behave.

Open-source apps might scare off investors. I don't know if that's true.

What do I open-source?

Space consists of the app, the server and the website. I only make the app open-source for now. The app is much more complex than the server and the website. If I find more time and people are interested, I will also make the website and the server open-source.

Which license fits best?

There are many open-source licenses. In this section, I want to introduce the different types of licenses and choose the most suitable one for Space. Licenses can be divided into two types: permissive and copy-left licenses.

Copy-left licenses are licenses where adaptations of the software must have the same license. This prevents modified versions that have more restrictions. Examples are GNU GPLv3 and Mozilla Public License 2.0.

Permissive licenses are licenses that give others the maximum benefit from the software. You can take it, modify it and keep it for yourself or sell the modified software without giving anything back. Examples are Apache License 2.0, MIT License and BSD License.

On choosing a license there is an overview of the available licenses. On tl;dr Legal, you can read an explanation of the licenses in layman's language.

I am leaning towards a copy-left license, as I want changes to remain public. Anki uses the GNU GPLv3 License.

How to contribute

If you want to contribute, create an issue or a pull request on GitHub, join the Discord server or write me at hello@getspace.app. Your contribution is welcome at any skill level!