AO3 News

Post Header

2016-03-24 21:02:11 UTC

Our spree of behind-the-scenes improvements continues with a whole host of gem- and test-related updates. We also have some exciting user-facing changes, too, like a major overhaul of our Skin Wizard and the ability for gift exchange moderators to search sign-ups.


  • Coders: Ariana, Cesy, de3sw2aq1, Elz, James, Sarken
  • Code reviewers: Ariana, Cesy, Elz, Enigel, James, Naomi, Scott, Sarken
  • Testers: Alison Watson, CJ Record, Lady Oscar


Terms of Service Update

User Interface

  • [AO3-4408] - On Android Chrome, the list of pseuds on a user's Manage My Pseuds page overlapped the New Psued link, which made it impossible to follow. We've fixed it so Android Chrome users can once again use the link.
  • [AO3-4492] - The navigation options on users' Gifts pages were hidden behind the blurbs on some small screens. The Accepted and Refused Gifts options should now be visible regardless of screen size.
  • [AO3-4490] - It was previously possible to create a skin without a title. The title field is now required (and marked as such).
  • [AO3-4504] - To reduce the number of accidental clicks, we removed the Delete Work link from the top of creators' own works, and now only show it on the works' edit pages.
  • [AO3-4332] - On narrow screens, the filters were missing from the Unassigned Fandoms page our Tag Wrangling team uses. Now the filters are available in all screen sizes.

Caching and Performance

  • [AO3-4472] - Counting the total users, works, and fandoms on the Archive every time someone accessed the front page was a considerable performance hit to our database. We've started rounding and caching these numbers so it will put less strain on our servers.
  • [AO3-4496] - To improve performance, we've begun caching the number of chapters each work has, and only expiring the cache when a chapter is added or removed.
  • [AO3-4471] - Every time someone accessed a page on the Archive, we asked the database if there should be an announcement banner displaying on that page. Now we cache that information instead of pestering the database every time.
  • [AO3-4406] - We were making a lot of small database queries on the main page for each collection. Now we make one big one, which is better for performance.
  • [AO3-4497] - Every time someone viewed a work, we asked the database to find us the list of tags used on the work. Now we cache that list instead of asking the database every single time.


  • [AO3-4483] - The Open Doors mass importing tool would error when Open Doors archivists tried to import works in .txt format. We've fixed the encoding issue that caused this.
  • [AO3-4439] - We've done some work so the Translation team will be able to translate the confirmation email that users receive after submitting an Abuse report.
  • [AO3-4356] - Whenever Support and Translation needed to update the list of supported languages on the Support form, they had to ask the coders to update the list. Now Support and Translation can change the list themselves through the admin interface.
  • [AO3-4476] - We corrected a problem our Translation team encountered when testing out the process of translating kudos emails.
  • [AO3-4499] - Works imported by archivists which have a date other than today are now backdated so the work's Published and Completed dates are set to the creation and completion dates detected on the external work.
  • [AO3-2864] - Gift exchange moderators can now search the sign-ups for their challenge by pseud instead of having to manually find them in the alphabetic list, which can be very long for a large challenge.
  • [AO3-4501] - We've made it possible for creators and Open Doors archivists to add notes to works they are importing. We also moved the import form's option for overriding tags (and now notes!) to make it easier to find.
  • [AO3-4473] - The Skin Wizard, which allows users to easily customize the colors and fonts on the Archive, wasn't quite as magical as it could've been, so we made it work better and gave the form itself a facelift. We also made sure anyone who already created a skin with the old version of the wizard would be able to keep that skin.

Automated Tests

  • [AO3-4485] - There were duplicate automated tests for some of our admin features. We've gotten rid of the duplicates.
  • [AO3-4475] - There were some to-do items in our automated tests for comments, and we have now done them.
  • [AO3-4486] - One of our automated tests for importing works was a work in progress. Now it's complete.
  • [AO3-4484] - We improved the test for orphaning imported works.

Gem and Security Updates

  • [AO3-4445] - We upgraded the gem we use to display a nifty little ribbon that lets us know when we're on our staging and development environments instead of the real Archive.
  • [AO3-4457] - We upgraded a whole pile of gems.
  • [AO3-4459] - We updated the gem we use for parsing text when someone imports a work.
  • [AO3-4449] - We updated the gem that creates the pagination links throughout the site.
  • [AO3-4431] - We updated a gem that provides a service for our caching system.
  • [AO3-4444] - We updated a gem that some other gems use, even though we don't use it directly.
  • [AO3-4506] - We upgraded to Rails to ensure we have the latest security fixes.
  • [AO3-4507] - It was previously possible to use our collection form to submit malicious code. It is no longer possible.
  • [AO3-4508] - It was previously possible to leave kudos with a non-existent pseud, causing an error that would make the work inaccessible. That is no longer possible.
  • [AO3-4425] - We updated the gem we use for managing the order of things like chapters in works and works in series.
  • [AO3-4426] - We updated the gem used for importing works from other sites.
  • [AO3-4509] - We added a test that will let us know when we need to update a gem due to security issues.
  • [AO3-4513] - We updated a number of gems that we only use in our development and staging environments.
  • [AO3-4447] - We updated the gems that handle delayed tasks like updating a user's history.
  • [AO3-4460] - We updated the gems that are used to connect to our Elasticsearch cluster.

Known Issues

See our Known Issues page for current issues.