{"id":13912436,"url":"https://github.com/interledger/web-monetization-projects","last_synced_at":"2025-07-18T12:30:57.420Z","repository":{"id":37251360,"uuid":"216678474","full_name":"interledger/web-monetization-projects","owner":"interledger","description":"Coil projects that use Web Monetization. Primarily Coil's browser extension and related WM polyfills.","archived":true,"fork":false,"pushed_at":"2023-10-18T14:16:41.000Z","size":170610,"stargazers_count":81,"open_issues_count":122,"forks_count":17,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-06-23T18:03:35.815Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"web-monetization-projects-coilhq.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/interledger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-10-21T22:44:44.000Z","updated_at":"2024-02-18T04:31:13.000Z","dependencies_parsed_at":"2022-07-14T09:22:19.897Z","dependency_job_id":"836d4224-6525-4226-b621-14dd8a807b24","html_url":"https://github.com/interledger/web-monetization-projects","commit_stats":{"total_commits":2978,"total_committers":22,"mean_commits":"135.36363636363637","dds":0.5812625923438549,"last_synced_commit":"0ccf18eac13fb02234b87b39ce045c44c04f8dd8"},"previous_names":["coilhq/web-monetization-projects"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/interledger/web-monetization-projects","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interledger%2Fweb-monetization-projects","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interledger%2Fweb-monetization-projects/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interledger%2Fweb-monetization-projects/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interledger%2Fweb-monetization-projects/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/interledger","download_url":"https://codeload.github.com/interledger/web-monetization-projects/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interledger%2Fweb-monetization-projects/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265557166,"owners_count":23787708,"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-08-07T01:01:27.719Z","updated_at":"2025-07-18T12:30:56.179Z","avatar_url":"https://github.com/interledger.png","language":"TypeScript","funding_links":[],"categories":["others"],"sub_categories":[],"readme":"This repository is deprecated. See https://github.com/WICG/webmonetization/issues/306.\nThe new Web Monetization extension is being developed at https://github.com/interledger/web-monetization-extension.\n\n# Web Monetization Projects\n\n![Github Actions CI](https://github.com/interledger/web-monetization-projects/actions/workflows/generated-jobs.yml/badge.svg?branch=main)\n[![Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://prettier.io/)\n[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)\n\n## Development Process\n\nUltimately we want `main` branch to be in a 'good' state at all times, with good test\ncoverage, so we can practice CD, publishing the extensions to dev channels automatically.\n\nCurrently, we mostly rely on puppeteer tests which don't cover all the test scenarios.\nTherefore, **we must do manual testing before release**, as it's too much of an impediment\nto run through the full manual release checklist on each PR/commit.\n\nIt's a good practice to do manual testing, as often bugs can be found with fresh eyes,\nif one is carefully going through the steps. Also, doing so helps to keep the various\nfeatures freshly in mind, so when adding new features or fixing old ones, mistakes can\nbe avoided.\n\nSo:\n\n- **do not assume the main branch is in a good state** !\n  - Go through the release [release checklist](packages/coil-extension/docs/release-checklist.md) carefully!\n\n## Setting up dev environment\n\nThe Web-Monetization monorepo uses PNPM so you need to install it.\nSee [here](https://pnpm.io/installation) or use npm\n\n```sh\nnpm install -g pnpm\n```\n\nClone and setup the dev env.\n\n```sh\ngit clone git@github.com:coilhq/web-monetization-projects.git\npnpm install\n```\n\n### Node \u003e= 18\n\nThe TypeScript is compiled into es2020 and the CI only tests 18 (currently the LTS) and on.\nSee [nvm](https://github.com/nvm-sh/nvm#install--update-script) for an easy way to manage multiple versions\n\n## Why Vanilla Prettier ?\n\nWe used prettier-standard (based on prettierx, a fork of prettier) but found that it\nwas easier to find up-to-date editor/eslint integrations for the mainline prettier\nand just set the [.prettierrc](./.prettierrc) options to match prettier-standard as\nclosely as possible (no semicolon, single-quoted strings etc).\n\nThe one main difference is the lack of a space before parentheses in function declarations.\ne.g.\n\n```\nfunction prettierStandard () {}\n```\n\nvs\n\n```typescript\nfunction prettier() {}\n```\n\nThis is not a big deal when prettier is run before commit and enforced in the CI etc.\n\n## Repository Structure\n\nThis repository is managed using pnpm workspaces and typescript project references, with some custom code to\ngenerate consistent package.json/tsconfig.build.json/etc and src/test folder structure.\nSee the [coil-monorepo-upkeep](packages/coil-monorepo-upkeep) folder for details.\n\n## Development workflow\n\nThe root [tsconfig.json](tsconfig.json) has all the `paths` configured so refactoring/navigation\nworks across package boundaries, going directly to the source files rather than the declarations.\n\nIt looks at the entire monorepo as one set of sources, yet is configured to not actually emit any source.\nIt is purely for the purposes of the IDE.\n\nIt is intended that the whole monorepo be opened in the editor/IDE.\n\nTo build the source, one must use each individual package's `tsconfig.build.json`.\nThe root has a [tsconfig.references.json](tsconfig.references.json) which has `{\"path\": \"...}`\nlinks to all the project leaf nodes. Each package with dependencies on other packages also has these\nlinks automatically generated by `pnpm upkeep`.\nFor example, check the coil-extension [tsconfig.build.json](./packages/coil-extension/tsconfig.build.json)\n\n## Dependencies\n\nWe practice rolling versioning of updates, with dependabot configured to send\npull requests as new (release, not beta) versions come in. This practice makes\nit more likely the CI is able to catch the exact version a dependency starts to\ncause a break without manual bisection. After the initial hurdle of getting the\nsoftware into an up-to-date state this requires only scant daily attention,\nreading the release logs while waiting for CI.\n\nNote that we run through the [release-checklist.md](packages/coil-extension/docs/release-checklist.md)\nbefore every release, and we catch bugs there as well as with CI.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finterledger%2Fweb-monetization-projects","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finterledger%2Fweb-monetization-projects","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finterledger%2Fweb-monetization-projects/lists"}