Pandemic aside, 2020 has been an exciting year for me.
For more than 10 years I was working on open source software in my spare time. Then, in late 2019, a grant from the Prototype Fund allowed me to work on K-9 Mail full-time for six months. And it was awesome! So afterwards I decided to just keep going. I was working as a freelancer, so there wasn’t really a job I had to quit first.
Here’s a probably incomplete list of open source-y things I did in 2020. It’s also rather brief because
I still haven’t figured out how to write blog posts without rewriting most of it, then rewriting it some more, and then
throwing away half of it because I don’t like those parts anymore.
It feels like I’m slowly getting better, though 🤞
K-9 Mail
I’ve spent most of my time working on K-9 Mail. The app was in a difficult state. The last stable release was in September 2018. My goal was to publish a new stable version in 2020. By releasing 22 beta versions we got closer to that goal. But the app is still not in a state where I’m comfortable cutting a new stable release 😞
As K-9 Mail’s maintainer I’m also dealing with all the non-development-related aspects of the project:
- In 2020 the website got a new domain name – k9mail.app – and a redesign, thanks to Anxhelo Lushka.
- I set up a discourse instance to replace the mailing list: forum.k9mail.app
- And the project now has a presence on Twitter (@k9mail_app) and Mastodon (@k9mail@fosstodon.org).
Jitsi Hacks
Due to the pandemic much of my social life took place in video conferences, powered by the wonderful open source project Jitsi. At some point I started poking around in the browser’s developer tools trying to do things the web interface wasn’t built to do. This resulted in multiple “hacks” that I shared with friends.
Since by then I had convinced myself that I was an “open source developer” I figured I should publish this little side
project. So I created a small website containing “installation” and usage instructions for the different “hacks”.
I am quite proud of myself because I refrained from buying a domain for the project. A sub-domain does just fine for a
small side project: jitsi-hacks.cketti.eu
Blog posts
In 2020 I published five blog posts. That is five more than the year prior 😀
- content:// URIs and OkHttp
- What’s up with K-9 Mail?
- android.net.MailTo is broken
- Why I hide GitHub issue comments
- Avoid Intent.resolveActivity()
Contributions to open source projects
In 2020 I contributed to quite the variety of open source projects.
Own projects
Aside from the ones previously mentioned I also worked on these projects of mine:
- MailToCompat - because Android’s
MailTo
class is broken I created a fixed version - SafeContentResolver - after existing for 4 years as version 0.9.0 without any issues I figured it was time to promote the library to version 1.0.0
- smartwatch2048 - open sourced an old and abandoned project
Other projects
- android/storage-samples - corrected some inaccuracies in code/comments related to Android’s URI permissions 🧐
- AndroidStudyGroup/conferences - added some conferences, improved the CI workflow, and cleaned up the generated HTML/JavaScript
- androidx - fixed a memory leak, fixed the
MailTo
class, fixedShareCompat.IntentBuilder
🐛 - beautiful-jekyll - various minor improvements I wanted to use on cketti.de
- bulma-clean-theme - very minor fix to the generated HTML
- c-calendar - improved the c-base calendar page
- dbbahnhoflive-android - some minor fixes; apparently the first community contribution 🥇
- discourse - fixed a bug in the quick start guide I noticed when setting up K-9 Mail’s new forum
- EventFahrplan - various fixes and refactorings
- FairEmail - replaced usage of the
MailTo
class with the one from the AndroidX Core library - gstreamer/gst-plugins-bad - make
curlsmtpsink
use a less wrong date format when generating emails - iNPUTmice/jmap - various fixes and small improvements
- jakewharton.com - fixed number format in a blog post; apparently the first real external contribution 🎉
- jitsi/handbook - small improvements to the documentation on how to build Jitsi Meet from source
- kotlin - fixes to the parameter popup; tweet including video 🎥
- leakcanary - make it harder to accidentally include LeakCanary in release builds
- moshi-gson-interop - small documentation fixes
- okhttp - fixed code to read length of DER-encoded values
- TokenAutoComplete - small fixes/improvements needed for K-9 Mail
Donations to open source projects
I usually use the I love Free Software Day as a reminder to financially support the open source projects that are important to me. In 2020 I gave money to the following projects:
- andOTP
- Dino
- Fosstodon
- KeePassXC
- Let’s Encrypt
- Liberapay
- lichess.org
- Matrix
- Signal
- The Great Suspender - Sadly, the software seems to have changed owners since then. And the extension might contain malware now 😞
- Thunderbird
- Tusky
- Ubuntu
I also sponsored the following individuals via GitHub sponsors:
- chrisrhymes - creator of the bulma-clean-theme Jekyll theme I used for the Jitsi Hacks website
- johnjohndoe - maintainer of the EventFahrplan Android app
- mikepenz - creator of the MaterialDrawer and FastAdapter libraries we use in K-9 Mail
I do most of my development work in IntelliJ IDEA-based IDEs. The open source applications IntelliJ IDEA Community Edition and Android Studio provide all the functionality I need. But to do my part in ensuring the company behind IntelliJ IDEA and the creators of the Kotlin programming language stick around, I purchased a license for IntelliJ IDEA Ultimate edition.
Financials
Most of my income in 2020 came from the Prototype Fund project. But some of it came from people who donated money using one of these platforms:
GitHub Sponsors
I signed up to the GitHub sponsors program as soon as I heard about it. On my sponsors page
users could select one of the following tiers: $1 a month, $5 a month, $25 a month, $1000 a month. There are no rewards
associated with any of the tiers.
To no one’s surprise, nobody signed up for the $1000 tier. But people did sign up for all of the other tiers. In total I had 29 sponsors.
Some of them canceled their sponsorship after a month or two, but most of them kept it going ❤️
The total payout was 966.82 EUR. Some of that was from GitHub matching contributions. But, honestly, I can’t
tell if there’s a system when GitHub is matching contributions and when they’re not.
Liberapay
In 2020 K-9 Mail’s Liberapay account received 4,794.91 EUR from ~250 patrons. That is more than double the amount received in 2019 📈
Total
That’s a total of 5,761.73 EUR in donations. Not bad. But certainly not enough to live on in Germany. It looks like someone needs to come up with a better plan for 2021 😀
Conclusion
I was disappointed with how my first year as a full-time open source developer went. I didn’t accomplish the one goal I had: releasing a new stable version of K-9 Mail.
But writing this blog post made me feel better. It made me realize that small contributions add up to quite a bit. Another way to see that is by comparing my GitHub contribution graphs for 2019 and 2020.
During the past 8 years I haven’t done much web development. Working on Jitsi Hacks made me realize that I still enjoy it quite a bit. I’ll probably end up doing more of that in the future.
Plans for 2021
I have quite a few ideas I want to work on this year. But my most important goals remain the same as they were in 2020:
- Finally release a new stable version of K-9 Mail.
- Figure out how to be a full-time open source developer without using up all of my savings.
Thanks
My thanks goes to everyone who has contributed to one of my projects, to the people who reviewed my blog posts, and
to everyone who has helped me stay sane this last year.
A special thanks goes to all of the sponsors who have made this journey possible ❤️