{"id":25902389,"url":"https://github.com/dapplets/community-badges","last_synced_at":"2025-09-06T09:49:04.088Z","repository":{"id":199310559,"uuid":"700459558","full_name":"dapplets/community-badges","owner":"dapplets","description":"The dapplet displaying community badges from NEAR ecosystem in Twitter and GitHub, a solution developed during the Encode x NEAR Horizon Hackathon.","archived":false,"fork":false,"pushed_at":"2024-03-29T10:32:18.000Z","size":2915,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-03T03:15:58.198Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/dapplets.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}},"created_at":"2023-10-04T16:28:00.000Z","updated_at":"2023-10-11T17:22:49.000Z","dependencies_parsed_at":"2023-10-16T11:25:25.322Z","dependency_job_id":"c8882722-31af-4b41-b3e4-e28402f8813c","html_url":"https://github.com/dapplets/community-badges","commit_stats":null,"previous_names":["dapplets/community-badges"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dapplets/community-badges","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapplets%2Fcommunity-badges","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapplets%2Fcommunity-badges/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapplets%2Fcommunity-badges/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapplets%2Fcommunity-badges/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dapplets","download_url":"https://codeload.github.com/dapplets/community-badges/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapplets%2Fcommunity-badges/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273886639,"owners_count":25185509,"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","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-03-03T03:16:00.636Z","updated_at":"2025-09-06T09:49:04.041Z","avatar_url":"https://github.com/dapplets.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Community Badges Dapplet\n\n![image](/docs/dark.png#gh-dark-mode-only)\n![image](/docs/light.png#gh-light-mode-only)\n\n\n## Short platform introduction\n\n\nDapplets provides tools for embedding Web3 applications into any web page without getting permission from its owner. We are using BOS-components to do that. \n\nUsing Dapplets Browser Extension we have introduced technology called Mutable Web which allows any user to create a mutation of a page in a permissionless way and offer it to the community use instead of the original one.\n![QiMiGKX](https://github.com/dapplets/community-badges/assets/51093278/84db20c9-63a0-4fd4-a75a-b683e83f2da6)\n\n\nTo illustrate the technology we developed Community Tools that customize and improve UX for the community on 3rd party websites like Twitter and Github to show badges to users who are members of the NEAR community, making them more visible. \n\nThe community gets new tools for onboarding new members, and external members (Visitors) understand who's who in the NEAR community.  Other apps from the Community Tools set will follow.\n\n## What we have built\n\nMutation is a set of applications like Community Tools, curated by DAO on behalf of the community, and targeting multiple websites. \nThe role of mutation curator is similar to Linux distributor, where the user decides which distribution to use. \nAnyone can create a Mutation, which are competing for the audience.\nIn order to \"apply\" a mutation, the community first provides its users with a link to the intermediary site forwarding to the mutated website or asking to install the Extension if it is not installed yet. \nFor example, the community can post this link on its official web2 information channel.\n\nHere you can install Mutation to try it - [link](https://augm.link/?t=https%3A%2F%2Ftwitter.com%2FMrConCreator\u0026m=dapplets.sputnik-dao.near%2Fcommunity\u0026d=community-badges)\n\nThe user follows Mutation, which is applied automatically when a designated page is reached. Thus the mutated version becomes the default version for the community. The user can always select another mutation or turn it off. \nBy activating the mutation the user begins to see badges and insignia in the Twitter profile related to the NEAR ecosystem.\n\nEach UI change is a separate BOS component provided by the community. \nHere we use specially built Adapters that deal with semantic analysis of the page and provide insertion points and the ability to mount components on the fly. \n\nIn the previous version, it was only possible to define a mutation replacing BOS components already inserted on the page. \nNow we have implemented the ability to insert BOS-component into all insertion points on the page provided by the adapter, regardless of whether something is inserted there or not.\n\nEach badge is a BOS-component with its own function that is supported by a separate community that issues it.\n\n\nHere are the badges that were implemented during the hackathon :\n\n- Sign that the user has NEAR account connected to a web2 account.\n- A badge showing community affiliation.\n- A short version of the badge to display in a tweet\n- Interactive badges - responsive to user actions  and evolving depending on on-chain data \n\nWe asked two NEAR communities (Learn Near Club and DevHub) to provide us with a meaningful badge system that makes sense for users and implemented it.\n\nFor Learn Near Club it is a badge showing how many tokens a community member received for participating in beta tests, which is used as his rank in the community. \n\nFor DevHub it is a badge that shows workgroup maintainers.\n\nThanks to the virtual adapter all badges are also shown on GitHub.\n\n## Implementation details\n\n![Mutation 3 (2)](https://github.com/dapplets/community-badges/assets/51093278/290cf1eb-7eea-4688-a9e7-31adc470dd9b)\n\nMutation fetches user community badges from a contract. \nThe list of communities is managed by the mutation maintainer. \nThe community itself manages the list of its users and badges.\nIt is up to the community to decide how badges are generated. \nThey can simply create registries with user-badge pairs, or they can connect a smart contract checking a token or NFT ownership and return a response that the user has a certain badge and a badge component for demonstration.\n\nInstead of a full-fledged registry with Twitter and GitHub account data, as a temporary solution, we used a JSON file obtained after processing data from near.social.\n\n## Why it matters\n\nWe believe that the community needs such a tool, as it provides an opportunity to reward members and reflect the degree of human participation in the ecosystem. \nIt is also a new way of communication with the community, marketing, and engagement of current and new audiences. \nNEAR Twitter Mutation targets 1.8 mln followers on NEAR's main account, engaging new people directly into NEAR community.\n\nThus, not only the site owner determines the UX, but also the user community. \nThe user community becomes a self-sufficient well-organized economic entity, regardless of the sites it inhabits. \nThis is a major paradigm shift in web architecture.\n\nThe community becomes capable of customizing 3rd party webpages for its needs. \nThis is another major paradigm shift.\n\n\n## Team\nAlexander Sakhaev\nKonstantin Iakovlev\n\n## Related Links\n\n[Demo Link](https://augm.link/?t=https%3A%2F%2Ftwitter.com%2FMrConCreator\u0026m=dapplets.sputnik-dao.near%2Fcommunity\u0026d=community-badges)\n\n[Community Tools Dapplet](https://github.com/dapplets/community-badges/tree/main/dapplet)\n\n[Smart-contract based Community Registry](https://github.com/dapplets/community-badges/blob/main/contract/community-registry/src/lib.rs)\n\n[Smart-contract based Badge Registry](https://github.com/dapplets/community-badges/blob/main/contract/badge-registry/src/lib.rs)\n\n[Developed BOS-components](https://github.com/dapplets/community-badges/tree/main/bos-components/mybadge.near)\n\n[Showcase of the used BOS-components at near.org](https://near.org/mybadge.near/widget/Showcase)\n\n[Dapplet Extension (forked branch near-bos)](https://github.com/dapplets/dapplet-extension/tree/near-bos)\n\n[Twitter Adapter (forked branch near-bos)](https://github.com/dapplets/modules-monorepo/tree/near-bos/packages/adapters/twitter-bos-config)\n\n[GitHub Adapter (forked branch near-bos)](https://github.com/dapplets/modules-monorepo/tree/near-bos/packages/adapters/github-bos-config)\n\n## Getting Started\n\n1.  Go to module folder and `npm i` to install dependences.\n2.  `npm start` to run module at localhost.\n\n### Option \"adapter\"\n\nMore about using the [adapter](https://docs.dapplets.org/docs/new-site-adapter).\nMore about using the Web Components for adapter [here](https://docs.dapplets.org/docs/web-components).\n\n### Option \"overlay\"\n\nMore about using the [overlay](https://docs.dapplets.org/docs/overlay-login).\n\n### Option \"server\"\n\nMore about using the [server](https://docs.dapplets.org/docs/server-connection)\n\n## Learn more\n\n- **Dapplets Project** - [dapplets site](https://dapplets.org/)\n- **Documentation** - [documentation](https://docs.dapplets.org/docs/)\n- **GitHub Project Dapplets** - [github](https://github.com/dapplets)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdapplets%2Fcommunity-badges","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdapplets%2Fcommunity-badges","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdapplets%2Fcommunity-badges/lists"}