{"id":42240354,"url":"https://github.com/samouraiworld/gnolove","last_synced_at":"2026-01-27T04:08:52.987Z","repository":{"id":282711020,"uuid":"859778584","full_name":"samouraiworld/gnolove","owner":"samouraiworld","description":"Gnolove","archived":false,"fork":false,"pushed_at":"2025-12-11T23:04:25.000Z","size":100191,"stargazers_count":6,"open_issues_count":12,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-12-13T04:42:47.366Z","etag":null,"topics":["contribution-analysis","contributors","opensource","opensourceforgood","visualization"],"latest_commit_sha":null,"homepage":"https://gnolove.world","language":"TypeScript","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/samouraiworld.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-19T09:06:48.000Z","updated_at":"2025-12-11T23:04:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"8231daed-e4e7-4017-8f31-0bf80f8e1d58","html_url":"https://github.com/samouraiworld/gnolove","commit_stats":null,"previous_names":["samouraiworld/gnolove"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/samouraiworld/gnolove","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samouraiworld%2Fgnolove","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samouraiworld%2Fgnolove/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samouraiworld%2Fgnolove/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samouraiworld%2Fgnolove/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samouraiworld","download_url":"https://codeload.github.com/samouraiworld/gnolove/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samouraiworld%2Fgnolove/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28801225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T03:44:14.111Z","status":"ssl_error","status_checked_at":"2026-01-27T03:43:33.507Z","response_time":168,"last_error":"SSL_read: 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":["contribution-analysis","contributors","opensource","opensourceforgood","visualization"],"created_at":"2026-01-27T04:08:52.254Z","updated_at":"2026-01-27T04:08:52.980Z","avatar_url":"https://github.com/samouraiworld.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gnolove.world ❤️\n\n![Twitter header Gnolove](https://hackmd.io/_uploads/rJENakXRC.png)\n\n## ❤️ Gamified Contributors Experience for Gnomes! ❤️\n\n###  Introduction :\n\n\"_At first, there was Bitcoin, out of entropy soup of the greater All. Then, there was Ethereum, which was created in the likeness of Bitcoin, but made Turing complete.\nAmong these were Tendermint and Cosmos to engineer robust PoS and IBC. Then came Gno upon Cosmos and there spring forth Gnoland, simulated by the Gnomes of the Greater Resistance._\"\nGno is an interpreted and fully-deterministic implementation of the Go programming language, designed to build succinct and composable smart contracts. The first blockchain to use it is gno.land, a Proof of Contribution-based chain, backed by a variation of the Tendermint consensus engine.\n\nIn the future, contributors will be paid automatically for their contributions on the blockchain project, using different data prodivers prooving valuable contributions, and a decentralized reviewing organization.\n\n### Gnolove\nGnolove is a scoreboard for the Gno chain that showcases contributors, open‑source repositories, activity and development efforts across the Gnoland ecosystem. Our aim is to make all this data in easily accessible.\n\nMain goals right now are : \n- boost developers motivation to join the movement! 🏆\n- create a fun community experience! 🥇\n- offer an alternative option to visualize activity! 📊\n- experiment! 🧰\n\n---\n\n### Features\n- Overview of Gnoland development efforts\n- Leaderboard of top contributors, through calculating love power.\n- Weekly pull request report for each team and each repository\n- Ability to view and vote on proposals as GovDAO member\n- Ability to view and manage Gno validators\n- Visual contributor activity (commits, issues, pull requests, reviews) tracking and timeline\n- Gno-related tutorial videos\n- Ability to set up webhooks to periodically receive leaderboards in Discord or Slack\n\n#### Ideas for future\n- Offer goodies to top contributors every month, claiming their rewards: www.samourai.fun\n- Generate automatically some dev reports to enforce information transparency for non-tech communities\n- Connect it to a newsletter to receive a monthly gno dev report\n- ... 🧠 'enter your ideas'\n\n#### Source:\nhttps://github.com/gnolang/gno\n\n---\n\n# Getting started\n1. Clone the repository\n   ```bash\n   git clone https://github.com/samouraiworld/gnolove.git\n   cd ./gnolove\n   ```\n\n2. Install dependencies\n   ```bash\n   pnpm install\n   ```\n\n3. Set up environment variables\n   ```bash\n   cp .env.example .env\n   ```\n\n - Frontend environment variables\n\n   - Required:\n     - `GITHUB_API_TOKEN`: Your GitHub API token. Create one at [https://github.com/settings/tokens](https://github.com/settings/tokens)\n     - `NEXT_PUBLIC_API_URL`: The API (backend) URL\n\n   - Optional:\n     - `NEXT_PUBLIC_MONITORING_API_URL`: enables monitoring/validators features.\n     - `YOUTUBE_API_KEY`: enables YouTube tutorials\n     - `NEXT_PUBLIC_GNO_CHAIN_ID`: used by Adena network checks when linking GitHub profile\n     - `NEXT_PUBLIC_OAUTH_CLIENT_ID` and `NEXT_PUBLIC_REDIRECT_PROXY`: GitHub OAuth linking \n     - `NEXT_PUBLIC_GHVERIFY_REALM_PATH`: on‑chain verification UX\n     - `NEXT_PUBLIC_PROFILE_REALM_PATH`: on‑chain profile updates\n     - `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY`: front‑end part of Clerk; pairs with backend `CLERK_SECRET_KEY`\n\n  ```bash\n  cd server\n  cp .env.example .env\n  ```\n\n - Backend environment variables\n\n   - Required:\n     - `GITHUB_REPOSITORIES`: A list of space-separated GitHub repositories we'll look for activity on.\n     - `GITHUB_OAUTH_CLIENT_ID`: Your OAuth client ID. Create one at [https://github.com/settings/applications/new](https://github.com/settings/applications/new)\n     - `GITHUB_OAUTH_CLIENT_SECRET`: Your OAuth client secret. Create one at [https://github.com/settings/applications/new](https://github.com/settings/applications/new)\n     - `GITHUB_API_TOKEN`: Your GitHub API token. Create one at [https://github.com/settings/tokens](https://github.com/settings/tokens)\n     - `GNO_RPC_ENDPOINT`: Your Gno RPC endpoint. Used by RPC client and on‑chain code\n     - `GNO_GRAPHQL_ENDPOINT`: Your Gno GraphQL endpoint. Used by Gno indexer client\n     - `GNO_CHAIN_ID`: The Gno chain ID. Used by signer\n     - `GHVERIFY_OWNER_MNEMONIC`: Your GitHub verify owner mnemonic. Create one in Adena.\n     - `GHVERIFY_REALM_PATH`: Your Gno ghverify realm path. Used by signer\n     - `GOVDAO_REALM_PATH`: Your Gno GovDAO realm path. Used by signer\n\n   - Optional with defaults:\n     - `DATABASE_PATH`: The database path. Defaults to `db/database.db`.\n     - `LEADERBOARD_EXCLUDED_REPOS`: The repositories excluded when we calculate activity to compute leaderboards, sent through webhooks. Defaults to `samouraiworld/gnomonitoring`\n\n   - Optional (no defaults in code; enable extra features when provided):\n     - `DISCORD_WEBHOOK_URL`: URL for the Samourai Coop Discord webhook in which we send leaderboards. Deprecated.\n     - `CLERK_SECRET_KEY`: Enables Clerk‑protected features\n     - `MISTRAL_API_KEY`: Enables scheduled AI tasks\n\n4. Run the server (backend)\n   ```bash\n   cd server\n   go run .\n   ```\n\n5. Run the client (frontend) in another terminal\n   ```bash\n   cd ..\n   pnpm run dev\n   ```\n\n---\n\n#### Current Love Power Equation: \n\n| Contribution Type | Points |\n|-------------------|--------| \n| PR                | 2      | \n| Review done       | 2      | \n| Issue opened      | 0,5    | \n| Commit            | 10     | \n\n---\n\n### Contribute\n\nWe welcome contributions from the community! \nCheck out our [contribution guide](CONTRIBUTING.md) to get started.\n\n👉 [Contribute to the project](https://github.com/samouraiworld/gnolove)\n\n---\n\nTo be continued, \nby \u0026 for Gno.land community.\n🥷\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamouraiworld%2Fgnolove","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamouraiworld%2Fgnolove","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamouraiworld%2Fgnolove/lists"}