Source: https://seerepo.com/r/thunderbird/thunderbird-android/built
Markdown source: https://seerepo.com/r/thunderbird/thunderbird-android/built.md
Description: thunderbird-android is a Kotlin repo built with Jetpack Compose, androidx.activity:activity, androidx.navigationevent:navigationevent, activity-compose,…

# What is thunderbird-android built with?

thunderbird-android is a Kotlin repo built with Jetpack Compose, androidx.activity:activity, androidx.navigationevent:navigationevent, activity-compose, core-ktx, and 15 more. It signs people in with net.openid:appauth and androidx.biometric:biometric, makes its content with com.github.bumptech.glide:glide, jdom2, jinja2, org.apache.james:apache-mime4j-dom, org.jsoup:jsoup, and 2 more, validates its data with json-schema-validator and jsonschema, is tested with benchmark-macro-junit4, fragment-testing, io.ktor:ktor-client-mock, junit-ktx, koin-test, and 17 more, deploys with io.ktor:ktor-client-logging, logback-classic, and timber, and uses datastore-preferences and androidx.datastore:datastore. It has 351,476 written lines, with 808 test files.

Read on November 9, 2026, at commit 467787f.

Repository: https://github.com/thunderbird/thunderbird-android

## Frontend

### The base

- **[Jetpack Compose](https://seerepo.com/uses/jetpack-compose)**: 622 files
- **androidx.activity:activity**: 35 files
- **androidx.navigationevent:navigationevent**: 2 files

### Interface

- **adaptive**
- **core-splashscreen**
- **fragment-compose**
- **glance-material3**
- **graphics-path**
- **material3**
- **org.jetbrains.compose.components:components-resources**
- **[Google](https://seerepo.com/uses/google)**: 61 files
- **androidx.fragment:fragment**: 49 files
- **[androidx.appcompat:appcompat](https://seerepo.com/uses/androidxappcompat-appcompat)**: 22 files
- **[androidx.recyclerview:recyclerview](https://seerepo.com/uses/androidxrecyclerview-recyclerview)**: 20 files
- **androidx.preference:preference**: 19 files
- **androidx.coordinatorlayout:coordinatorlayout**: 5 files
- **Glance**: 4 files
- **de.hdodenhof:circleimageview**: 3 files
- **androidx.constraintlayout:constraintlayout**: 2 files
- **androidx.camera:camera-view**: 1 file
- **androidx.glance:glance-preview**: 1 file
- **androidx.swiperefreshlayout:swiperefreshlayout**: 1 file
- **androidx.window:window**: 1 file

### Icons

- **material-icons-extended**

## Backend

### Data

- **datastore-preferences**
- **androidx.datastore:datastore**: 1 file

### Sign-in

- **net.openid:appauth**: 7 files
- **androidx.biometric:biometric**: 1 file

## Support

### The base

- **activity-compose**
- **[core-ktx](https://seerepo.com/uses/core-ktx)**
- **koin-bom**
- **koin-compose**
- **koin-compose-viewmodel**
- **koin-core**
- **koin-core-viewmodel**
- **lifecycle-livedata-ktx**
- **lifecycle-process**
- **[lifecycle-runtime-compose](https://seerepo.com/uses/lifecycle-runtime-compose)**
- **[lifecycle-runtime-ktx](https://seerepo.com/uses/lifecycle-runtime-ktx)**
- **lifecycle-viewmodel**
- **lifecycle-viewmodel-compose**
- **lifecycle-viewmodel-savedstate**
- **navigation-compose**
- **org.jetbrains.compose.runtime:runtime**
- **[androidx.core:core](https://seerepo.com/uses/androidxcore-core)**: 122 files

### Content

- **com.github.bumptech.glide:glide**
- **jdom2**
- **[jinja2](https://seerepo.com/uses/jinja2)**
- **org.apache.james:apache-mime4j-dom**
- **[org.jsoup:jsoup](https://seerepo.com/uses/orgjsoup-jsoup)**: 9 files
- **com.fleeksoft.ksoup:ksoup**: 1 file
- **[com.google.zxing:core](https://seerepo.com/uses/comgooglezxing-core)**: 1 file

### Validation

- **json-schema-validator**
- **[jsonschema](https://seerepo.com/uses/jsonschema)**

### Testing

- **benchmark-macro-junit4**
- **fragment-testing**
- **io.ktor:ktor-client-mock**
- **junit-ktx**
- **koin-test**
- **kotlin-test-junit**
- **lifecycle-runtime-testing**
- **mockwebserver**
- **org.jetbrains.compose.ui:ui-test**
- **rules**
- **runner**
- **ui-test-manifest**
- **uiautomator**
- **work-testing**
- **junit:junit**: 418 files
- **org.mockito.kotlin:mockito-kotlin**: 97 files
- **org.robolectric:robolectric**: 86 files
- **org.mockito:mockito-core**: 40 files
- **app.cash.turbine:turbine**: 36 files
- **androidx.test:core**: 17 files
- **androidx.compose.ui:ui-test-junit4**: 5 files
- **androidx.test.espresso:espresso-core**: 2 files

### Deploy

- **io.ktor:ktor-client-logging**
- **[logback-classic](https://seerepo.com/uses/logback-classic)**
- **timber**

### Tools

- **common**
- **detekt**
- **[Glide](https://seerepo.com/uses/glide)**
- **kotlinpoet**
- **leakcanary-android**
- **moshi-kotlin-codegen**
- **org.jetbrains.compose.ui:ui-tooling**
- **profileinstaller**
- **androidx.annotation:annotation**: 124 files
- **org.jetbrains.kotlin:kotlin-gradle-plugin-api**: 18 files
- **com.github.ajalt.clikt:clikt**: 13 files
- **com.lemonappdev:konsist**: 2 files
- **org.jetbrains.kotlin:kotlin-compiler**: 2 files

### Other

- **[Apache](https://seerepo.com/uses/apache)**
- **autofill**
- **billing-ktx**
- **camera-camera2**
- **desugar_jdk_libs**
- **desugar_jdk_libs_nio**
- **io.ktor:ktor-client-cio**
- **java-diff-utils**
- **koin-android**
- **kotlinx-io-core**
- **kotlinx-serialization-json**
- **lifecycle-viewmodel-ktx**
- **okhttp**
- **org.jetbrains.kotlin:kotlin-reflect**
- **pynacl**
- **pyyaml**
- **requests**
- **work-runtime**
- **[JetBrains](https://seerepo.com/uses/jetbrains)**: 48 files
- **com.squareup.okio:okio**: 28 files
- **commons-io:commons-io**: 23 files
- **com.squareup.moshi:moshi**: 13 files
- **com.android.billingclient:billing**: 8 files
- **Ktor**: 8 files
- **io.github.vinceglb:filekit-core**: 5 files
- **androidx.camera:camera-core**: 4 files
- **io.ktor:ktor-serialization-kotlinx-json**: 3 files
- **androidx.localbroadcastmanager:localbroadcastmanager**: 2 files
- **net.jcip:jcip-annotations**: 2 files
- **androidx.camera:camera-lifecycle**: 1 file
- **androidx.webkit:webkit**: 1 file
- **com.jcraft:jzlib**: 1 file

## Other repos with a similar stack

- [signalapp/Signal-Android](https://seerepo.com/r/signalapp/Signal-Android/built): Jetpack Compose, core-ktx, lifecycle-livedata-ktx, lifecycle-process, lifecycle-runtime-compose, lifecycle-viewmodel-savedstate, Google, androidx.appcompat:appcompat, androidx.preference:preference, androidx.constraintlayout:constraintlayout, androidx.camera:camera-view, androidx.window:window, androidx.biometric:biometric, com.google.zxing:core · [Compare](https://seerepo.com/compare/signalapp/Signal-Android/vs/thunderbird/thunderbird-android)
- [komi-store/komi-store](https://seerepo.com/r/komi-store/komi-store/built): Jetpack Compose, datastore-preferences, androidx.datastore:datastore, core-ktx, koin-core, lifecycle-runtime-compose, lifecycle-viewmodel, lifecycle-viewmodel-compose, navigation-compose, org.jetbrains.compose.runtime:runtime, material3, material-icons-extended, io.ktor:ktor-client-logging · [Compare](https://seerepo.com/compare/komi-store/komi-store/vs/thunderbird/thunderbird-android)
- [TeamNewPipe/NewPipe](https://seerepo.com/r/TeamNewPipe/NewPipe/built): Jetpack Compose, koin-compose-viewmodel, lifecycle-livedata-ktx, org.jetbrains.compose.runtime:runtime, material3, Google, androidx.appcompat:appcompat, androidx.recyclerview:recyclerview, androidx.preference:preference, androidx.constraintlayout:constraintlayout, org.jsoup:jsoup · [Compare](https://seerepo.com/compare/TeamNewPipe/NewPipe/vs/thunderbird/thunderbird-android)
- [team-spotube/spotube](https://seerepo.com/r/team-spotube/spotube/built): Jetpack Compose, datastore-preferences, androidx.datastore:datastore, koin-compose, koin-compose-viewmodel, koin-core, lifecycle-runtime-compose, lifecycle-viewmodel-compose, org.jetbrains.compose.runtime:runtime, io.ktor:ktor-client-logging · [Compare](https://seerepo.com/compare/team-spotube/spotube/vs/thunderbird/thunderbird-android)
- [JetBrains/compose-multiplatform](https://seerepo.com/r/JetBrains/compose-multiplatform/built): Jetpack Compose, core-ktx, lifecycle-runtime-compose, lifecycle-runtime-ktx, lifecycle-viewmodel, org.jetbrains.compose.runtime:runtime, material3, Google, androidx.appcompat:appcompat, org.jsoup:jsoup · [Compare](https://seerepo.com/compare/JetBrains/compose-multiplatform/vs/thunderbird/thunderbird-android)
- [DrKLO/Telegram](https://seerepo.com/r/DrKLO/Telegram/built): activity-compose, core-ktx, navigation-compose, androidx.core:core, material3, androidx.fragment:fragment, androidx.appcompat:appcompat, androidx.biometric:biometric, com.google.zxing:core · [Compare](https://seerepo.com/compare/DrKLO/Telegram/vs/thunderbird/thunderbird-android)

## Frequently asked questions

### What language is thunderbird-android written in?

thunderbird-android is written in Kotlin, with 351,476 written lines.

### What framework does thunderbird-android use?

thunderbird-android is built with Jetpack Compose, androidx.activity:activity, androidx.navigationevent:navigationevent, activity-compose, core-ktx, koin-bom, koin-compose, koin-compose-viewmodel, koin-core, koin-core-viewmodel, lifecycle-livedata-ktx, lifecycle-process, lifecycle-runtime-compose, lifecycle-runtime-ktx, lifecycle-viewmodel, lifecycle-viewmodel-compose, lifecycle-viewmodel-savedstate, navigation-compose, org.jetbrains.compose.runtime:runtime, and androidx.core:core.

### What does thunderbird-android sign people in with?

thunderbird-android signs people in with net.openid:appauth and androidx.biometric:biometric.

### What services does thunderbird-android use?

thunderbird-android uses datastore-preferences and androidx.datastore:datastore.

### Does thunderbird-android have tests?

Yes. thunderbird-android has 808 test files and is tested with benchmark-macro-junit4, fragment-testing, io.ktor:ktor-client-mock, junit-ktx, koin-test, kotlin-test-junit, lifecycle-runtime-testing, mockwebserver, org.jetbrains.compose.ui:ui-test, rules, runner, ui-test-manifest, uiautomator, work-testing, junit:junit, org.mockito.kotlin:mockito-kotlin, org.robolectric:robolectric, org.mockito:mockito-core, app.cash.turbine:turbine, androidx.test:core, androidx.compose.ui:ui-test-junit4, and androidx.test.espresso:espresso-core.

### Which repos have a stack like thunderbird-android's?

The ones that share most of its stack: signalapp/Signal-Android, komi-store/komi-store, and TeamNewPipe/NewPipe.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
