# Yahoo Mail

Published articles for Yahoo Mail.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Achieving Major Stability and Performance Improvements in Yahoo Mail with a Novel Redux Architecture

DevFeed: [Achieving Major Stability and Performance Improvements in Yahoo Mail with a Novel Redux Architecture](<https://devfeed.tech/articles/achieving-major-stability-and-performance-improvements-in-yahoo-mail-with-a-novel-redux-architecture-20485.md>)

Original publisher: [Read original article](<https://yahooeng.tumblr.com/post/173062946866>)

Author: mikesefanov

Published: 2018-04-18T14:04:59Z

Content type: article

Language: en

Sources: [Yahoo](<https://devfeed.tech/sources/yahoo.md>)

Topics: [Redux](<https://devfeed.tech/topics/redux.md>), [React](<https://devfeed.tech/topics/react.md>), [performance-optimization](<https://devfeed.tech/topics/performance-optimization.md>), [architecture-components](<https://devfeed.tech/topics/architecture-components.md>)

Tags: [actions](<https://devfeed.tech/tags/actions.md>), [also](<https://devfeed.tech/tags/also.md>), [api](<https://devfeed.tech/tags/api.md>), [application](<https://devfeed.tech/tags/application.md>), [apps](<https://devfeed.tech/tags/apps.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [based](<https://devfeed.tech/tags/based.md>), [best](<https://devfeed.tech/tags/best.md>), [better](<https://devfeed.tech/tags/better.md>), [brand](<https://devfeed.tech/tags/brand.md>), [but](<https://devfeed.tech/tags/but.md>), [change](<https://devfeed.tech/tags/change.md>), [developers](<https://devfeed.tech/tags/developers.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [mail](<https://devfeed.tech/tags/mail.md>), [novel](<https://devfeed.tech/tags/novel.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance](<https://devfeed.tech/tags/performance.md>), [react](<https://devfeed.tech/tags/react.md>), [redux](<https://devfeed.tech/tags/redux.md>), [with](<https://devfeed.tech/tags/with.md>), [yahoo](<https://devfeed.tech/tags/yahoo.md>), [yahoo-engineering](<https://devfeed.tech/tags/yahoo-engineering.md>), [yahoo-mail](<https://devfeed.tech/tags/yahoo-mail.md>)

### AI overview

Yahoo Mail reports that Redux architecture changes improved stability and performance: stability rose 20% when checking email, 30% when reading, and 20% when sending; page-load performance improved 10%, frame-rendering time 40%, and API calls fell about 20%. Instead of Thunk middleware coupling action creators to the API, action creators dispatch payloads into Redux state for action syncers to handle API requests and responses. Syncers can batch and deduplicate requests and process them when the network is available; Yahoo reports API errors fell 20-30%. Action enhancers add commonly used data to action payloads, reducing the need to pass dispatch-only props through components and, the authors say, improving frame rendering. The excerpt also says this architecture reduced development cycles, without quantifying that effect.

### Source excerpt

yahoodevelopers: By Mohit Goenka, Gnanavel Shanmugam, and Lance Welsh At Yahoo Mail, we're constantly striving to upgrade our product experience. We do this not only by adding new features based on our members' feedback, but also by providing the best technical solutions to power the most engaging experiences. As such, we've recently introduced a number of novel and unique revisions to the way in which we use Redux that have resulted in significant stability and performance improvements. Developers may find our methods useful in achieving similar results in their apps. Improvements to product metrics Last year Yahoo Mail implemented a brand new architecture using Redux. Since then, we have transformed the overall architecture to reduce latencies in various operations, reduce JavaScript exceptions, and better synchronized states. As a result, the product is much faster and more stable. Stability improvements: when checking for new emails - 20% when reading emails - 30% when sending emails - 20% Performance improvements: 10% improvement in page load performance 40% improvement in frame rendering time We have also reduced API calls by approximately 20%. How we use Redux in Yahoo Mail Redux architecture is reliant on one large store that represents the application state. In a Redux cycle, action creators dispatch actions to change the state of the store. React Components then respond to those state changes. We've made some modifications on top of this architecture that are atypical in the React-Redux community. For instance, when fetching data over the network, the traditional methodology is to use Thunk middleware. Yahoo Mail fetches data over the network from our API. Thunks would create an unnecessary and undesirable dependency between the action creators and our API. If and when the API changes, the action creators must then also change. To keep these concerns separate we dispatch the action payload from the action creator to store them in the Redux state for later

## How to Make Your Web App More Reliable and Performant Using webpack: a Yahoo Mail Case Study

DevFeed: [How to Make Your Web App More Reliable and Performant Using webpack: a Yahoo Mail Case Study](<https://devfeed.tech/articles/how-to-make-your-web-app-more-reliable-and-performant-using-webpack-a-yahoo-mail-case-study-20482.md>)

Original publisher: [Read original article](<https://yahooeng.tumblr.com/post/168508200981>)

Author: mikesefanov

Published: 2017-12-13T18:27:36Z

Content type: tutorial

Language: en

Sources: [Yahoo](<https://devfeed.tech/sources/yahoo.md>)

Topics: [Webpack](<https://devfeed.tech/topics/webpack.md>), [Web app](<https://devfeed.tech/topics/webapp.md>), [software-development](<https://devfeed.tech/topics/software-development.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Page Speed Optimization](<https://devfeed.tech/topics/page-speed-optimization.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [bundlers](<https://devfeed.tech/tags/bundlers.md>), [config](<https://devfeed.tech/tags/config.md>), [css](<https://devfeed.tech/tags/css.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [dependency-graph](<https://devfeed.tech/tags/dependency-graph.md>), [developers](<https://devfeed.tech/tags/developers.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [loading](<https://devfeed.tech/tags/loading.md>), [module](<https://devfeed.tech/tags/module.md>), [modules](<https://devfeed.tech/tags/modules.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [oath](<https://devfeed.tech/tags/oath.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [overhead](<https://devfeed.tech/tags/overhead.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [web-app](<https://devfeed.tech/tags/web-app.md>), [webpack](<https://devfeed.tech/tags/webpack.md>), [yahoo](<https://devfeed.tech/tags/yahoo.md>), [yahoo-engineering](<https://devfeed.tech/tags/yahoo-engineering.md>), [yahoo-mail](<https://devfeed.tech/tags/yahoo-mail.md>)

### AI overview

Yahoo Mail's webpack migration reduced development rebuild waits from 30-60 seconds to 5 seconds, moved JavaScript bundle generation from runtime to build time to reduce bundle-fetch failures, and cut payload by about 75 KB gzipped. The team used Grunt to keep webpack running and pass environment-specific settings, including source maps, HMR, and uglification; tuned UglifyJS options saved about 10 KB. They selected existing plugins where suitable and built a custom plugin and loader for Atomic CSS, including only styles in the dependency chain. Reported outcomes also include a 50% reduction in server-side render time and a 10% improvement in launch performance measured by above-the-fold render time. These are Yahoo Mail's reported results, not guarantees for other apps.

### Source excerpt

yahoodevelopers: By Murali Krishna Bachhu, Anurag Damle, and Utkarsh Shrivastava As engineers on the Yahoo Mail team at Oath, we pride ourselves on the things that matter most to developers: faster development cycles, more reliability, and better performance. Users don't necessarily see these elements, but they certainly feel the difference they make when significant improvements are made. Recently, we were able to upgrade all three of these areas at scale by adopting webpack® as Yahoo Mail's underlying module bundler, and you can do the same for your web application. What is webpack? webpack is an open source module bundler for modern JavaScript applications. When webpack processes your application, it recursively builds a dependency graph that includes every module your application needs. Then it packages all of those modules into a small number of bundles, often only one, to be loaded by the browser. webpack became our choice module bundler not only because it supports on-demand loading, multiple bundle generation, and has a relatively low runtime overhead, but also because it is better suited for web platforms and NodeJS apps and has great community support. Comparison of webpack to other open source bundlers How did we integrate webpack? Like any developer does when integrating a new module bundler, we started integrating webpack into Yahoo Mail by looking at its basic config file. We explored available default webpack plugins as well as third-party webpack plugins and then picked the plugins most suitable for our application. If we didn't find a plugin that suited a specific need, we wrote the webpack plugin ourselves (e.g., We wrote a plugin to execute Atomic CSS scripts in the latest Yahoo Mail experience in order to decrease our overall CSS payload**). During the development process for Yahoo Mail, we needed a way to make sure webpack would continuously run in the background. To make this happen, we decided to use the task runner Grunt. Not only does Grunt

## Yahoo Mail's New Tech Stack, Built for Performance and Reliability

DevFeed: [Yahoo Mail's New Tech Stack, Built for Performance and Reliability](<https://devfeed.tech/articles/yahoo-mail-s-new-tech-stack-built-for-performance-and-reliability-20481.md>)

Original publisher: [Read original article](<https://yahooeng.tumblr.com/post/162320493306>)

Author: mikesefanov

Published: 2017-06-27T15:51:49Z

Content type: article

Language: en

Sources: [Yahoo](<https://devfeed.tech/sources/yahoo.md>)

Topics: [performance-engineering](<https://devfeed.tech/topics/performance-engineering.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [React](<https://devfeed.tech/topics/react.md>), [Production Engineering](<https://devfeed.tech/topics/production-engineering.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [email](<https://devfeed.tech/topics/email.md>), [Cache](<https://devfeed.tech/topics/cache.md>)

Tags: [email](<https://devfeed.tech/tags/email.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [experience](<https://devfeed.tech/tags/experience.md>), [fast](<https://devfeed.tech/tags/fast.md>), [front-end](<https://devfeed.tech/tags/front-end.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [mail](<https://devfeed.tech/tags/mail.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance](<https://devfeed.tech/tags/performance.md>), [react](<https://devfeed.tech/tags/react.md>), [redux](<https://devfeed.tech/tags/redux.md>), [reliability](<https://devfeed.tech/tags/reliability.md>), [rendering](<https://devfeed.tech/tags/rendering.md>), [stack](<https://devfeed.tech/tags/stack.md>), [tech](<https://devfeed.tech/tags/tech.md>), [tech-stack](<https://devfeed.tech/tags/tech-stack.md>), [yahoo](<https://devfeed.tech/tags/yahoo.md>), [yahoo-engineering](<https://devfeed.tech/tags/yahoo-engineering.md>), [yahoo-mail](<https://devfeed.tech/tags/yahoo-mail.md>)

### AI overview

Yahoo Mail's rewritten desktop stack combines React, Redux, and Node.js with proximity-based routing and server-side rendering to speed initial loading, particularly for international and low-bandwidth users. Isomorphic code replaces duplicated PHP and JavaScript logic; split bundles, selective updates, and reusable CSS help maintain cache hits and reduce the JavaScript and CSS footprint by about 50% versus the previous desktop version. The text also reports faster search and message reading, lower browser memory use, and a 99.99% success rate across core flows over several billion daily user actions. Independently deployable components and continuous delivery support daily or more frequent releases. Yahoo says the experience includes six enhanced visual themes and support for assistive technologies, including screen readers. Mendel is open sourced; react-atomic-css and lazy-component were described as planned open-source releases.

### Source excerpt

By Suhas Sadanandan, Director of Engineering When it comes to performance and reliability, there is perhaps no application where this matters more than with email. Today, we announced a new Yahoo Mail experience for desktop based on a completely rewritten tech stack that embodies these fundamental considerations and more. We built the new Yahoo Mail experience using a best-in-class front-end tech stack with open source technologies including React, Redux, Node.js, react-intl (open-sourced by Yahoo), and others. A high-level architectural diagram of our stack is below. New Yahoo Mail Tech Stack In building our new tech stack, we made use of the most modern tools available in the industry to come up with the best experience for our users by optimizing the following fundamentals: Performance A key feature of the new Yahoo Mail architecture is blazing-fast initial loading (aka, launch). We introduced new network routing which sends users to their nearest geo-located email servers (proximity-based routing). This has resulted in a significant reduction in time to first byte and should be immediately noticeable to our international users in particular. We now do server-side rendering to allow our users to see their mail sooner. This change will be immediately noticeable to our low-bandwidth users. Our application is isomorphic, meaning that the same code runs on the server (using Node.js) and the client. Prior versions of Yahoo Mail had programming logic duplicated on the server and the client because we used PHP on the server and JavaScript on the client. Using efficient bundling strategies (JavaScript code is separated into application, vendor, and lazy loaded bundles) and pushing only the changed bundles during production pushes, we keep the cache hit ratio high. By using react-atomic-css, our homegrown solution for writing modular and scoped CSS in React, we get much better CSS reuse. In prior versions of Yahoo Mail, the need to run various experiments in parallel resu

## Speed and Stability: Yahoo Mail's Forward-Thinking Continuous Integration and Delivery Pipeline

DevFeed: [Speed and Stability: Yahoo Mail's Forward-Thinking Continuous Integration and Delivery Pipeline](<https://devfeed.tech/articles/speed-and-stability-yahoo-mail-s-forward-thinking-continuous-integration-and-delivery-pipeline-20480.md>)

Original publisher: [Read original article](<https://yahooeng.tumblr.com/post/162320459636>)

Author: mikesefanov

Published: 2017-06-27T15:50:35Z

Content type: article

Language: en

Sources: [Yahoo](<https://devfeed.tech/sources/yahoo.md>)

Topics: [CI/CD Pipeline](<https://devfeed.tech/topics/ci-cd-pipeline.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Continuous Delivery (CD)](<https://devfeed.tech/topics/continuous-delivery.md>), [Software Testing](<https://devfeed.tech/topics/software-testing.md>), [Deployment Strategies](<https://devfeed.tech/topics/deployment-strategies.md>), [progressive delivery](<https://devfeed.tech/topics/progressive-delivery.md>), [developer-productivity](<https://devfeed.tech/topics/developer-productivity.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [Continuous integration](<https://devfeed.tech/topics/continuous-integration.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [build](<https://devfeed.tech/tags/build.md>), [canary](<https://devfeed.tech/tags/canary.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [continuous](<https://devfeed.tech/tags/continuous.md>), [continuous-delivery](<https://devfeed.tech/tags/continuous-delivery.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [delivery](<https://devfeed.tech/tags/delivery.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developer-productivity](<https://devfeed.tech/tags/developer-productivity.md>), [developers](<https://devfeed.tech/tags/developers.md>), [email](<https://devfeed.tech/tags/email.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [engineering-manager](<https://devfeed.tech/tags/engineering-manager.md>), [environments](<https://devfeed.tech/tags/environments.md>), [everyday](<https://devfeed.tech/tags/everyday.md>), [integration](<https://devfeed.tech/tags/integration.md>), [mail](<https://devfeed.tech/tags/mail.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [speed](<https://devfeed.tech/tags/speed.md>), [yahoo](<https://devfeed.tech/tags/yahoo.md>), [yahoo-engineering](<https://devfeed.tech/tags/yahoo-engineering.md>), [yahoo-mail](<https://devfeed.tech/tags/yahoo-mail.md>)

### AI overview

Yahoo Mail's pipeline supports frequent releases while managing production risk through staged rollout, test recovery, and rapid remediation. Builds run more than 10,000 unit tests and 5,000 integration tests across operating systems and browsers. Releases progress through internal alpha and beta environments, then a production canary, before reaching all users; quality metrics are reviewed along the way. If browser tests fail intermittently, the pipeline records build metadata and reruns only failed tests, while the failures are analyzed to improve test stability. Developers receive email updates as their code moves through each environment. Critical production bugs can be addressed with hotfixes; rollbacks deploy a previously released stable bundle, with versions and change logs maintained. Heartbeat pushes prompt users to refresh when an important update should be adopted. The excerpt describes these mechanisms but does not detail the listed principle about build-blocking test failures beyond the rerun strategy.

### Source excerpt

By Mohit Goenka, Senior Engineering Manager Building the technology powering the best consumer email inbox in the world is no easy task. When you start on such a journey, it is important to consider how to deliver such an experience to the users. After all, any consumer feature we build can only make a difference after it is delivered to everyone via the tech pipeline. As we began building out the new version of Yahoo Mail, we wanted to ensure that our internal developer productivity would not be hindered by how our pipelines work. Keeping this in mind, we identified the following principles as most important while designing the delivery pipeline for the new Yahoo Mail experience: Product updates are pushed at regular intervals Releases are stable Builds are not blocked by irrational test failures Developers are notified of code pushes Hotfixes Rollbacks Heartbeat pushes Product updates are pushed at regular intervals We ensure that our engineers can push any code changes to all Mail users everyday, with the ability to push multiple times a day, if necessary or desired. This is possible because of the time we spent building a solid testing infrastructure, which continues to evolve as we scale to new users and add new features to the product. Every one of our builds runs 10,000+ unit tests and 5,000+ integration tests on various combinations of operating systems and browsers. It is important to push product updates regularly as it allows all our users to get the best Mail experience possible. Releases are stable Every code release starts with the company's internal audience first, where all our employees get to try out the latest changes before they go out to production. This begins with our alpha and beta environments that our Mail engineers use by default. Our build then goes out to the canary environment, which is a small subset of production users, before making it to all users. This gives us the ability to analyze quality metrics on internal and canary servers b

## What you need to know about April 7 and your security on the web.

DevFeed: [What you need to know about April 7 and your security on the web.](<https://devfeed.tech/articles/what-you-need-to-know-about-april-7-and-your-security-on-the-web-41167.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2014/04/08/What-you-need-to-know-about-April-7-and-your-security-on-the-web./>)

Author: Map

Published: 2014-04-08T20:55:56Z

Content type: article

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [network security](<https://devfeed.tech/topics/network-security.md>)

Tags: [amazon-com](<https://devfeed.tech/tags/amazon-com.md>), [data](<https://devfeed.tech/tags/data.md>), [developers](<https://devfeed.tech/tags/developers.md>), [external](<https://devfeed.tech/tags/external.md>), [netflix](<https://devfeed.tech/tags/netflix.md>), [passwords](<https://devfeed.tech/tags/passwords.md>), [security](<https://devfeed.tech/tags/security.md>), [security-vulnerabilities](<https://devfeed.tech/tags/security-vulnerabilities.md>), [sites](<https://devfeed.tech/tags/sites.md>), [technology](<https://devfeed.tech/tags/technology.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>), [websites](<https://devfeed.tech/tags/websites.md>), [yahoo](<https://devfeed.tech/tags/yahoo.md>), [yahoo-mail](<https://devfeed.tech/tags/yahoo-mail.md>)

### AI overview

The vulnerability reportedly let outsiders obtain data from affected websites, and the excerpt says it was easy to exploit and had existed for two years. Site operators first needed to update vulnerable systems; users were advised to avoid logging into important accounts until each site was confirmed safe, then change passwords for accounts used in the prior two years. The author cautions that this is high-level guidance, not expert security analysis.

### Source excerpt

Yahoo Amazon.com Netflix Various banks Many more If you're interested in more technical details you can follow along or on the Heroku blog. The short of it is you, yes you as in everyone, should rotate your passwords once all websites are safe. For further details please continue reading. What does the vulnerability mean In this case it allowed an external party to acquire a moderate amount of data from some computer running your website. Extremely clear examples (such as shown on the right) highlight an example of random third parties easily acquiring most recently logged in Yahoo mail usernames and passwords. The first step The first step in resolving this is actually not a step required by you at all, unless you're running a production website online. The first step requires the developers running the site to update their site so they are no longer vulnerable. This as available to happen as early as April 7, and many major sites were fully updated and again safe as of April 8. Still area for concern With security vulnerabilities there are two key things to consider. First is the vulnerability itself, second is whether its therotical or can be simply acted upon. Yes, there's a range here. One of the most unfortunate pieces from talking to those that know about security is this was extremely trivial to act upon. This is made even worse in that this vulnerability has existed for 2 years without many knowing about it, meaning people have had an ability to snoop and collect parts of your data for two years What to do? First things first, be extremely cautious with any major website you connect with anything important. Any account that you have a password and you care about the account you should cease logging into it until you know its safe. As of the morning of April 8 here is a list of sites that were safe and ones that were vulnerable. You can check any site today here. Once it's clear that a site you know is now updated and safe either via that list of the latter