Read your Telegram channel subscriptions as a single timeline feed
Browse public Telegram channels anonymously in guest mode
Self-build a privacy-respecting Telegram reader with no trackers
Building TDLib in Docker takes about 30 minutes the first time, plus you need JDK 17, Android SDK, and Telegram API credentials before gradle can install the debug build.
Hortay is an Android app that lets you read your subscribed Telegram channels as a single chronological feed, in the style of a Twitter timeline, rather than the usual chat-list view. The name is Ukrainian for "scroll!", borrowed from the verb meaning to leaf through. It is open source under GPL-3.0 and is also published on Google Play. The app deliberately avoids common tracking and notification systems. There is no Firebase, no Crashlytics, no analytics, and no third-party push service. According to the README, the internet permission is used only for talking to Telegram itself, and in guest mode for anonymous previews from t.me/s/ channel pages. Hortay offers two reading modes. The full mode uses MTProto through TDLib, the official Telegram client library, so you sign in as you would with the regular Telegram app. The guest mode lets you browse public channel previews without an account. The reading experience is built around an OldestUnreadFirst boundary, dwell-based read tracking, snap scrolling, folder tabs, and a scroll-to-bottom control with an unread badge. Posts support polls including quiz reveal and multi-answer votes, reactions, custom emoji, animated stickers in TGS, WebM, and WEBP formats, albums, inline videos, and round video messages. A comments overlay with predictive back navigation handles reply chains and a user-profile sheet. The interface uses Material 3 Expressive with dynamic color and a motion scheme that respects reduced-motion settings, and ships with English and Ukrainian translations including full plurals. To build the app you need JDK 17, Docker for the TDLib build step, and the Android SDK. You first request an api_id and api_hash from Telegram's developer portal, copy local.properties.example to local.properties, fill in the credentials, then run a script that builds TDLib in Docker, which takes about thirty minutes the first time and around ten minutes after that. Once TDLib is built, running ./gradlew :app:installDebug produces a debug install. The codebase is single-Activity, Compose-only, and split into three modules: the main app, a vendored TDLib JNI module, and a baseline profile module. Dependency injection is manual through an AppGraph object, with no Hilt or Retrofit. Contribution guidelines ask for Conventional Commits with package scopes and reading ARCHITECTURE.md before non-trivial changes, since many decisions in the architecture document are described as load-bearing.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.