- TypeScript 96.8%
- CSS 2.7%
- Java 0.3%
- HTML 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| android | ||
| apps/web | ||
| assets | ||
| .gitignore | ||
| biome.json | ||
| bun.lock | ||
| bunfig.toml | ||
| capacitor.config.ts | ||
| CONTRIBUTING.md | ||
| knip.jsonc | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
TypeType App (Beta)
An Android client for self-hosted TypeType instances.
by DelilahSaturn
What is this?
TypeType App is a native Android wrapper around the TypeType web frontend, built with Capacitor. It bundles the full React interface and points it at your own self-hosted TypeType instance — think of it like the Jellyfin app, but for TypeType.
On first launch the app asks for the public URL of your instance. Everything after that — your account, subscriptions, library, and playback — stays on that instance. Nothing is routed through a third party.
The interface keeps the TypeType aesthetic while rearranging navigation for phones: a bottom tab bar for Home, Shorts, a platform switcher, Subscriptions, and your profile, plus a YouTube-style Shorts player with SABR playback support.
Download
Get the latest release from https://git.luckee.xyz/DelilahSaturn/TypeType-App-Beta/releases.
Screenshots
| Enter instance | Home | Subscriptions | Channel | Shorts |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
Features
- Connects to any self-hosted TypeType instance over HTTPS (or HTTP on a trusted LAN)
- Home, Shorts, search, channels, watch pages, playlists, subscriptions, and history
- YouTube-style Shorts player with tap-to-pause and SABR playback
- Platform switching between YouTube, NicoNico, and BiliBili
- Local login, OIDC sign-in (via deep link), and guest access
- Fullscreen landscape auto-rotation for normal videos
- Dark mode, accessibility, and per-instance settings
- Android 10 (API 29) and newer
Requirements
- A running TypeType instance
- The Capacitor WebView origin must be allowed on your server:
ALLOWED_ORIGINS=https://localhost
Keep any existing allowed origins as well, then restart TypeType Server.
Building the app
Build requirements are Node.js, Android SDK 36, and JDK 21.
npm install
npm run android:sync
cd android
./gradlew assembleDebug
The APK is written to android/app/build/outputs/apk/debug/app-debug.apk.
Web development
The same frontend also runs in a browser for development.
Requirements:
- Bun 1.3.14
- A running TypeType-Server
bun install --frozen-lockfile
cp apps/web/.env.example apps/web/.env
bun run dev
The development server starts at http://localhost:5173 by default.
| Variable | Purpose |
|---|---|
VITE_API_URL |
API URL embedded in the frontend |
VITE_DEV_PROXY_TARGET |
API target used by the Vite development proxy |
Stack
| Area | Technology |
|---|---|
| Shell | Capacitor 8 (Android) |
| UI | React 19 and TypeScript |
| Build | Vite 8 |
| Routing and server state | TanStack Router and TanStack Query |
| Local state | Zustand |
| Styling | Tailwind CSS 4 |
| Playback | Vidstack, @typetype/mse, dash.js, and hls.js |
Project structure
| Path | Contents |
|---|---|
android |
Capacitor Android project |
capacitor.config.ts |
Capacitor configuration |
apps/web/src/routes |
Application routes |
apps/web/src/components |
Shared interface and player components |
apps/web/src/hooks |
Query and behavior hooks |
apps/web/src/lib |
API clients, helpers, and integration code |
apps/web/src/settings |
Settings definitions and controls |
apps/web/src/stores |
Client-side state stores |
Credits
Based on the TypeType Frontend. This is an unofficial community project and is not affiliated with the TypeType project maintainers.
License
Licensed under the MIT License. TypeType is not affiliated with, authorized by, or endorsed by YouTube, Google, NicoNico, BiliBili, or their affiliates.




