Monitor Bluesky posts and analyze trends in real-time.
Powered by the Bluesky Firehose via their Jetstream websocket service using Rust with a React frontend.
- Track and filter Bluesky posts based on custom keywords
- Real-time monitoring of the Bluesky Firehose
- View and manage interests/keywords
- Analyze and summarize posts matching your interests with Gemini
- Sentiment analysis of posts
- French and English user interface
- Light and dark mode
- Simple authentication and authorization
- Rust (latest stable version)
- Node.js (latest LTS version)
- pnpm
- SQLite
- Clone the repository:
git clone https://github.com/BenJeau/bluflare.git
cd bluflare- Start the backend:
cd backend
cargo run --bin backend- Start the frontend:
cd frontend
pnpm install
pnpm devThe frontend will be available at http://localhost:5173 by default and the backend at http://localhost:3000.
Figment is used to define the configuration of the service. Default values are set within the config.toml file and all fields can be overwritten using environment variables starting with BLUFLARE__ and have sections in uppercase and separated with double underscores __. For example, to disable the Jetstream websocket client via an environment variable, you would use BLUFLARE__JETSTREAM__ENABLED=false as variable.
By default, authentication is disabled and anyone can hit all endpoints (create/delete/update). To enabled authentication, you need to set the BLUFLARE__SERVER__AUTH__ENABLED environment variable to true and set the BLUFLARE__SERVER__AUTH__PASSWORD_HASH and BLUFLARE__SERVER__AUTH__USERNAME environment variables to the password hash and username of the admin user.
The password hash can be generated using the following command:
cd backend && cargo run --bin gen-auth 'PASSWORD'Authentication is done via a cookie and only a single session is allowed at a time. If you log in multiple times, only the last session will be valid.
The backend is built with:
The frontend is built with:
- Illustrations: Manypixels
- Icons: Lucide
- Styling: TailwindCSS
- UI Framework: shadcn/ui
- API Framework: Tanstack Query
- Routing: Tanstack Router
- State Management: Jotai
Please refer to the deployment documentation for more information to deploy to DigitalOcean.
bluflare/
├── backend/ # Rust backend
│ ├── src/ # Source code
│ └── Cargo.toml # Rust dependencies
├── frontend/ # React frontend
│ ├── src/ # Source code
│ └── package.json # Node.js dependencies
└── README.md # This file
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.

