FamilyBot exists because of the incredible work done by the open-source community. This page lists the libraries, frameworks, and tools that make this bot possible.
- Description: The foundation for our Discord interactions.
- License: MIT License
- Usage: Core Discord bot functionality and command handling.
- Website: https://interactions-py.github.io/interactions.py/
- Description: Powers our Web UI backend.
- License: MIT License
- Usage: REST API and async request handling.
- Website: https://fastapi.tiangolo.com/
- Description: The ASGI server running our FastAPI application.
- License: BSD 3-Clause License
- Usage: Serving the Web UI.
- Website: https://www.uvicorn.org/
- Description: Templating for our HTML pages.
- License: BSD 3-Clause License
- Usage: Rendering the Web UI.
- Website: https://jinja.palletsprojects.com/
- Description: Ensures our data matches the expected types.
- License: MIT License
- Usage: API models and configuration validation.
- Website: https://docs.pydantic.dev/
- Description: Async HTTP client/server framework.
- License: Apache License 2.0
- Usage: Primary async HTTP client for Steam API calls throughout the bot.
- Website: https://docs.aiohttp.org/
- Description: Standard library for synchronous HTTP requests.
- License: Apache License 2.0
- Usage: Synchronous calls to the ITAD API.
- Website: https://requests.readthedocs.io/
- Description: Modern HTTP client with async support.
- License: BSD 3-Clause License
- Usage: Asynchronous API calls in database population scripts.
- Website: https://www.python-httpx.org/
- Description: WebSocket support for Python.
- License: BSD 3-Clause License
- Usage: Internal communication between bot components.
- Website: https://websockets.readthedocs.io/
Steam (solsticegamestudios/steam)
- Description: A specialized fork for interacting with Steam.
- License: MIT License
- Usage: Enhanced API access and fallback data retrieval.
- Website: https://github.com/solsticegamestudios/steam
-
Description: Anti-detect browser built on Firefox with fingerprint injection at the C++ level.
-
License: MPL-2.0
-
Usage: Extracting Steam web API tokens with bot-detection evasion.
-
Compliance Note: This usage may violate Steam's Terms of Service (automated API token extraction).
-
Website: https://camoufox.com/
- Description: Reads and writes YAML files.
- License: MIT License
- Usage: Handling our
config.yml. - Website: https://pyyaml.org/
- Description: Progress bars for the terminal.
- License: MIT License
- Usage: Visual feedback for long-running scripts.
- Website: https://tqdm.github.io/
- Description: The icons used throughout the dashboard.
- License: Font Awesome Free License
- Usage: UI icons.
- Website: https://fontawesome.com/
- Description: Condensed geometric sans-serif designed for screen UI.
- License: SIL Open Font License 1.1
- Usage: Primary UI font — headings, labels, buttons.
- Website: https://fonts.google.com/specimen/Saira
- Note: This font is bundled locally under
src/familybot/web/static/fonts/rather than loaded from a CDN.
- Description: Monospaced typeface designed for code and data.
- License: SIL Open Font License 1.1
- Usage: IDs, timestamps, log output, and code blocks.
- Website: https://fonts.google.com/specimen/Space+Mono
- Note: This font is bundled locally under
src/familybot/web/static/fonts/rather than loaded from a CDN.
- Description: Fast Python package manager.
- License: Apache License 2.0
- Usage: Managing dependencies and environments.
- Website: https://github.com/astral-sh/uv
- Description: Zero-config SQL engine.
- License: Public Domain
- Usage: Local storage for games, wishlists, and users.
- Website: https://www.sqlite.org/
- Description: Primary data source for Steam information.
- Usage: Game data, user libraries, and wishlists.
- Description: Extended API for family library management.
- Description: Steam's content delivery network.
- Usage: Game header images on the wishlist page.
- Description: Price tracking and deal aggregation.
- Usage: Finding historical lows and current sales.
- Description: Source for free game data.
- Description: The original project this version is based on.
- Usage: Base structure and core concepts.
FamilyBot is built using libraries with permissive open-source licenses (MIT, BSD-3-Clause, Apache-2.0, and Public Domain), the weak copyleft (file-level) MPL-2.0 license, and the font-specific OFL-1.1 license (which includes share-alike/copy-left terms).
Huge thanks to the maintainers of the projects listed above. Without your work, building something like FamilyBot would take months instead of days. We also appreciate the Discord.py community and everyone who uses and helps improve this bot.