I joined Rest of World in 2022 as one of the two front-end developers. Three years, one redesign, and many rounds of confetti later, I’m wrapping up—and reflecting on the projects I’m most proud of.

The Rest of World product team is small but incredibly ambitious. I’ll always be grateful for how much I’ve learned during my time here and how quickly we deploy and ship new site features. I’ve been lucky to work on so many impactful projects, and I’m excited to share some of them with you in this post. 

Subprops aka Adjustable Promotions 

Before this plugin, Rest of World managed our in-house campaigns by hardcoding them directly into our main codebase. A campaign for our Long Reads podcast, for example, lived in the same directory as files responsible for rendering photo galleries or enabling infinite scroll on articles. 

While this approach worked when the number of campaigns was small, it became unsustainable as our organization and our campaign needs grew. Adding new campaigns required manually rearranging existing ones to avoid overlap in placements. Time-sensitive campaigns, like our yearly Giving Tuesday promotion, also had to be manually removed after they expired. 

These inefficiencies led us to develop a dedicated plugin—one that would make creating new campaigns easier and allow other teams at Rest of World to manage them with minimal developer intervention.

This plugin reads in a configuration file which maps different promotions to placements across our site. For example, if you open our hamburger menu, you’ll see two promotions that were added via this plugin (the Long Reads promo and a newsletter signup). It follows a convention similar to how other publications might insert advertising.

Screenshot of the homepage with the main menu open. It shows a list of section links. On right side the module promotes Long Reads, and another module promotes the newsletter with option to subscribe.

This new system is flexible and easy to use. We can switch between different promotions in the same placement, target promotions based on metadata of an article, and set time ranges for when a promo shows.

Automatic Translations 

Our audience is global—and multilingual. According to a reader survey we conducted in 2024, our readers spoke 67 languages, with 17.2% speaking Hindi, 15.3% speaking Spanish, and 8.2% speaking French fluently. While in the past we’ve hired human translators, translation can be a resource-intensive task, particularly for smaller newsrooms like Rest of World. To work around this constraint, we added machine translations supported by Google Translate, so that all of our articles could be translated to different languages.

My work on the project involved creating a button-like UI to interact with the translated articles. I worked with our designer to consider the different edge cases related to the styling of the button – what would it look like if there were already human translations on an article? How did it fit into the context of the other article metadata? We also added features like matching an article’s language, if supported, to the user’s preferred language through browser settings. The UI launched in December 2022 and we continue to collect feedback on the translated articles to improve the experience. You can learn more about this feature here.

Gig Workers Rising

During my time at Rest of World, our team collaborated with the editorial team on a few video projects. First, with a story on Asia’s shopping influencers that led us to refactoring how our Vimeo-hosted videos played and paused when out of view by using the Vimeo API. This was a major performance win, considering that we often use Vimeo-hosted videos in our articles and on the homepage.

The Gig Workers Rising video series was a collaboration with Context Newsroom. The series explores how gig workers are self-organizing across the globe to improve their working conditions. We created a playlist-like experience, where you could click and play other videos in the series — emulating the experience of using a video player site like YouTube. We published each video as an article within the Gig Workers Rising series and manipulated our standard article markup with Javascript to make the experience feel like a video player.

Screenshot of the 'Gig Workers Rising' series, with a large video player and other series videos listed below.

Showcase homepage block

Last year, as part of a homepage update, we created what we call the “Showcase” block to highlight our best evergreen journalism and award-winning projects, and give them a prominent place on the homepage.

Screenshot of the homepage with the Showcase module. 5 images appear in a carousel with title and description. The center image is enlarged.

To curate our homepage, we use a custom post type in WordPress that editors can manage in our CMS. The homepage post type is made up of custom blocks that give us more options for how we can display our stories. The Showcase block is an extension of that – allowing us another way to display stories on the homepage. The Showcase block displays different projects using a horizontal scroll treatment, similar to our the homepage Most Popular module. However, in this design, only one project is shown at a time with a carousel effect that displays the center story with the headline, description, and optional award and date. 

When implementing the block, we researched different carousel libraries and weighed the pros and cons of each of them, ultimately deciding to pick the Embla Carousel library over others. There are lots of different ways that users can interact with this block, including a timeline that lets you jump to stories published in different years, arrow keys, dragging, and scrolling.

Tags Pages

Rest of World reports on many companies and topics that mainstream outlets don’t often cover. So we set out to redesign our tag pages—not just as lists of stories, but as useful, link-worthy destinations. By adding more context and structure, we made them more helpful to readers and more valuable for SEO.

A tag page screenshot titled 'China' featuring related terms module, featured author section, and a highlight stories module.

When we first launched our tag pages used the default Archive template in WordPress, but now that we had a body of stories behind us it made sense to re-visit. We wanted to guide readers to reporters and articles that might be most relevant to what they are searching for.

We started by adding a featured author section that highlights the contributor with the most stories under each tag. We then added a “Latest Stories” module to surface 2-3 standout articles as a quick primer on the topic. Finally, we improved the browsing experience with infinite-scroll replacing pagination, making it easier to explore everything filed under the tag.

Other mentions: 

During my time here, I added lots of confetti to the site, with our awards page and our newsletter guess-the-photo quiz. I’ve gotten to work with teams from across the organization, including our wonderful audience team on things like our newsletter preferences page and analytics, and the talented editorial team on fun typing effects, header animations, CSS transitions mimicking card flips, and other modules that have turned into permanent WordPress blocks. I’ve also worked on a redesign for the blog page you’re reading now, and witnessed and worked on major changes like a homepage refresh and an updated color scheme across our site. We’ve also won a few major awards for projects I’ve worked on, including for a series on Chinese e-commerce, a story on Mukesh Ambani with a fun magnifying glass effect, and Internet Blackouts

Thank you for reading. It’s been a wonderful three years, and there’s so much more I’ve worked on that I couldn’t fit into this post. I’m excited to see what the product team builds next (luckily there is a RSS feed for the monthly product updates). I will definitely be keeping in touch and joining in on the future happy hours. Beyond the work itself, it’s been a real joy to collaborate with such a thoughtful, talented, and funny team.

As is tradition, I’ve left one final commit: my name now lives on in our humans.txt file as a proud Rest of World alum.