{"id":14973148,"url":"https://github.com/threema-ch/threema-web","last_synced_at":"2025-05-14T19:02:09.357Z","repository":{"id":17475243,"uuid":"81329223","full_name":"threema-ch/threema-web","owner":"threema-ch","description":"The Threema Web application.","archived":false,"fork":false,"pushed_at":"2025-03-17T17:11:44.000Z","size":84053,"stargazers_count":1035,"open_issues_count":133,"forks_count":112,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-04-11T23:39:41.756Z","etag":null,"topics":["angularjs","messenger","threema","web","webclient"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/threema-ch.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-3RD-PARTY.txt","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}},"created_at":"2017-02-08T12:46:24.000Z","updated_at":"2025-04-08T00:45:57.000Z","dependencies_parsed_at":"2024-04-16T15:44:33.779Z","dependency_job_id":"221862c8-c261-40c2-a8b7-8d155c2fdee9","html_url":"https://github.com/threema-ch/threema-web","commit_stats":{"total_commits":1374,"total_committers":32,"mean_commits":42.9375,"dds":"0.31804949053857345","last_synced_commit":"84d770ef77417365bf5085f2ea5ab3fb8fc2ab65"},"previous_names":[],"tags_count":92,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threema-ch%2Fthreema-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threema-ch%2Fthreema-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threema-ch%2Fthreema-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threema-ch%2Fthreema-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/threema-ch","download_url":"https://codeload.github.com/threema-ch/threema-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248717241,"owners_count":21150387,"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":["angularjs","messenger","threema","web","webclient"],"created_at":"2024-09-24T13:48:13.227Z","updated_at":"2025-04-13T12:45:46.611Z","avatar_url":"https://github.com/threema-ch.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Communication"],"sub_categories":[],"readme":"# Threema Web\n\n[![Build status](https://img.shields.io/circleci/build/github/threema-ch/threema-web/master)](https://circleci.com/gh/threema-ch/threema-web)\n[![License](https://img.shields.io/badge/License-AGPLv3-blue.svg)](https://github.com/threema-ch/threema-web/blob/master/LICENSE.txt)\n[![Docker Image](https://img.shields.io/badge/docker%20image-threema%2Fthreema--web-yellow.svg)](https://hub.docker.com/r/threema/threema-web)\n\n\u003e :warning: **Note:** Threema Web is in maintenance mode while we are working\n\u003e on [Threema for Desktop 2.0](https://three.ma/md), which should resolve some\n\u003e of the long-standing issues we were having with Threema Web. We will still do\n\u003e regular maintenance and fix critical bugs, but for now there will be no major\n\u003e new features or non-critical bugfixes. See\n\u003e https://github.com/threema-ch/threema-web/pull/996 for more details.\n\nThreema Web is a web client for Threema, a privacy-focussed end-to-end\nencrypted mobile messenger hosted and developed in Switzerland. With Threema\nWeb, you can use Threema on your Desktop without compromising security.\n\n[https://web.threema.ch/](https://web.threema.ch/)\n\n![Screenshot](https://threema.ch/images/webclient_header.png)\n\nThreema Web establishes a connection between Desktop and mobile device using\n[WebRTC](https://webrtc.org/) (Android) or encrypted WebSockets (iOS).\nSignaling and data is end-to-end encrypted with [SaltyRTC](https://saltyrtc.org/).\n\nFor more information, see the [Threema Cryptography\nWhitepaper](https://threema.ch/press-files/2_documentation/cryptography_whitepaper.pdf).\n\n\n## Bug Reports and Feature Requests\n\nIf you find a bug in Threema Web, feel free to [open an\nissue](https://github.com/threema-ch/threema-web/issues/new) on GitHub. Please\nmake sure that your bug report hasn’t already been filed by using the search\nfunction.\n\nNote that Threema Web is in maintenance mode while we are working on a new\nsolution that should resolve some of the long-standing issues we were having\nwith Threema Web. We will still do regular maintenance and fix critical bugs,\nbut for now there will be no major new features or non-critical bugfixes.  See\nhttps://github.com/threema-ch/threema-web/pull/996 for details.\n\n\n## Beta Testing\n\nWe may occasionally deploy experimental branches on\n[https://web-beta.threema.ch](https://web-beta.threema.ch) which you are\nencouraged to test. If you encounter problems, please\n[open an issue](https://github.com/threema-ch/threema-web/issues/new) and\ninclude the experiment’s version number (e.g. `1.2.3-experiment-beta4`).\n\n\n## Translating\n\nIf you want to help translate Threema Web to your language, please check out\n[`TRANSLATING.md`](./TRANSLATING.md)!\n\n\n## Protocol\n\nThe protocol used to communicate between the Threema app and Threema Web\nis documented [here](https://threema-ch.github.io/app-remote-protocol/).\n\n\n## Development\n\nThreema Web is written using [TypeScript](https://www.typescriptlang.org/) and\n[AngularJS 1](https://www.angularjs.org/). Dependencies are managed with\n[npm](https://www.npmjs.com/). You currently need Node.js 20 to build Threema\nWeb. (Note that Node.js is only a build dependency, the result is plain old\nclient-side JavaScript.)\n\nIf your default NodeJS version is not 20, use nvm to install it:\n\n    nvm install\n    nvm use\n\nInstall development dependencies:\n\n    npm install\n\nRun the dev server:\n\n    npm run devserver\n\nThen open the URL in your browser:\n\n    firefox http://localhost:9966\n\n*(Note that this setup should not be used in production. To run Threema\nWeb on a server, please follow the instructions at\n[docs/self_hosting.md](docs/self_hosting.md).)*\n\n\n## Testing\n\nTo run unit tests:\n\n    npm run build:unittests \u0026\u0026 npm run testserver\n    firefox http://localhost:7777/tests/testsuite.html\n\nTo run UI tests:\n\n    npm run build  # Required for CSS to be rebuilt\n    npm run test:ui \u003cbrowser\u003e\n\nFor example:\n\n    npm run test:ui firefox\n    npm run test:ui chrome\n\nYou can also filter the test cases:\n\n    npm run test:ui firefox emoji\n\nTo run linting checks:\n\n    npm run lint\n\nYou can also install a pre-push hook to do the linting:\n\n    echo -e '#!/bin/sh\\nnpm run lint' \u003e .git/hooks/pre-push\n    chmod +x .git/hooks/pre-push\n\n\n## Configuration\n\nThe configuration of Threema Web can be tweaked in\n[`src/config.ts`](src/config.ts) and [`src/userconfig.js`](src/userconfig.js) /\n[`src/userconfig.overrides.js`](src/userconfig.overrides.js) (see\n[`src/userconfig.overrides.js.example`](src/userconfig.overrides.js.example).\nThe config variables are defined at build time, and the userconfig variables\ncan be modified at runtime. Please refer to those files for documentation on\nwhat variables exist and how to configure them.\n\nIn the Docker image, all userconfig variables can be overridden using env\nvariables. See [`docs/docker.md`](docs/docker.md) for more information.\n\n\n## Self Hosting\n\nFor instructions on how to host your own version of Threema Web, please refer\nto [docs/self_hosting.md](docs/self_hosting.md).\n\n\n## Contributing\n\nContributions to Threema Web are welcome! Please open a pull request with your\nproposed changes.\n\n\n## Security\n\nEvery Threema Web release will be tagged. The git tags are cryptographically\nsigned using the following PGP key:\n\n    pub   rsa4096 2016-09-06 [SC] [expires: 2026-09-04]\n          E7AD D991 4E26 0E8B 35DF  B506 65FD E935 573A CDA6\n    uid           Threema Signing Key \u003cdev@threema.ch\u003e\n\nThe public key can be found [on Keybase](https://keybase.io/threema).\n\nIf you discover a security issue in Threema, please adhere to the coordinated\nvulnerability disclosure model. To be eligible for a bug bounty, please [file a\nreport on GObugfree](https://app.gobugfree.com/programs/threema) (where all the\ndetails, including the bounty levels, are listed). If you’re not interested in\nthe bug bounty program, you can contact us via Threema or by email; for contact\ndetails, see [threema.ch/contact](https://threema.ch/en/contact) (section\n“Security”).\n\n\n## License\n\nThreema Web license:\n\n    Threema Web.\n\n    Copyright © 2016-2025 Threema GmbH (https://threema.ch/).\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU Affero General Public License as\n    published by the Free Software Foundation, either version 3 of the\n    License, or (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n    GNU Affero General Public License for more details.\n\n    You should have received a copy of the GNU Affero General Public License\n    along with this program. If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\nFor third party library licenses, see `LICENSE-3RD-PARTY.txt`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreema-ch%2Fthreema-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthreema-ch%2Fthreema-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreema-ch%2Fthreema-web/lists"}