MyDeck is an Android client for Readeck, a self-hosted read-it-later service. It provides a Pocket-inspired interface for managing and reading your saved articles, videos, and photos.
It began as a fork of ReadeckApp and has evolved into an independently developed client with its own UX direction while remaining fully compatible with Readeck servers.
Requirements: A Readeck account and self-hosted Readeck server instance.
-
Standard APK (
MyDeck-<version>.apk) is recommended. It accepts HTTPS Readeck server URLs only and uses system-trusted certificate authorities. -
HTTP-enabled APK (
MyDeck-<version>-http-enabled.apk) is for trusted private-network setups that cannot use HTTPS. It installs as a separate app (com.mydeck.app.permissive), keeps separate app data, and requires OAuth authorization again. -
GitHub Releases: Latest release
- Pocket-style navigation with My List, Archive, and Favorites views
- Three bookmark list layouts: Grid, Compact, and Mosaic
- Full label management: add, rename, delete, and filter by labels
- Dual reading modes: Readeck-extracted Article view and embedded Original webview
- Article, photo, and video bookmark support with embedded media
- Sort and filter bookmark list views on things like title, author, site, labels, etc.
- Reading progress tracking with per-card visual indicators
- Readeck highlight and annotation support — view, create, edit, and delete highlights in the reader, and access to all highlights from the navigation drawer
- Reading typography customization (font family, size, line spacing, content width)
- In-article text search with highlighted match navigation
- Bookmark metadata editor for title, description, site name, authors, and more
- Share from any app — lightweight bottom sheet with auto-submit timer
- Adaptive layouts for tablet and landscape orientation
- OAuth Device Code Grant authentication
- Configurable content sync with Wi-Fi and battery-saver constraints
Prerequisites: Android Studio (latest stable) or Android SDK command-line tools, JDK 17+.
git clone https://github.com/NateEaton/mydeck-android.git
cd mydeck-android
./gradlew assembleDebugThe debug APKs will be at app/build/outputs/apk/githubSnapshot/debug/ and app/build/outputs/apk/githubSnapshotHttp/debug/. Release builds require signing configuration — refer to the GitHub Actions workflow in .github/workflows/release.yml.
Standard release builds are HTTPS-only by default. The HTTP-enabled flavors (githubReleaseHttp, githubSnapshotHttp) use separate application IDs and enable both cleartext HTTP and user-installed certificate authorities for users who explicitly need that package.
Contributions are welcome. Please open an issue before starting significant work to align on approach. See docs/WORKFLOW.md for the development and release workflow.
When adding new string resources, English placeholder strings must be added to all language files — see CLAUDE.md for details. Contributors willing to help with translations are especially welcome given the investment made in multi-language support for ReadeckApp.
- Kotlin — Primary development language
- Jetpack Compose — UI framework
- Material Design 3 — Design system
- Room, Retrofit, Hilt, WorkManager — Persistence, networking, dependency injection, and background sync
This project was developed with assistance from AI tools including Claude (Anthropic), ChatGPT (OpenAI), and AIStudio (Google). The underlying concept, architecture decisions, implementation, and testing were performed by the developer.
MyDeck is derived from ReadeckApp by jensomato — the Android client that made this project possible. It is a companion to Readeck by the Readeck team. The UX and navigation model were inspired in part by Pocket (Mozilla) and Instapaper.
For a summary of code and feature changes from ReadeckApp, see docs/FORK_DIFFERENCES.md.
A special thanks to Stefan (@Alanon202) for app functionality feedback and for testing support.
This project is licensed under the GNU General Public License v3.0. Some of the used libraries are released under different licenses.