MAL-Bluesky is a tool that fetches ongoing anime progress from MyAnimeList (MAL) and allows you to update your progress via the application while simultaneously posting updates to Bluesky. With OAuth2 integration for MAL authentication and a user-friendly interface for managing anime lists, this application makes it easy to keep your followers on Bluesky informed about your anime watching progress.
- OAuth2 Authentication with MyAnimeList: Log in with your MAL account to sync and manage your anime lists.
- Anime List Management: View your anime lists directly within the application and add newly watched episodes.
- Automatic Posting to Bluesky: After updating your anime progress, status or score, the tool automatically posts a message to Bluesky in the format "Watched X episodes of ANIME NAME". The same happens to Finished, and Dropped.
- Redis Caching: Caching is implemented to reduce the number of requests to the MAL API.
- MyAnimeList API credentials. You can obtain them by creating a new application here. For the redirect URI, use
http://localhost:80/auth/mal/callback. - Bluesky account
- Docker
-
Clone the repository:
git clone https://github.com/nyannakano/mal-bluesky
-
Navigate to the project directory:
cd mal-bluesky -
Start Laravel Sail:
Make sure you have Docker installed. Start Sail by running:
./vendor/bin/sail up
-
Install the dependencies:
Inside the Sail container, run:
./vendor/bin/sail composer install
-
Configure the
.envfile:Copy the example environment file and set up your credentials:
cp .env.example .env
Open the
.envfile and configure it with your credentials:MAL_CLIENT_ID=your-client-id MAL_CLIENT_SECRET=your-client-secret BLUESKY_USERNAME=username.bsky.social BLUESKY_PASSWORD=password -
Access the application:
You can now access your application at
http://localhostorhttp://127.0.0.1depending on your Sail configuration.
-
Authenticate with MyAnimeList: Access the MyAnimeList login screen and log in using OAuth2. You will be redirected to the application with your anime lists synced.
-
Manage Lists: On the list management screen, you can view your animes and add watched episodes.
-
Post Updates to Bluesky: With each progress update, a message will be automatically posted to Bluesky in the format "Watched X episodes of ANIME NAME".
- Fork the repository.
- Create a feature branch (
git checkout -b feature/YourFeature). - Commit your changes (
git commit -am 'Add new feature'). - Push to the branch (
git push origin feature/YourFeature). - Create a new Pull Request.

