{"id":18875979,"url":"https://github.com/activitywatch/aw-leaderboard-rust","last_synced_at":"2026-02-18T03:30:15.530Z","repository":{"id":166086278,"uuid":"641521959","full_name":"ActivityWatch/aw-leaderboard-rust","owner":"ActivityWatch","description":"Public leaderboard for ActivityWatch stats","archived":false,"fork":false,"pushed_at":"2024-02-28T10:10:30.000Z","size":131,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-14T23:29:39.291Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ActivityWatch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":["ActivityWatch"],"open_collective":"activitywatch","liberapay":"ActivityWatch","custom":["https://activitywatch.net/donate/"]}},"created_at":"2023-05-16T16:38:21.000Z","updated_at":"2024-02-28T10:32:36.000Z","dependencies_parsed_at":"2024-02-29T12:07:01.921Z","dependency_job_id":"34e0e6ad-2a2d-4b5f-a3c1-d2b934bfcd74","html_url":"https://github.com/ActivityWatch/aw-leaderboard-rust","commit_stats":{"total_commits":15,"total_committers":1,"mean_commits":15.0,"dds":0.0,"last_synced_commit":"68c1223b8c22f2178c41af28fb8ee3c2a3384c98"},"previous_names":["activitywatch/aw-leaderboard-rust","activitywatch/aw-leaderboard"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ActivityWatch%2Faw-leaderboard-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ActivityWatch%2Faw-leaderboard-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ActivityWatch%2Faw-leaderboard-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ActivityWatch%2Faw-leaderboard-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ActivityWatch","download_url":"https://codeload.github.com/ActivityWatch/aw-leaderboard-rust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239832074,"owners_count":19704549,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-08T06:10:00.916Z","updated_at":"2026-02-18T03:30:15.500Z","avatar_url":"https://github.com/ActivityWatch.png","language":"Rust","funding_links":["https://github.com/sponsors/ActivityWatch","https://opencollective.com/activitywatch","https://liberapay.com/ActivityWatch","https://activitywatch.net/donate/"],"categories":[],"sub_categories":[],"readme":"aw-leaderboard\n==============\n\n[![Build](https://github.com/ActivityWatch/aw-leaderboard/actions/workflows/build.yml/badge.svg)](https://github.com/ActivityWatch/aw-leaderboard/actions/workflows/build.yml)\n\n**NOTE: This project was an experiment and has been abandoned. See [aw-leaderboard-firebase](https://github.com/ActivityWatch/aw-leaderboard-firebase) for a newer attempt.**\n\nA public leaderboard for ActivityWatch data.\n\nInspired by the [WakaTime leaderboard](https://wakatime.com/leaders).\n\nBuilt with Rust using Rocket and (very basic) Tera templates (for now).\n\n\n## Overview\n\nThe `aw-leaderboard` application allows ActivityWatch users to share their time-tracking data on an opt-in basis.\n\nUsers share their data by registering an account on the site, obtaining a API key, and setting up data uploading through a \"share\" section in the ActivityWatch web UI.\n\nUsers can configure what data to share by configuring relevant categories, patterns, and other parameters.\nUsers can either define these configurations themselves, or select from a list of defaults.\n\nOnce users are satisfied with their selection, the data is pulled for review. Only the event data stripped to the category names (the `$category` key in event data) is sent and displayed.\n\n\n## Goals\n\nThe main goal is to:\n\n - Provide a platform for users to share their device activity, across different categories.\n   - Example: people can share how much they work, or spent on social media. (to flex/stay accountable)\n   - Example: contributors can use it to report the time spent working on different projects, like ActivityWatch. (dogfooding)\n   - Example: parents can set up reporting of time spent on video games, etc. (questionable usecase, no point in uploading really)\n   - Example: researchers can ask their subjects to set up reporting for categories of interest.\n\nSecondary goals:\n\n - Make ActivityWatch social by letting users share their stats\n   - Make it something people can \"show off\" online or in their profiles (with badge/link), helps improve reach.\n   - Promote user engagement by providing badges/links for online sharing or profile display, which may also increase our reach.\n - Develop a system to track contributor activity and disburse payments based on time spent.\n - Serve as a foundation that could be forked and modified to function as a reporting server for teams, companies, and research studies.\n\n\n## Why do users want to share data?\n\nUsers may wish to share their data for a variety of reasons, such as:\n\n- To maintain accountability, like ensuring they complete their thesis or prevent social media overuse.\n- To showcase their productivity.\n- To demonstrate their contributions to a specific project or community.\n\n\n## Considerations\n\n - How will/should multiple devices be handled?\n   - We will simply implement uploads/reporting on a device-by-device basis, where each device has to register and report. \n     - Gives us the ability to query \"last updated\" for each device (very helpful) \n   - Data from each device is then combined.\n - Better name\n   - We need a better name than \"Leaderboard\", maybe?\n     - Esp. considering most uses are not really competitive.\n\n\n## Related issues\n\n - Implement reporting: https://github.com/ActivityWatch/activitywatch/issues/233\n - Telemetry: https://github.com/ActivityWatch/activitywatch/issues/120\n   - Could help us establish yet another \"active user\" number (in addition to browser extension use stats)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factivitywatch%2Faw-leaderboard-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Factivitywatch%2Faw-leaderboard-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factivitywatch%2Faw-leaderboard-rust/lists"}