start blog post

The New Yahoo Mail - Inside Out

I haven't been able to say much about what I've been working on since joining Yahoo, but now that Mail has opened its public beta, a post is finally in order. If you're interested in the technical side, this is more than just another announcement.

Yahoo Mail's new user interface Yahoo Mail's new user interface. Yes, there will be themes if you don't like purple.

You can get some info from last month's reports on Mashable or the official YMail blog, or get a full summary of what's new from the Yahoo Mail feature site, but I figured it would be interesting to discuss Yahoo Mail from the perspective of someone who worked on it.

So What Did I Do?

We have a really great team with focused roles, so as a developer if you have any questions about a piece of code, you can find people with a complete understanding of that area. Even the interns (who were only here for about three months) jumped right into the code and took charge of pretty major tasks. Though I've committed bug fixes to many different areas of the new Mail, mostly I focused on Compose, which includes everything between hitting "Compose Message" and the actual "Send".

Yahoo Mail's compose tab The Yahoo Mail compose tab, where I spent most of my development time.

I also worked on rich attachment features that utilized BrowserPlus. Unfortunately the BrowserPlus features are disabled for the initial release, but when they're available they provide an enhanced interface for uploading multiple files, seeing snapshots of your uploads, and being able to dynamically resize or crop images right in YMail.

Architecture

This version of Mail is a complete overhaul from the last. YUI 3 plays an integral role in the code design, with Mail components being created as YUI modules and loaded via YUI().use. There is a strong MVC leaning, which allows us to more easily swap out code as new features become available. For example, right now the attachment uploader uses a basic HTML form component, but in the future it can be automatically replaced by Flash or BrowserPlus at runtime depending on the user's system and settings.

Testing, Build, and Deployment

Every developer has his or her own personal development server with a complete instance of Yahoo Mail running on it. We use SVN for version control. Unit tests are part of the Mail codebase and run on each development server, and we run Selenium smoke tests before each commit.

Hudson smoke tests All's well according to the Hudson smoke tests.

Mail is built using continuous integration with Hudson — a build is kicked off immediately after every commit, and a secondary build runs at regular intervals to produce (hopefully) stable builds which get pushed out to staging and production servers.

Questions or Comments?

Feel free to ask me anything about the new incarnation of Yahoo Mail, whether it's about the application itself or how it's written or built. I'll answer to the best of my knowledge and ability, keeping in mind that I can't discuss certain things for security/legal reasons...

var tags = [, , , ];

  • share this post:
  • email a friend
  • float this post
  • digg this post
  • share on stumbleupon
  • submit to technorati
  • tweet this post

end blog post

most viewed this week

least viewed this week