Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Presently: A Gratitude Journal


A journal to write what you're thankful for. Contributions welcome!

Google Play Posting


Presently is built on the idea that gratitude journaling should be free, private, and available to all. It will never have ads, never have a premium version, and will always be open source. Entries are kept on device and can be exported to CSV.

Presently is also built with the best Android practices in mind. It follows MVVM to separate concerns and ensure we write testable code. We require 80%+ code coverage and rely on both unit tests and instrumented tests (with a heavier weight towards unit tests). Instrumented tests are run on Firebase Test Lab, crashes are reported through Crashlytics, and analytics are reported with Firebase Analytics.

We support several languages currently and are always looking for translators to help us! We support French, Spanish, Italian, German, Finnish, Arabic, Dutch, Polish, Portuguese, Slovakian, Croatian, Romanian, Turkish, Russian, Afrikaans.

Tech Stack [So far...]

  • MVVM with architecture components
    • ViewModel
    • Room (with FTS and Paging v3)
  • Mavericks
  • CircleCI
  • Jacoco coverage reports (integrated with CI)
  • Firebase Crashlytics Crash Reporting
  • Dagger + Hilt
  • Espresso
  • Firebase Test Lab
  • WorkManager
  • Dropbox Java SDK


The app currently has over 40 themes to choose from! Here's a few:


Contributions are welcome! Please fork the repo and make a PR. Forked PRs will build the app and run unit tests but will not run instrumented tests. A repo owner will run those tests as they require secret keys. To make the app build locally you'll need to add a Dropbox Key (or any string if you don't want to test Dropbox backup features) to the file. Like so: DROPBOX_KEY=myDropboxKey.

Dependency Graph

Presently is a small and simple app, did it need modularizing? Probably not. But Presently also servees as a playground for me for trying out new technologies and keeping up with best practices. Here's how we've broken down the app so far.