diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..66567a33 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,21 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.1.0] - Initial Release + +### Added +- **Core Architecture**: Full transition to Tauri v2 with React front-end. +- **Subsonic API Integration**: Complete support for browsing albums, artists, playlists, and fetching streams. +- **Theming System**: Implementation of the Catppuccin Mocha (Dark) and Latte (Light) design systems with dynamic CSS variables. +- **Internationalization (i18n)**: Multi-language support structure established with English and German translations out of the box. +- **Player & Queue**: Fully functional persistent queue with drag-and-drop support, repeat modes, and volume state retention. +- **Live "Now Playing"**: Real-time dropdown to view active streams on the connected server. +- **Settings & Network**: Dual URL configuration (LAN/External) with ping-testing capabilities. +- **Full-Screen Player**: Immersive full-screen mode showing massive album art and track metadata. +- **Continuous Integration**: Automated GitHub Actions to compile native binaries for Linux, macOS, and Windows. + +*Initial public release repository setup.* diff --git a/README.md b/README.md new file mode 100644 index 00000000..96d19631 --- /dev/null +++ b/README.md @@ -0,0 +1,84 @@ +
+ +--- + +Psysonic is a beautiful desktop music player built completely from the ground up for the modern era. Utilizing **Tauri v2** and **React**, it offers a native-feeling, lightweight, and incredibly fast experience with a stunning UI inspired by the [Catppuccin](https://github.com/catppuccin/catppuccin) aesthetic. + +Designed specifically for users hosting their own music via Navidrome or other Subsonic API servers, Psysonic aims to be the best way to interact with your personal library. + +## ✨ Features + +- 🎨 **Gorgeous UI**: Deeply integrated Catppuccin themes (Mocha & Latte) with smooth glassmorphism effects and micro-animations. +- ⚡ **Blazing Fast**: Built with Rust & Tauri, resulting in minimal RAM usage compared to typical Electron apps. +- 🌍 **Internationalization (i18n)**: Fully translated into English and German, with the architecture built to easily support more languages. +- 📻 **Live "Now Playing"**: See what other users on your server are currently listening to in real-time. +- 🎵 **Last.fm Scrobbling**: Full integration for scrobbling your tracks via the Navidrome server. +- 💾 **Local Caching**: Fast loading times with customizable image caching thresholds. +- 💿 **Album & Artist Views**: Beautiful grid displays and detailed artist pages with related albums. +- 🎛️ **Queue Management**: Drag & drop support, playlist saving, and loading directly built into the queue. +- 🖥️ **Cross-Platform**: Available natively for Windows, macOS, and Linux. + +## 📥 Installation + +Navigate to the [Releases](https://github.com/Psychotoxical/psysonic/releases) page and download the installer for your operating system. + +- **Windows**: `.exe` or `.msi` +- **macOS**: `.dmg` +- **Linux**: `.AppImage` or `.deb` + +## 🚀 Getting Started + +1. Download and install Psysonic. +2. Open the app and enter your Subsonic/Navidrome server details (URL, Username, Password). +3. If applicable, you can provide both an external URL and a local LAN IP. Psysonic allows you to quickly toggle between them in the Settings. +4. Enjoy your music! + +## 🛠️ Development + +If you want to build Psysonic from source or contribute to the project: + +### Prerequisites +- [Node.js](https://nodejs.org/) (v18+) +- [Rust](https://www.rust-lang.org/) +- OS-specific build dependencies for Tauri (see the [Tauri prerequisites guide](https://tauri.app/v1/guides/getting-started/prerequisites)). + +### Setup + +```bash +# Clone the repository +git clone https://github.com/Psychotoxical/psysonic.git +cd psysonic + +# Install node dependencies +npm install + +# Run in development mode +npm run tauri:dev + +# Build for production +npm run tauri:build +``` + +## 🤝 Contributing + +Contributions are completely welcome! Whether it is translating the app into a new language, fixing a bug, or proposing a new feature. + +1. Fork the Project +2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) +3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the Branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + +## 📄 License + +Distributed under the MIT License. See `LICENSE` for more information.