Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Playing games with your friends is what Discord’s all about. It’s not just us saying that… every month, people on Discord play a collective 1.5 billion hours across 60,000 unique games. And of those 60,000 games, VALORANT stands out among the 5 most-played games on the platform.
We also know that Discord is the place for anyone who plays games to show off what they’re into, and what better place to show that off than on your Discord profile! Whether you’re deep into the competitive scene or a certain character from something you played recently speaks to you, someone’s Discord profile speaks a thousand words about ‘em — and that’s not including the words they wrote in their bio.
The Shop launched last September to help express who you are even better. Along with your avatar and bio, the Shop lets you build a digital wardrobe of different looks for your profile, bringing more Anime, Fantasy, and even Cyberpunk aesthetics to your Discord looks, and put the final touches on your presentation.
But ever since the launch, we've heard from many of you that you want GAMING styles. Today, we’re super excited to bring you our limited-time VALORANT collection: a new set of Avatar Decorations and Profile Effects featuring fan-favorite Agents Jett, Reyna, and Omen. Joining them is the newest Agent revealed this week: Clove. (Yes, we have items featuring them, too!)
With Episode 8 Act 2 of VALORANT in full swing, we figured it’d be a great opportunity to work with our friends at Riot Games and combine two things people love to do on Discord: playing VALORANT and making your Discord profile perfectly express who you are.
While you’re here, check out the slick trailer showcasing VALORANT’s newest Agent we mentioned, Clove. Clove uses their gift of immortality to get the upper hand on their enemies, providing cover from beyond the grave or springing back into action to clutch a round.
This VALORANT Collection is available until May 7th, so make sure you grab what you like before it disappears in the smoke. Never explored the Shop before? It’s easy to get there, so follow along if you’d like some backup!
If “Shop” in the context of Discord is completely new to you, no worries — it’s just as quick as purchasing your equipment at the beginning of a round of VALORANT.
The next time you open up the desktop or web app, you’ll see a Shop tab right as you open it. Click that, and you’ll head straight to the Shop.
From there, it’s up to you! Preview what a particular avatar decoration or profile effect looks like on your profile by clicking on it. If you purchase it, you can use it in your profile even after the VALORANT collection leaves the Shop.
Tie it all together with a matching avatar to set up a killer profile combo to impress your friends and style on your rivals. If you’ve got Nitro, you can also pair your new VALORANT items with a profile banner and profile colors, and even use your decorations on a per-server basis!
The VALORANT collection will be available in the Shop until May 7th, so grab whichever one calls to you while you can — no need to queue up with a squad before entering the Shop.
If you’ve never played VALORANT, what’re ya waitin’ for?! It’s available to download on Windows PCs, so head on over to the official site and give it a shot. It might end up being your newest obsession — there’s a reason why it’s in the top 5 most-played games on Discord.
Appropriately managing complex access permissions is a crucial part of mature security programs at companies like Discord. Access controls that are easy to understand and manage make our lives easier, while poorly configured access controls often lead to significant harm.
74% of all breaches involve the human element, with privilege misuse and stolen user credentials being two of the primary threats. This indicates that access control is crucial to the security of businesses, especially when it comes to protecting proprietary information and sensitive systems. That said, plans and policies designed to manage permissions tend to cause headaches for end-users and leave the decisions about “who can access what” in the hands of people who don’t have much information about the resources – often IT or Security.
To address this within Discord, we built a new internal portal for staff to manage their permissions. We created it with the goals of security, transparency, and ease of use in mind with the intention of eventually making the tool publicly available and free to use.
We’ve been hard at work to make our vision a reality and are happy to announce that Access has now been open-sourced on GitHub for anyone to utilize. In this article, we’ll discuss our path to creating Access and highlight its biggest features.
At Discord, we use Okta as our identity provider for employee single sign-on. As we grew, so did our desire to further customize access controls for our employees, leading us to want to either build or buy an additional access control tool. To start, we came up with a list of standards we wanted this tool to meet:
Hey, everyone! We’re closing out the month of March and celebrating Women’s History Month with a spotlight on Discord’s own Women in Tech ERG: a community for inspiration, support, and opportunities for Discord employees who identify as women.
Internally at Discord, we kicked off Women’s History Month with a panel entitled, “How We Rise Together” led by our very own Kelly Liang, SVP of Global Partnerships. Kelly welcomed an ensemble of female executive leaders from across the Gaming, Tech, and Advertising industries, who shared inspiring, powerful insights for all that participated.
We also hosted several Career Roundtables throughout the month, hosted by women and non-binary leaders at Discord. Members of the Women in Tech ERG and allies alike came together to have open conversations about the realities, challenges, and opportunities for women and non-binary folks in the workplace and discussed ways to support one another.
As Discord is committed to building an inclusive and representative workforce – advocating for gender parity, equity, and inclusion in all that we do – this work doesn’t stop here. The Women In Tech ERG also runs ongoing sessions for community building, mentorship, career development, and nonprofit partnerships year-round.
Outside of our doors, there are countless communities of women and nonbinary folks online who are creating amazing content and revitalizing the gaming space. This month, our Women in Tech ERG and its allies would love to share a handful of their favorite vibrant gaming communities and content creators led by women.
In honor of Women’s History Month, Discord is raising funds for Girls Who Code, an organization on a mission to close the gender gap in technology and change the image of what a programmer looks like and does. Discord is proud to honor communities online that are making the world a more thriving, inclusive place for women, girls, and nonbinary folks.
If you’d like to be a part of the Women in Tech ERGs’ journey and Discord’s culture, we’d love to have you — consider taking a peek at our jobs page from time to time!
Grab your Palicos and your human pals! The winter season is nearing its end, meaning it’s time to go… gasp… OUTSIDE!! What better way to do that than to explore what’s around you, fighting huge monsters as you go in Monster Hunter Now, Niantic’s newest game that lets you and up to three nearby friends fight monsters by finding them in the real world.
Our friends at Niantic want to bring you and your Discord friends together for an outdoor adventure this spring — starting on March 19th, Niantic is giving out one month of Discord Nitro to their players for Monster Hunter Now’s sixth-month anniversary, usable for anyone who hasn’t had Nitro within the last year. Download the game on the App Store or Google Play and take a peek at their in-game news for all the details.
Already a cool cat with Discord Nitro? Nitro members can claim a bundle of rewards to use on their adventures in Monster Hunter Now! The bundle includes a material from the elusive DevilJho, one of the newest monsters you’ll encounter on your adventures.
The reward bundle includes:
This anniversary reward bundle is available until April 18, 2024. If you’re an existing Nitro member ready to hit the streets with your friends, read on to see how it all works!
Monster Hunter Now players who also happen to be Discord Nitro members will find their bundle of hunting supplies waiting for them in their Gift Inventory, which you can redeem on the Monster Hunter Now website!
(Didn’t make a Monster Hunter Now account yet? Download the game and sign up!)
And that’s it! The next time you launch Monster Hunter Now, your hunting supplies will be waiting for you in your Item Box. If you were already playing, you may need to restart the game to see your stuff.
With your stash chock-full of supplies and a new monster-filled perspective of your local area, get out there and hunt some Pukei-Pukei with your friends! You can redeem your items until April 18, 2024, so Nitro members should head into User Settings > Gift Inventory before then to claim their supplies.
If you need some extra hunting help, we’ve got two resources for you to use. (Educational resources, not crafting resources.) Check out our support article about this promo or Niantic’s article about redeeming codes for Monster Hunter Now.
Aah, last year’s Discord App Pitches… *deep exhale*… we remember it like it was yesterday. Whaddaya say we do it again? But this time, let’s make it HUGE! We’ll create bigger experiences for people to come together and play on Discord. This time, we’ll bring more of our enthusiastic developer community along for the ride!
Discord App Pitches is making a return, and we’re looking for both Discord App Developers and Game Developers to pitch their ideas for new Activities (woah) directly within Discord using the brand-new Embedded App SDK announced last week.
What’s new for our Activity-flavored variation of Discord App Pitches this year? A whole lot, actually!
You can submit your pitch any time between April 1, 2024, and May 1, 2024. Jump straight into the action by exploring our Discord App Pitches 2024 website using the big button below!
If you didn’t immediately rush to smash that blurple button with enthusiasm and excitement, read on for more deets about what we’re looking for this time around and who’s judging. You can also find rules, eligibility, terms, and important legal info here.
Just like last year, we’re looking for App ideas within five specific categories. We’re building games and experiences to enjoy inside Discord with your friends, and this year’s categories reflect what’s possible with the Embedded App SDK:
🏆 Compete: We're looking for game experiences that ignite (friendly) rivalries, test skills against individuals or teams, and bring true pride in leaderboard status. Ideal for those who revel in competition and enjoy pitting their skills against others.
🤝 Adventure Together: We're on the lookout for gaming experiences that create shared moments and facilitate meaningful interactions among players. Perfect for those who find joy in collective undertakings and making memories.
🎨 Collect and Create: Equipped with elements of creativity and decision-making, these games might have daily challenges, unexpected rewards, and engaging content that keeps players returning for more. Perfect for those who enjoy crafting their own unique experiences and venturing into unknown territories.
☕ Chill: We're keen on experiences that offer a laid-back, stress-free environment. These games and experiences are ideal for users who wish to unwind and enjoy a game without any pressure or high stakes.
♠️ Wildcard: The Discord Developer Platform is a playground for innovation and unique ideas. For ideas that defy categorization, the Wildcard category is open. There are no rules, no guidelines, no restrictions — the potential is limitless!
*Each category winner will win a $5,000 start-up grant and a $10,000 grant for eligible completed apps. In addition to these, one grand prize winner is eligible for an additional $15,000 grant for a total of $30,000 if they resubmit their app in accordance with the Official Rules.
Winners will also receive personal support from Discord Staff to help make their Activity the best it can be once it’s complete.
Check out the full scoop on each category on the Discord App Pitches page. (Did you open it yet?)
Hi folks! It’s Important Announcement DayTM again: we’re updating our Terms of Service, Paid Services Terms, Privacy Policy, and Community Guidelines! These changes go into effect on April 15, 2024.
We regularly review our policies to ensure we're surfacing important information to our users in a clear and easy-to-understand way. As we continually work to improve our services, respond to new laws, and protect your privacy, we periodically update these policies to reflect those priorities and our commitments to each other.
Here are some highlights of what we’ve updated:
You can find a summary of the changes at the links below, but please do read the revised policies, as they are what actually govern your use of Discord:
Thanks for reading!
Developers, has anyone said how incredible you all are? Well, let us remind you: y’all are INCREDIBLE — just look at all the stuff we did together last year. Creating great Apps on Discord is a never-ending adventure of creating nearly anything you can think of.
When it comes to gaming, Discord is core to how players find each other, play together, and stay connected, whether they’re already playing their favorite PC and console games, or they’re spending time together in more low-key in-server Activities. And plenty of Discord Developers out there have had their eyes on Activities, wondering when they could create their own.
That time? It’s (almost) now. Starting March 18, Discord Developers will be able to build new games and experiences that can be played directly on the platform with our new Embedded App SDK.
There’s a lot to talk about in this article — try using the Table of Contents to navigate through it all! You’ll see it on the right of your browser window on desktop or at the bottom of your screen if you’re on mobile.
You might be asking yourself: “What’s the Embedded App SDK?” Explained plainly, the Embedded App SDK lets you build apps that are embedded in an iframe within Discord, i.e. the Activities you know and love today. Long story short, Discord Developers like you create amazing Apps on Discord, whether they’re helping in your conversations, or rich interactive experiences that you and your friends can play instantly within Discord.
We want Discord to grow into the best place for developers to do it all: build, share, distribute, be discovered, and monetize their work. We want Discord to be where your App gets its start, where it finds a home in the communities of people around the world, and where it can be easily shared between friends.
Whether you’re building a traditional text-based App that you’re used to or a new Activity that people can play, you’re still developing directly within Discord. And it’s up to you and your dev team to decide how it takes shape!
The Embedded App SDK is available globally starting March 18, so head to the Developer Portal to learn how to get started! If you want to see what you can build, you already can: hop into a Voice Channel and use the Rocket button to try out today’s available Activities with your friends!
Discord was created to bring friends together around games. A lot has changed since Discord started in 2015, as it’s grown to welcome hundreds of millions of people who play games and enjoy so many other experiences together. One thing has stayed true: helping people deepen their friendships by playing games remains the heart and soul of why we do what we do at Discord.
A lot has changed since 2015 for the games industry too. Today, more of us are playing on multiple devices, and more games than ever are launching each year. On Discord alone, we host 1.5 billion hours of gameplay across more than 60,000 titles every month. This is all awesome, except it’s becoming really difficult for game developers to break through and bring their ideas to life as a successful business.
Over the years, we’ve spent a lot of time with devs to learn about the intersection of our worlds and how we might be able to make Discord better for them, and even partner with them to bring you more cool stuff. They brought some really interesting ideas about how we could help, so today we’re announcing a few new tools that we hope will make building a gaming business a little easier. Let’s talk about how we’ll expand Quests and our Shop.
Quests are a way for players to discover games and earn rewards for playing them on Discord. We started experimenting with them over the last year, and millions of you opted in and completed them. We’ve heard great feedback from developers who partnered with us to create them and from many of you who completed one. If you didn’t see firsthand, the "May the 4th" Fortnite Quest is a great example. Now, we’re opening up sponsored Quests to more game developers.
Quests will show up tastefully in Discord where you can opt-in to stream your game to friends and win rewards for playing. Some players will be made aware that a Quest is available, while others will discover it as their friends accept and embark on the Quest. Developers and publishers who sponsor Quests will work with our team to build an experience that showcases their game and offers a reward tailored for their game.
Here's the Discord Changelog from March 5, 2024. You can also find the most recent Changelog in the Discord app under Settings > What's New.
Go Live is one of Discord’s most popular features, allowing users to stream applications, screens, and especially video games, to others on the call. Originally released for the desktop on August 15, 2019, it’s grown to support web browsers and phones, and even gained support on Xbox Series X|S and Xbox One consoles this last year.
Go Live’s screen sharing technology is a multi-process pipeline that requires coordination between streamers, viewers, and Discord’s backend. Each part of the process needs to support the large image resolutions and high framerates that are crucial for everything from showing off your favorite fast-paced games to crisp text legibility during document sharing. Any part of the flow can become a bottleneck and degrade the experience, so every component must work efficiently.
Go Live continually captures updates to your application and screen using the optimal method available on your operating system. It has a robust fallback system so if one method fails, it will quickly switch to the next method so the stream isn’t interrupted. All capture methods have the same goal but work in different ways — some are provided directly by your operating system, while others require Discord to reach into the application through dll-injection to grab what it’s rendering.
Discord uses OS-specific audio APIs to capture audio from the shared screen or application. Fairly often, audio is generated from several processes of the application (ex. game music from one process, voice chat on another) so we capture audio from the shared process and all its children.
Discord is proud to join the global community in celebrating Black History Month. This annual observance commemorates and recognizes the invaluable contributions of Black individuals throughout history, acknowledging their resilience, creativity, and enduring legacy that has shaped the world we live in today.
For this year's Black History Month, Discord's Black and African American Movement Employee Resource Group (or the BAAM ERG for short) and its allies would love to share a handful of their favorite vibrant Black gaming communities and content creators. Black gamers have played an integral role in shaping the gaming landscape and fostering inclusivity within our community, from esports enthusiasts to casual players, and content creators to streamers.
Check ‘em out!
Celebrating Black gaming communities online that are creating great culture and content is a great way to celebrate Black History Month near and far and is a tangible way to advocate for a more inclusive online world. Throughout February, Discord and Discord employees donated to non-profit organizations supporting Black communities, highlighted Black-owned businesses to help support their work, held thoughtful discussions of Black intersectionality with various identities, and celebrated Black joy together.
The BAAM ERG, along with Discord and the rest of its employees, are honoring organizations that support, advocate, and are creating a more inclusive, equitable world for Black global citizens, including supporting organizations such as The East Oakland Collective and Free Black Therapy.
If you’d like to be a part of the BAAM ERG’s journey and Discord’s culture, we’d love to have you — consider taking a peek at our jobs page from time to time!
If you've been following our previous engineering blog posts, you'll know that building and maintaining Discord is a complex task. Our software development takes place in a polyglot mono-repo, where Python, Typescript, Rust, Elixir, and C/C++ are the most actively developed languages. We also develop and ship products for all major platforms including Android, iOS, MacOS, Windows, and Linux.
The Internal Developer Experience team is responsible for roughly the first third of the Software Development Life Cycle. Our main tasks include building and maintaining IDE experiences, managing development environments, shipping tools for building, developing, and testing code, scaling and maintaining CI infrastructure, and owning the change management process and supporting tooling infrastructure. While we could delve deeper into any of these topics, this blog post focuses on how we transitioned all backend and infrastructure development to a Linux-based Cloud Development Environment, thanks to the team over at Coder.
Over the past few years, Discord's engineering organization has gone through rapid growth and more than tripled in size. Discord operates as a hybrid company with a physical office in San Francisco and the Netherlands, but our engineering team primarily operates remotely.
Most of our developers use MacBooks. Before transitioning to remote development machines, we ensured that engineers could fully stand up Discord on both Mac and Ubuntu machines, and created custom tools to provision laptops using Homebrew. However, we encountered several issues where a brew upgrade could halt a developer in their tracks. We resolved many of these issues by hard-pinning every software package and transitive dependency, although this made it more difficult to install arbitrary software packages. We have since moved from Homebrew to Nix for installing system dependencies, allowing engineers to use Homebrew as needed.
Our local service orchestration tools have also evolved. We began with Makefiles and procfiles, but quickly outgrew this system. We experimented with Docker and docker-compose, but for various reasons, this did not work for us. At that time, the performance on docker-for-Mac performance was subpar, and the added friction in the (re)-build loop led us to seek faster, simpler solutions. We eventually moved to a supervisor-based system and developed tools to easily define and run services and dependencies.
However, not using containers in the development loop comes with trade-offs. Managing two non-reproducible environments became a significant burden for the tooling teams. We often found ourselves debugging niche and unique issues to unblock engineers. As the company continued to grow, it became clear that we needed to focus on a single Linux-based development environment. This led us to explore Cloud Developer Environments (CDEs) and eventually evaluate Coder.
The European Union’s Digital Services Act, or “DSA”, is an important regulation that affects how certain companies moderate content in the EU. We’ve been working hard on our approach to the DSA, and as the law comes into force for companies like ours, we want to outline some changes EU users are going to see across Discord.
Creating a place for safe connection is a top priority, and we invest heavily in it. Independent of any regulation, more than 15% of our employees are focused on safety, and we work tirelessly to reinforce our Community Guidelines, removing content and bad actors who violate them. Today we’re giving you some more information about the work we’ve been doing to meet our obligations under the DSA for our users based in the EU. As we updated our products and policies, we focused on what would be best for our users, and we are proud of what we have built. And while we’re starting with the EU, we plan to roll out certain parts of this system that improve safety for all of our users so that our platform continues to be the best place to hang out and have fun with friends.
Transparency has always been one of our core values at Discord. In October 2023, we announced our new Warning System, which is an in-app hub where users can easily review their account status. We want users to be able to easily understand what rule(s) they broke, what restrictions may have been placed on their account, and how they can do better in the future.
This information lives in a user’s Privacy & Safety settings, under the Account Standing tab, and is the centralized place where users can see what actions we have taken. For EU users, we are rolling out an experience that lets users login and view their account standing, even when the account is suspended. This will enable better transparency, so that users can understand why their account was suspended and submit an appeal, if appropriate. We’re also adding more context to our action notices, including the content that violated our policies (as long as providing that additional context does not harm Discord or others). And for every report actioned under the DSA, we will be sending notices by email so users are alerted outside the app as well.
We also want people to understand how to exercise their rights under the DSA. To that end, we have made updates to our Safety Center and other articles to provide context on how to submit DSA reports, appeal decisions, and more, and we will be updating our user policies (including our Terms of Service) to account for DSA requirements.
Hi developers! As we bid farewell to 2023, it’s time to reflect on the incredible journey we’ve had together in the world of developing on Discord. From sharing groundbreaking updates to a thriving developer community that never stopped growing, this year has been nothing short of extraordinary.
A few weeks ago, the Discord Developers server, the official home for all devs on Discord (or “DDevs” for short) celebrated a huge milestone: reaching a quarter million members! We offer resources for building and growing both on and off-platform, including peer support and Discord-led events. Past events include a DDevs Buildathon, recurring events called “Code && Chats,” and held App Directory Peer Review sessions. We also host quarterly Platform Updates Stage Events with our amazing Developer Relations (DevRel) team and surprise staff guests.
DDevs, Discord Developers, developer communities… you figure out where I’m going with this? 👀If you guessed we’re hosting the end-of-year event in the Discord Developers community, ding ding ding! You’re right! Your award: an invitation to the event TODAY at noon Pacific! *cue fanfare*
During this special Platform Updates: 2023 Recap event, we’ll review platform highlights from the year and preview exciting content planned for 2024. We’ll also host a Q&A with DevRel and other Discord staff. You don’t want to miss this one — we got a LOT planned!
Speaking of DevRel, I’ve brought in the help of a special friend from the DevRel team to add some event highlights below. Let’s go over to Shay, Senior Developer Advocate, with our 10-day weather foreca-…oops, wrong blog. Take it away, Shay!
Shay here! This year, we invested a ton in building out new tools and resources that make it easier for developers on Discord to build and debug their apps.
We released a public preview of our OpenAPI 3.1 spec, which makes it easier and more reliable than ever before to build with our HTTP API. The OpenAPI spec is generated directly from our source code, providing a more accurate representation of the Discord API.
After that, we took our newly created OpenAPI spec for a spin by using it to generate a new Postman collection, which makes it easier to test your apps and explore our API.
Last but not least, we released a new Embed debugger that lets you preview and debug how your site’s embed will appear in Discord. You could say it’s… embed-der for everyone!
🎶‘Tis the season of spreading cheer and screaming in Voice for all to hear. 🎶
Whether you’re looking for ideas for Discord-y gifts to give to your internet buddies or someone’s asking you what sorts of gifts you’d be interested in, we’ve got a handful of ideas and surprises that can work for people of all expertise levels of Discord!
Nowadays, it’s waayyy more exciting to gift Nitro to a friend. If you know someone who loves using Discord, just press the Present 🎁 button the next time you’re in a conversation with them.
For the gifting season, we gave gifting a bit of a much-needed facelift! When you directly gift a friend Nitro via DM, now you can add a heartfelt or silly note to go with your gift. You can also attach emoji confetti and your favorite Soundboard sound to your gift, corroding their feeling of serenity with a good dose of QUACKQUACKQUACK as soon as they open it.
Looking to spread even more cheer to your Discord communities? You can also send a gift in any text channel, so try dropping a Nitro gift in your favorite servers or Group DMs and see who grabs it!
Here are the Discord updates from December 13, 2023. You can also find the most recent updates in the Discord app under Settings > What's New.
In our previous post about rolling out YubiKeys to employees we discussed WebAuthn and its importance in preventing phishing attacks targeting Discord employees. WebAuthn is the strongest form of multi-factor authentication that is easily accessible to everyone. For more information on WebAuthn, please read the linked blog post above where we talk about the security benefits provided by WebAuthn.
We’ve been hard at work making multi-factor authentication easy to use and are happy to announce that WebAuthn has landed in Discord for all users across all platforms. In this post, we will talk about the engineering challenges we faced introducing WebAuthn to Discord and how we overcame them.
Before continuing we are going to briefly cover WebAuthn and why it was important for us to ship WebAuthn support in Discord. Let’s dive in!
WebAuthn is an API that supports public key cryptography and is implemented across all major browsers and devices. We’ll cover three major benefits of WebAuthn: it is non-phishable, non-guessable, and easy to use.
Phishing scams are the ways fraudulent actors convince users to reveal private information usually through impersonation or social engineering. If you give your password to someone else masquerading as someone in support, you’ve been phished! If you give your authenticator app code to someone else or put it into an untrustworthy website, you’ve been phished!
WebAuthn is different from previous authentication methods because it is domain-bound. Effectively this means that ONLY discord.com can request you to login with WebAuthn with your Discord credentials. When you show up to an attacker-controlled site you will be unable to send your Discord-specific WebAuthn keys no matter how hard those fraudsters try. When an attacker tries to phish you, you will have nothing to send them since the private key is securely tucked away and unknown to even you.
When logging in with password-based authentication, your password is static: it does not change on every login. If your password gets exposed in a data dump of some site, attackers obtain the value and can attempt to log in as you. If you happen to reuse the password on multiple sites (please don’t) then the attacker has a good chance of logging in as you in many places. On the other hand, when authenticating with WebAuthn the authentication response changes every time, meaning that even if an attacker dumps the WebAuthn database, they are still unable to login as you. Only your devices have access to the secret material required to complete the challenge, and that secret is not shared with external servers.
Compared to the alternatives WebAuthn is the clear winner for usability. Authenticator apps require users to scan a QR code for registration and copy/paste time-based codes. WebAuthn integrates with common authenticators like Windows Hello, Apple’s Face ID or Touch ID, and physical security keys meaning that users can scan their face, use their fingerprint, interact with a device, or simply click a ‘Continue’ button to verify their identity. With proper implementation, the WebAuthn experience is seamless to the user. And the WebAuthn experience has been greatly improved over time due to the investment into passkeys, an initiative designed to replace passwords with WebAuthn-based credentials.
For more information on WebAuthn we suggest reading our blog post ‘How Discord Rolled out Yubikeys for All Employees’. Let’s get back to the regularly scheduled programming!
At Discord, we utilize a Python monolith to power our API, from sending messages to managing Nitro subscriptions. To support this, we use pytest to write and run unit tests.
Over the last 8 years, the time it takes to run a single test has continuously grown until it reached a point where it takes a whopping 13 seconds to run a single test.
To clarify, even if the test ends up doing absolutely nothing, 13 seconds is the bare minimum it takes:
Most of the testing time is spent in our global conftest.py file, which contains slow imports and fixtures with scope=session. We refer to this internally as "importing the universe," and to say it straight: the lack of dependency boundaries in this project is an issue that’s worsened with time. We’re actively working to address this in the long term by breaking our monolith into modules, reducing the number of imports & fixtures required to run a single test.
However, since running a single unit test happens frequently, we started looking into potential stop-gap solutions.
Simply put: humans get distracted. When I’m waiting for a test for more than a few seconds, I might click on a notification, open my browser, or get distracted for a few minutes. These distractions extend the feedback loop and make me less efficient in completing my current task.