{"id":15016676,"url":"https://github.com/ussiemer/fedi-follow-force-graph","last_synced_at":"2026-02-10T19:05:11.198Z","repository":{"id":233845280,"uuid":"787900404","full_name":"ussiemer/fedi-follow-force-graph","owner":"ussiemer","description":"Mastodon analytics tool that generates a force graph to visually represent the relationships between user followers and followings on Mastodon. Users can log in via Mastodon OAuth to view graphs of their social connections. The tool is coded primarily in Python and utilizes JavaScript libraries for graphical representations. ","archived":false,"fork":false,"pushed_at":"2024-11-05T06:18:56.000Z","size":8706,"stargazers_count":3,"open_issues_count":12,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-16T00:18:15.695Z","etag":null,"topics":["async","dotenv","force","graph","mastodon","python","quart","ui","web"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ussiemer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"Scobiform"}},"created_at":"2024-04-17T11:56:19.000Z","updated_at":"2024-11-05T06:18:59.000Z","dependencies_parsed_at":"2024-04-23T15:27:50.976Z","dependency_job_id":"d0603468-9333-48dc-976d-6d85a9ceb67d","html_url":"https://github.com/ussiemer/fedi-follow-force-graph","commit_stats":null,"previous_names":["scobiform/fedi-follow-force-graph","ussiemer/fedi-follow-force-graph"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ussiemer/fedi-follow-force-graph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ussiemer%2Ffedi-follow-force-graph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ussiemer%2Ffedi-follow-force-graph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ussiemer%2Ffedi-follow-force-graph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ussiemer%2Ffedi-follow-force-graph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ussiemer","download_url":"https://codeload.github.com/ussiemer/fedi-follow-force-graph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ussiemer%2Ffedi-follow-force-graph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29313092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T17:48:59.043Z","status":"ssl_error","status_checked_at":"2026-02-10T17:45:37.240Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","dotenv","force","graph","mastodon","python","quart","ui","web"],"created_at":"2024-09-24T19:49:13.729Z","updated_at":"2026-02-10T19:05:11.172Z","avatar_url":"https://github.com/ussiemer.png","language":"HTML","funding_links":["https://github.com/sponsors/Scobiform"],"categories":["HTML"],"sub_categories":[],"readme":"# Fedi follow force graph\r\n\r\n[![CodeQL](https://github.com/Scobiform/fedi-follow-force-graph/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/Scobiform/fedi-follow-force-graph/actions/workflows/github-code-scanning/codeql)\r\n![App Status](https://img.shields.io/endpoint?url=https://fffg.scobiform.com/health)\r\n\r\n\r\n\u003cimg src=\"https://github.com/Scobiform/fedi-follow-force-graph/blob/master/static/fffg_logo.svg\" alt=\"fedi follow force graph logo\" align=\"right\" style=\"width: 14%\"/\u003e\r\n\r\nMastodon analytics tool that generates a force graph to visually represent the relationships between user followers and followings on Mastodon. Users can log in via Mastodon OAuth to view graphs of their social connections. The tool is coded primarily in Python and utilizes JavaScript libraries for graphical representations.\r\n\r\n## Table of Contents\r\n\r\n- [Requirements](#requirements)\r\n- [Environment Setup](#environment-setup)\r\n- [Create Virtual Environment](#create-virtual-environment)\r\n- [Start the Application](#start-the-application)\r\n- [Mastodon Developer Settings](#mastodon-developer-settings)\r\n- [Contributions](#contributions)\r\n- [Screenshots](#screenshots)\r\n- [License](#license)\r\n\r\n## Requirements\r\n\r\n```plaintext\r\n\r\nPython:\r\n    dotenv - BSD-3-Clause License\r\n    Mastodon.py - AGPL-3.0 License\r\n    Quart - MIT License\r\n    Quart-Auth - MIT License\r\n\r\nJavaScript:\r\n    force-graph - MIT License\r\n    d3-quadtree - BSD-3-Clause License\r\n    d3-force - BSD-3-Clause License\r\n    element-resize-detector - MIT License\r\n\r\n```\r\n\r\n## Environment Setup\r\n\r\nCreate a `.env` file with the following content to configure the application:\r\n\r\n```plaintext\r\n\r\nAPP_URL=https://yourdomain\r\nREPO_PATH=/path/to/repo\r\n\r\n```\r\n\r\n## Create virtual environment\r\n\r\nCreate a virtual environment and install the requirements:\r\n\r\n```plaintext\r\n\r\npython3 -m venv venv\r\nsource venv/bin/activate\r\npip install -r requirements.txt\r\n\r\n```\r\n\r\n## Start the application\r\n\r\nRun the application with the following command:\r\n\r\n```plaintext\r\n\r\npython3 start.py\r\n\r\n```\r\n\r\n## Mastdodon developer settings\r\n\r\nYou will need a valid callback address that is reachable from the internet. You can use a service like [ngrok](https://ngrok.com/) to create a tunnel to your local machine.\r\n\r\n## Contributions\r\n\r\nContributions are welcome! Please submit a pull request or open an issue if you would like to contribute to the project.\r\n\r\n## Screenshots\r\n\r\n\u003cimg src=\"https://github.com/Scobiform/fedi-follow-force-graph/blob/master/static/screen.png\" alt=\"fedi follow force graph screen\" style=\"width: 100%\"/\u003e\r\n\r\n## License\r\n\r\nAGPL-3.0\r\n\r\n## Do not use this in production\r\n\r\nThis is a proof of concept and should not be used in production. The application has not been tested for security vulnerabilities.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fussiemer%2Ffedi-follow-force-graph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fussiemer%2Ffedi-follow-force-graph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fussiemer%2Ffedi-follow-force-graph/lists"}