Stop scrolling. Start watching.
A premium, mood-based movie discovery app that curates personalized recommendations tailored precisely to your current vibe.
Download APK »
Report Bug
·
Request Feature
Table of Contents
Endless scrolling on streaming platforms is broken. Pickd fixes this by instantly curating movies and TV shows based entirely on your current mood and vibe. Using a fluid, Tinder-style swipe interface, you make split-second decisions without overthinking, saving them instantly to a cross-device synced watchlist.
| Onboarding | Swipe Deck | Movie Detail |
|---|---|---|
![]() |
![]() |
![]() |
| Mood Selection | Search | Watchlist |
|---|---|---|
![]() |
![]() |
![]() |
This project is built using modern frameworks and robust backend services.
Want to test it out right now without touching any code?
- Head over to the Releases Tab.
- Download the latest
app-release.apk. - Install it directly on your Android device and start swiping!
To get a local copy up and running, follow these simple steps.
Make sure you have the following installed on your machine:
- Flutter SDK (v3.0.0 or higher)
- Dart SDK
- A TMDB API Key from The Movie Database
- A Supabase project
- Clone the repo
git clone https://github.com/J-Derek/pickd.git
- Navigate into the directory
cd pickd - Install Flutter packages
flutter pub get
- Configure Environment Variables
Rename the
.env.examplefile to.envand enter your API keys:TMDB_API_KEY=your_tmdb_api_key_here SUPABASE_URL=your_supabase_url_here SUPABASE_ANON_KEY=your_supabase_anon_key_here
- Run Code Generation (For Riverpod and Freezed models)
dart run build_runner build --delete-conflicting-outputs
- Run the App
flutter run
| Feature | Description |
|---|---|
| Mood-Based Engine | Select your current vibe (e.g., Chill, Hyped, Spooky) and let Pickd instantly generate the perfect deck of films. |
| Tinder-Style Swiping | Fluid gesture controls. Swipe Right to save to Watchlist, Swipe Left to pass, Swipe Up to mark as watched. |
| Premium Cinematic UI | A stunning, edge-to-edge dark mode interface designed using modern HCI principles. |
| Cross-Device Sync | Powered by Supabase. Your watchlist, history, and profile sync instantly across all your devices. |
| Offline Caching | Powered by Hive. Blazing fast local storage ensures your app loads instantly, even on terrible networks. |
Pickd is built with a feature-first, scalable domain architecture:
graph TB
subgraph Frontend [Flutter App]
UI[UI Layer]
State[State Management - Riverpod]
Local[Local Cache - Hive]
end
subgraph Backend [Backend Services]
Supa[Supabase]
TMDB[TMDB API]
end
UI --> State
State --> Local
State --> Supa
State --> TMDB
- Mood-based swiping engine
- TV Series support with season/episode browser
- Hidden Gems discovery deck
- Cross-device sync via Supabase
- Multiplayer swiping rooms (watch with friends)
- Streaming provider deep links (Netflix, Prime, Disney+)
- iOS release
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
- The Movie Database (TMDB) for their incredible, comprehensive movie and TV API.
- Flutter Card Swiper for the buttery-smooth tinder card physics.
- Othneil Drew's README Template for the structured documentation inspiration.





