{"id":31847924,"url":"https://github.com/wireapp/wire-emails","last_synced_at":"2026-02-18T00:31:15.541Z","repository":{"id":29237145,"uuid":"120641490","full_name":"wireapp/wire-emails","owner":"wireapp","description":"Templates for sending emails for Wire","archived":false,"fork":false,"pushed_at":"2026-01-30T13:46:07.000Z","size":69430,"stargazers_count":13,"open_issues_count":22,"forks_count":9,"subscribers_count":12,"default_branch":"master","last_synced_at":"2026-01-31T06:01:48.592Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://wireapp.github.io/wire-emails/dist/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wireapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-02-07T16:34:37.000Z","updated_at":"2026-01-30T13:46:10.000Z","dependencies_parsed_at":"2024-05-28T10:54:10.634Z","dependency_job_id":"64d703e3-989c-4e47-aec4-8e475af89125","html_url":"https://github.com/wireapp/wire-emails","commit_stats":null,"previous_names":[],"tags_count":157,"template":false,"template_full_name":null,"purl":"pkg:github/wireapp/wire-emails","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireapp%2Fwire-emails","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireapp%2Fwire-emails/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireapp%2Fwire-emails/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireapp%2Fwire-emails/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wireapp","download_url":"https://codeload.github.com/wireapp/wire-emails/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireapp%2Fwire-emails/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29563467,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T21:50:49.831Z","status":"ssl_error","status_checked_at":"2026-02-17T21:46:15.313Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":[],"created_at":"2025-10-12T09:58:33.066Z","updated_at":"2026-02-18T00:31:15.525Z","avatar_url":"https://github.com/wireapp.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wire-emails\n\n[![Build Status](https://travis-ci.org/wireapp/wire-emails.svg?branch=master)](https://travis-ci.org/wireapp/wire-emails)\n\nTemplates for sending emails, based on [Foundation for Emails](https://foundation.zurb.com/emails.html).\n\nVisit [wireapp.github.io/wire-emails/dist](https://wireapp.github.io/wire-emails/dist/) for the latest ✨ [**Live Preview**](https://wireapp.github.io/wire-emails/dist/) ⭐️\n\nHelp translate our emails via the [Crowdin project](https://crowdin.com/project/wire-launch).\n\n## IMPORTANT NOTES\n\n- Only ever update stuff under `/src/`. Other changes may get overwritten.\n- Only translate languages supported here: https://github.com/wireapp/wire-emails/blob/master/bin/translate.js#L24-L31\n\n## For Designers\n\n- Find and edit the template in [`src/pages/en`](https://github.com/wireapp/wire-emails/tree/master/src/pages/en).\n- To update shared text modules like headers, footers or signatures, edit the corresponding files in the [`src/partials/en`](https://github.com/wireapp/wire-emails/tree/master/src/partials/en) folder.\n- Commit your changes to `master`.\n- Continue in [Section \"Otto builds\"](./README.md#otto-builds) below.\n\n## For Copywriters\n\n- Find the things you want to edit in the same places as designers (see [above](./README.md#for-designers)).\n- Commit your changes to a branch and create a pull request.\n- Otto will now automatically upload your English changes to the [Crowdin project](https://crowdin.com/project/wire-launch).\n- Continue in [Section \"For Translators\"](./README.md#for-translators) below.\n\n## For Translators\n\n- All translations are located in the [Crowdin project](https://crowdin.com/project/wire-launch).\n- When the original (English) email copy is changed via the GitHub UI or in a local clone and submitted via a pull request, the modified source text is uploaded to Crowdin for translation. Translators use the [Crowdin UI](https://crowdin.com/project/wire-launch) to update the localized text strings.\n- When the translators are done, merge the pull request to `master`.\n- The 'Subject' keyword in the translations should not be translated as it is used to split that section into an email subject. The text after the colon should be translated as normal. [Example at line 2](./src/pages/de/user/email/verification-login.html)\n- Additionally the 'Layout' keyword as well as the text after it should also not be translated as it refers to a source language file name [Example at line 2](./src/pages/pl/billing/email/suspension.html).\n- Continue in [Section \"Otto builds\"](./README.md#otto-builds) below.\n\nIf you changed Crowdin content without any changes on github (eg., to fix a translation error), you can try to re-run the travis job that is otherwise triggered automatically on every change on `master`.\n\n## Otto builds\n\nWhen you commit to `master`, Otto will tell Travis to generate [the new email templates](https://github.com/wireapp/wire-emails/tree/master/dist) and add an `Otto build` message to the [commits list](https://github.com/wireapp/wire-emails/commits/master). The absense of the `Otto build` will indicate an error as seen in the screenshot below:\n\n\u003cimg width=\"317\" alt=\"Commit screenshot\" src=\"https://user-images.githubusercontent.com/129995/36435445-ff5e85a6-1661-11e8-9e22-b1d2420e78f1.png\"\u003e\n\n## Advanced\n\nWe recommend you set up the `wire-emails` repo to run locally on your computer so you can verify your changes before pushing them to the live site.\n\nThe instructions below assume you're on a Mac with [Homebrew](http://brew.sh) installed.\n\n### Installation\n\n1.  Install the [yarn](https://yarnpkg.com) JavaScript package manager via Homebrew:\n\n    ```sh\n    brew install yarn\n    ```\n\n2.  Clone this repository and run `yarn` from the root directory of your clone to install the necessary dependencies:\n\n    ```sh\n    yarn global add foundation-cli\n    yarn\n    ```\n\n### Start the local preview\n\nThis repository provides a local preview, so you can see what the final messages will look like.\n\nTo start the preview, run `yarn start` and check the results at [`localhost:3000`](http://localhost:3000).\n\nA table of contents appears with links to each message. Click a link to display the rendered message content.\n\n### Update\n\nWhen you update the HTML files in the `src` folder, the results should be reflected automatically in the browser.\n\nIf not, make sure the local preview server is running or check the console for errors.\n\n### Build\n\nRun `yarn build` to inline your CSS into your HTML along with the rest of the build process.\n\n### Import changes to [wire-server](https://github.com/wireapp/wire-server)\n\nFind the tag you want to update to from\n[here](https://github.com/wireapp/wire-emails/tags), or from the repo\nin a shell:\n\n```\ncd ~/src/wire-emails\nexport TAG=$(git tag  -l --sort v:refname | tail -1)\n```\n\nThe update the tag in wire-server, run a script to pull the updates, and commit everything to a branch:\n\n```\ncd ~/src/wire-server\ngit checkout develop \u0026\u0026 git checkout -b email-templates-$TAG\necho $TAG \u003e ./libs/wire-subsystems/template-version\n./libs/wire-subsystems/bin/fetch.p\necho \"Updated email templates to $TAG\" \u003e changelog.d/5-internal/email-templates-$TAG\ngit add .\ngit commit -m \"Update email templates to $TAG.\"\n```\n\nNow make a PR like you always do.\n\nThere are two issues for automating this process a little further: https://github.com/zinfra/backend-issues/issues/720, https://github.com/zinfra/backend-issues/issues/1130, but both are labelled [P4](https://github.com/zinfra/backend-wiki/wiki/Bug-Tracking#backend-issues-priorities) at the time of writing this.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwireapp%2Fwire-emails","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwireapp%2Fwire-emails","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwireapp%2Fwire-emails/lists"}