- expand emote list from 36 to 118 (xQc channel + 7TV global + trending) - scale particle count dynamically from 12 (mobile) to 100 (4K) via container diagonal - scale emote size (28–44px), opacity (0.25–0.35), and repulse radius per breakpoint - enable on mobile with touch repulsion (was desktop-only) - shuffle emotes per visit via Fisher-Yates in useEffect - replace motion.img with plain img + motion animate() for blur+fade entrance - move opacity to container layer for single-point control and WCAG AA safety Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .github | ||
| android | ||
| assets | ||
| ios | ||
| lib | ||
| test | ||
| web | ||
| .gitignore | ||
| .mcp.json | ||
| .metadata | ||
| AGENTS.md | ||
| analysis_options.yaml | ||
| firebase.json | ||
| LICENSE | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
Download
Why
The official Twitch mobile app doesn't support emotes from 7TV, BetterTTV (BTTV), and FrankerFaceZ (FFZ) — third-party extensions for Twitch used by millions. As a result, only emote text names are rendered rather than their actual image or GIF, making the chat unreadable in many channels.
Features
- Support for 7TV, BetterTTV, and FrankerFaceZ emotes and badges
- Browse followed streams, top streams, and top categories
- Autocomplete for emotes and user mentions
- Light, dark, and black (OLED) themes
- Search for channels and categories
- See and filter chatters in a channel
- Local chat user message history
- Theater and fullscreen mode
- Watch live streams with chat
- Picture-in-picture mode
- Block and report users
- Emote menu
- Sleep timer
- And more...
For a more detailed overview, visit frostyapp.io.
Development setup
-
Clone this repo (e.g.,
git clone https://github.com/tommyxchow/frosty.git). -
Go to the Twitch dev console and register a new application to retrieve a Client ID and Client Secret.
-
Use
--dart-defineto set theclientIdandsecretenvironment variables with your Client ID and Client Secret. -
Run
flutter pub getto fetch all the dependencies. -
Choose an emulator or device and run the app!
Important
Frosty uses MobX for state management. Please refer to the documentation about code generation, otherwise your changes within MobX stores may not be applied.
Donate
If you appreciate my work and would like to donate/tip, you can through:
Otherwise, downloading Frosty, leaving a review, or starring this repository is more than enough to show support. Thank you!
License
Frosty is licensed under AGPL-3.0-or-later.