🇺🇸 English | 🇧🇷 Português
A local-first desktop game library manager with an intelligent recommendation system based on classical Machine Learning.
I have a large game library and often struggle to decide what to play next. This project was born to solve that real problem, while also serving as a complete portfolio project to explore Rust, Tauri, React, and recommendation systems.
- Full game library management (CRUD)
- Local persistence with SQLite (offline-first)
- Desktop UI inspired by the Microsoft Store
- Favorites system, ratings, and playtime tracking
- Foundation for an intelligent recommendation system
- Data backup and restore (JSON)
- Desktop: Tauri v2 + Rust
- Frontend: React + TypeScript + Vite
- UI: Tailwind CSS v4 + Shadcn/UI
- Database: SQLite (local)
- Local-first desktop application
- Business core in Rust
- Decoupled UI in React
- Communication via Tauri Commands
- Embedded SQLite database
Playlite was developed with extensive support from Artificial Intelligence tools as part of an AI-assisted development process (also known as "vibe coding").
AI tools were primarily used for:
- Initial code generation and prototyping
- Architecture suggestions and refactoring
- Documentation support and technical analysis
All final architecture decisions, system integration, testing, bug fixes, and code validation were performed manually. The use of AI in this project aimed to accelerate development, facilitate learning of Rust and React, and reduce effort on repetitive tasks, while maintaining full understanding and ownership of the final code.
📄 More in-depth details about AI usage are available in the project documentation.
Playlite uses a hybrid recommendation system, combining:
- Content-based filtering (user profile)
- Offline collaborative filtering (global Steam patterns)
All processing happens locally, with no user data collection.
- ⭐ Ratings and favorites influence recommendation weights
- 👥 Patterns from other players are used without personal identification
- 📦 Collaborative data is pre-processed and distributed with the app
- Node.js 18+
- Rust (rustup)
- npm or pnpm
# Clone the repository
git clone <repo-url>
cd playlite
# Install dependencies
npm installIf you are running on Linux, execute the integration script to install the icon and .desktop file:
npm run install:linuxThis installs the icon and .desktop file in the user directory (~/.local/share/), allowing Wayland/X11 to associate
the app window with the correct taskbar icon.
npm run tauri devnpm run tauri buildIf you are using Visual Studio Code, it is recommended to install the following extensions:
tauri-apps.tauri-vscode(Tauri)rust-lang.rust-analyzer(Rust)
- Architectural decisions (ADR):
ADR.md - Project architecture:
ARCHITECTURE.md - Online documentation (VitePress): https://playlite.vercel.app/en
- Project updates:
CHANGELOG.md - Roadmap:
ROADMAP.md
Suggestions and contributions are welcome!
See the CONTRIBUTING.md file.
Playlite is a free and open-source project maintained in my spare time. If you find it useful and would like to support its continued development, you can sponsor the project through GitHub Sponsors, make a one-time donation via Ko-fi, or visit the project website to explore other ways to contribute. Your support helps cover development and infrastructure costs, allowing Playlite to remain free and continuously improve.
- GitHub Sponsors: https://github.com/sponsors/Alan-oliveir
- Ko-fi: https://ko-fi.com/alandeogoncalves
- Project Website: https://playlite-site.vercel.app/en
Thank you for supporting Playlite!
This project is licensed under the MIT License. See the LICENSE file for more details.
