
Discord is a popular communication and streaming platform that was originally launched in 2015. It was first popularized in the gaming space, but its user base has grown to include a broad array of communities, businesses, and social groups.
Loading summary
Sean Falconer
Discord is a popular communication and streaming platform that was originally launched in 2015. It was first popularized in the gaming space, but its user base has grown to include a broad array of communities, businesses and social groups. Justin Beckwith is the Director of Engineering at Discord. He leads engineering for the platform Ecosystem organization and has played a pivotal role in developing Discord's embedded app SDK. Justin joins the podcast with Sean Falconer to talk about leading engineering at Discord. This episode is hosted by Sean Falconer. Check the show notes for more information on Sean's work and where to find him.
Justin, welcome to the show.
Justin Beckwith
Greetings, Sean. Thanks for having me.
Sean Falconer
Yeah, absolutely. So you know you're director of Engineering at Discord, leading platform ecosystem. I wanted to just start off by having you kind of walk us through and walk myself through some of your journey to Discord and what was the state of the product as like a developer platform when you joined?
Justin Beckwith
Yeah, so I had a really unique opportunity in joining Discord. It's coming up on three years since I've been here, which is hard to believe. And before this, most of my career was really an enterprise software. So I'd worked a lot on cloud developer platforms, had an opportunity to work on Azure, on Google Cloud, a couple of different platforms there. But this was the first consumer platform I had a chance to work on. And one of the things that really drew me to it was that there's this large, vibrant, excited kind of. There's just a whole slew of developers that were already there. They were already building things, building chatbots, slash commands, rich presence, all kinds of any way that they could extend what was on Discord. People were trying to do it and it was kind of a unique opportunity to walk in where that ecosystem had been defined. It was kind of core to the product and I'd have a chance to come and work on something that inspired people.
Sean Falconer
How do you think working on something where you're building essentially still building developer platforms? So this is designed for developers, but the sort of end user of the developer is going to be consumer. How do you think that might be different from the types of work that you do versus B2B sort of technology SaaS or some sort of managed service or something like that?
Justin Beckwith
It's a really interesting question. I think that there are a lot of places where they're similar. At the end of the day, enterprise developers are still developers, consumer developers are developers. And we want a lot of the same things. We want great documentation, we want walkthrough guides, we want SDKs, command line tools. I'd say the places where it was uniquely different really came around velocity and stability. So I think on an enterprise platform you kind of have it beat into you where it's like you want to know your roadmap, you want to have that three year roadmap. Some places I've worked, we had public 12 month roadmaps where we talked about what we're going to release. There are these very, very hard and fast rules about how you break things and never breaking the platform. And in a lot of cases and sometimes in enterprise software, crummy UX is okay. The number one thing that you need is the ability to get the job done first, make the API exist and then if we want to make it easy to use or if we want to go have great UX behind it, then we can go focus in there. And I think what I found is that the expectations on a consumer facing platform for developers, they're a little bit different. Right. Like it's expected you're going to move faster, it's expected that just the nature of the product itself, it's not going to be as predictable where we're going to go from one quarter to the next because we're trying to chase users and we're trying to react more quickly than a large enterprise scale platform.
Sean Falconer
Yeah, you and I were chatting before we started recording. We were both at Google at the same time. You worked in cloud, I worked in cloud. Like I think cloud you're dealing with like a 18 to 24 month like public roadmap. Any breaking change of an API is probably going to be like a, you know, year and a half minimum deprecation cycle or something like that that you're going through. Do you think when you're building like a developer platform where the end user is going to be consumer, are people sort of more forgiving of those kind of breaking changes or are the same expectations there?
Justin Beckwith
Yeah, so I think that this is where it's like the same expectations are there for the end user. We can't do anything that's going to break end users. Right. That would be a complete failure for us. And we absolutely don't want to willy nilly introduce breaking changes. And so that's one of the things with the activities platform that we've put out there that we've been very careful. Right. We've worked with a lot of partners, we've spent a couple of years actually building this thing out, getting it stable, making sure that we had a good handle on the primitives of it. But, you know, just because it's a consumer platform doesn't mean that you can just go break things. It just means the cycle can be a little bit different. I think that the industry just moves a little bit faster.
Sean Falconer
Yeah. I think one of the things that's really interesting about Discord is that it was designed, from my understanding anyway, to be extensible and sort of adaptable from day one. And I think it's, you know, it's really hard to build a product that has, like a singular focus, has your product market fit, and be really good at that, while also being good at being, like, extensible and being extended in ways that probably the founders never ever thought anybody would extend it in that way. You know, can you talk a little bit about, as far as, you know, anyway, the decisions behind that and what was particularly difficult about pulling some of that stuff off?
Justin Beckwith
Yeah, I mean, I think that you'd mentioned it being maybe extensible in ways that, you know, maybe the founders didn't think of. That's actually not true. Jason and Stan, the co founders of Discord, they constantly talk about the value of it being an extensible platform and how that was one of their goals, actually, from day one. And I think that made it a lot easier for me to walk into this job where they had this kind of running head start. I had mentioned it already had this vibrant community of passionate developers, and it's because it was built like that from the beginning, and they kind of erred on the side of make it open, let people use the platform in the way that they're going to use it. Early on, we might change some things, we might break some things, and that's okay. We know that people are kind of coming in and just trying to build against it, but they definitely started with that philosophy of keeping everything open and then just seeing what people would build. One of my favorite things when I joined here, you know, we have, of course, all of our communication at Discord is through Discord and App City. The channel where we communicate most with the team has this kind of channel description on it that says you honestly wouldn't believe the things that people make. And it's really resonated for me, and it's turned out to be entirely true. As you see the stuff that people just kind of come up with and build.
Sean Falconer
Yeah, it's kind of interesting in, you know, also in a time where your companies like Reddit and X or Twitter have actually closed down their APIs, it feels like Discord's kind of going the other way, where they're actually leaning into this even more and it's becoming, you know, it was already a developer platform, but they really seem to be like, investing resources into that, you know, given that they already had sort of this thriving developer ecosystem. When you joined, like, what were some of the, like, focal points and areas that you, like, initially jumped into and thought either they were a problem area or maybe there were things, you know, they weren't doing today that needed your expertise to kind of get in there and take care of.
Justin Beckwith
Right. So, I mean, in terms of, like, needing my expertise, that's certainly not the thing that I provide for the team. Most of the time I'm there to kind of guide, unblock, you know, very much in the style of letting the experts that we have do their best work. But the first place, when I joined the team that we spent a lot of time was kind of helping shepherd this transition with chatbots. Where originally the way that chatbots kind of were born on Discord, because everything was just open, was you would build a bot, you would listen to every message that came through on a websocket. If that message summoned your bot, sometimes it was with, you know, like a bang, and then the bot name, then you would parse the message and react to it and then respond, just like a user would. Right. It was effectively using the same APIs we used in the client to send and receive messages. And this worked kind of initially out of the box, but as we grew and as more and more users came on board, we realized, one, that was a pretty difficult way to build a bot because you had to handle the scale of listening to every message in every single server and responding to that. And two, from a privacy standpoint, we didn't want to put users in a position where, you know, as these bots proliferate, they could start collecting all these messages and doing whatever with it. And so one of the things that was put into motion before I got here, but I had to help see it through, was this transition to what we call slash commands. And that's effectively building a model where a user has to summon the bot in a very specific way. You register your commands, it has different sets of data types. We can provide really nice fancy UX over this to make a great user experience. Whereas before it was a little bit more hackery and kind of terminal feel, now we have broad rich UI that makes it easy to use, but kind of helping the team through that. And what that breaking change meant, what was a reasonable amount of time to give developers, how do we communicate it, how do we make sure that we have all of the features that we need in place before we make this mic migration? I would say that was the first big project that I got to work on when I came in. So ironically it was thinking through a breaking change and how we rolled that out in a way it's safe for users.
Sean Falconer
Yeah. So what were some of the decisions that had to be made in order to do that like gracefully?
Justin Beckwith
I think the biggest issue there is always going to be trying to give the same amount of features that users are accustomed to. So we wanted to make this change that we thought was going to be good for developers and was going to be good for users. We wanted to make sure we did it in a way where they weren't losing anything. Right. So we want the same level of flexibility. But most importantly, we wanted users that are using these bots day in and day out to be able to do most of the same things. So a lot of the decision making was how far do we build, right. How do we take this system that was completely open ended, put some structure around it, give it some nice primitives, make it feel good, make it feel like it wasn't just we're asking users to move just because we asked them to. We wanted them to want these bots. Right. Like we want them to want to move to this new system. And so we spent a lot of time thinking through the user, end user implications of what we were building.
Sean Falconer
Yeah. How do you sort of manage to strike a balance between making something that's user friendly to the consumer but also extensible to developer to a place where you're not able to extend it, where it becomes just like difficult to use. If I think about back in the early days of MySpace and some of the things that people could do, you'd hit a MySpace page and your browser would basically crawl to a halt because there's like multiple musics playing and there's all these like slow loading graphics and stuff like that, because there was no like guardrails around what anybody could do. So you're just like having people create these horrific websites. How do you basically give people the freedom to create while essentially putting some limitations around what it is possible so that they are always creating like a decent user experience?
Justin Beckwith
It's a great question. I think I'm kind of of two different minds here. I'll be honest with you. I think, you know, on one hand, if you want to have a truly open platform, you have to be able to accept that people are going to build things that maybe don't look great or don't look the way you would have built it. And if it's not popular and if it looks bad and if it isn't a great experience, they're not going to use those apps. If someone creates an app for your phone that looks terrible and doesn't use the right primitives, then you're probably not going to go download and install that. Right? But if it does something great, if it does something novel, if it does it in a way that we never imagined you building it, like that's the goal, right. And you can't get that level of creativity and you can't get that break out of the norm and the expectations unless you give a little bit more freedom on what they can build. So that's kind of like one piece of it. Where I definitely have. That's my general mindset. That having been said, we also want to make it easy for developers. And the last thing we would want to do is have the out of the box experience be compromised like on Discord, for something you can do with a developer. And I think that's where with slash commands, it's a great example where we spent just a ton of time like stylizing it, having developers provide us with a declarative way to say these are my commands, these are the inputs giving them structured ways to provide output, not completely giving up formatting. And one of the advantages of that that we get, that's obvious is kind of to the user getting that level of consistency. The other kind of hidden advantage that you get out of it actually is managing a lot of the things that come from having a desktop, web and mobile platform. Developers don't have to think as much about how is this formatted on mobile, how it look with this device, how does it look in this situation. And we can do a lot of that for them.
Sean Falconer
Yeah, I think there's a lot of stuff that has gone into not only making development easier, but also in particular gaming development, where I think Discord has been really successful. Just so much has gotten easier, I think back nearly 20 years ago when I got into building games. For a while it was just a lot of work. Like it was C, OpenGL, DirectX, there was a lot of math physics, but game engines have kind of lowered the bar there, made things much easier. And then with Discord you're getting cross platform compatibility. And then as a game designer you have kind of like a fast path to users and distribution and now you throw in things like Gen AI and just even using it as a development tool, it was probably easier to build a game now than it ever was. And I'm curious, I know you're more on the sort of developer ecosystem side, but what are your thoughts on how some of those things in particular, like Discord and the distribution that's available there has impacted how we build games and design games and what kind of games are possible?
Justin Beckwith
Yeah, I think that's wonder. I'm all for democratizing developer platforms. Right. I think anywhere in the industry where we can make it easier for more people to build, especially folks that are creative and don't have traditional background backgrounds, maybe in computer science, then we're like opening the possibilities of what can get built out there. Right. And I think those are all positive. I think that's been one of the funnest projects I've ever worked on here at Discord has been the release of activities and making it so that developers can build HTML5 JavaScript games, put them right into Discord. And I mean web games, it's not like entirely new, but I think the twist that we're able to put on it, that's a lot of fun is sort of bringing the social structure to that game. So instead of starting a game, maybe on your own, and then going off and playing it solo, something you can do with friends, you can do it in a video call, have context, have video voice, chat, all of that just kind of already taken care of and there. And then bring your game into that environment and it's been just a ton of fun to work on.
Sean Falconer
Yeah, you get a lot of the, like, you're basically providing a lot of the sort of social communication infrastructure that for any kind of modern game, you probably would have to build from scratch if you didn't have it out of the box through a platform like Discord.
Justin Beckwith
Yeah, I mean, if you're already here, you're hanging out, you're with your friends and you want to find something to do, it's nice to just have it out of the box, be able to go into our app launcher, pick a game and you just get all that stuff for free.
Sean Falconer
Talk to me a little bit about activities and how that works from the development standpoint, like, how do I get up? You know, building one of these.
Justin Beckwith
Yeah, so we have a lot of great guides. We were talking earlier about standing up our first developer relations team here at Discord over the last couple of years has been fun and so we have great documentation on discord.dev that goes step by step. But at the end of the day, the games that we support right now on the platform, they're web games, they're HTML5 and JavaScript. You host them. We have an npm module that has our SDK that kind of gives you all of the hooks into Discord so you can get things like sessions, start knowing what people are playing, invites, sharing interesting things that happen back into the game, back out. But you, for the better part, can build a standalone HTML5 JavaScript game, add the social layer in with Discord, and then go through some lightweight steps to publish it in a way that we can access and launch it through Discord itself. But at the end of the day, if you're comfortable with web development, web game development specifically, it's pretty easy.
Sean Falconer
And then as a developer, I'm using the embedded SDK to build those experiences. And then is that loaded up essentially as like an iframe embedded directly within Discord?
Justin Beckwith
Exactly. Well, it's an iframe. It's locked down in a variety of ways to make sure that it's safe for all of our users that are using it. But yeah, it effectively loads the whole experience inside of an iframe in the client. And that's both desktop and mobile platforms.
Sean Falconer
Yeah. What are some of the limitations that have to be put on that to make sure that it's secure? I'm sure there's a number of privacy challenges as well that come along with that.
Justin Beckwith
One of the nice things about working at a company with a world class security engineering team is that they really helped us make sure we got that right. And we've had a couple of years to work on it sort of out of the gate in terms of how it limits what you can build. Most of the things that are really limiting there are like, well, a, it is limited to web, so we're not able to go provide things like native game development just yet. That's not something that we can go out and build. So it's restricted to HTML5, JavaScript, and any feature that has a risk of exposing the user's IP address to other users or to end development developers, those are actually things that we try to avoid as well. And I would say that's probably where the majority of the limitations come from, honestly, is that at the end of the day, Discord is, you know, we're a communications platform that is primarily working with the people who game. And one of those big risks in gaming communities is, you know, having someone get your IP and then getting ddosed while you're trying to play a competitive game. So that's something we're incredibly sensitive to. And when you're dealing with something like an iframe or a web app like this, we have to be really careful to restrict which APIs you can put into place and how you build it, to make sure you do it in a way where there's no direct communication from user to user, or even user directly to the developer. We actually proxy everything.
Sean Falconer
And then for me, if I build one of these games, these activities, I put it in Discord's app store, people are installing it, it gets really popular. Is it on me to essentially be able to scale the infrastructure to match how much interest there is, essentially?
Justin Beckwith
That's exactly right. We definitely discussed the idea of having our own hosting platform. That's something that we went back and forth with a number of times. But at the end of the day, the variety of ways in which people can build these backends, the richness of them, the differences from one game to the next, and what its requirements look like, we really wanted to leave that to developers, to be able to own the intricacies of that stack and own how they're going to scale it. We have some developers that have their own whole backend ecosystem that's common across all of their games, regardless of where they run. And so we didn't want to dictate the backend to developers, but, yeah, ultimately they're responsible for how they scale and the Stone of Triumph, how they carry that.
Sean Falconer
And then can I monetize my game through, like, downloads or installs?
Justin Beckwith
Yeah, absolutely. So, I mean, not through downloads or.
Sean Falconer
Just not really downloads specifically.
Justin Beckwith
Yeah, downloads. Not really a thing in this case. But that's something that we've been working on for the last year as well, is it's called Premium apps, and this works across both, actually slash commands, traditional apps on Discord as well as activities. And we've had a number of features we've rolled out where we'll do all the payment platform stuff for you, and you just have to integrate. You can sell in app purchases, subscriptions. We have some new things that are about to come out in the next couple of weeks that are going to continue to make that better. But we've been actively working there for a while and all that stuff's out and you can absolutely monetize. Yeah.
Sean Falconer
And then were there particular, I guess, like, technical challenges with rolling out the embedded SDK, like you said, the activities platform was something you were working on. For a number of years. What was some of the big challenges there besides some of the security things that we mentioned?
Justin Beckwith
Well, I think we talked a little bit about building out a developer platform for a consumer ecosystem and how that can be a little bit different. I think the first thing we really needed to nail down was the user experience. Playing games inside of a chat app comes with a number of interesting UX challenges and figuring out how to do that in a way that's delightful and gets people coming back and doesn't interfere with the main point of the app, which is connecting with people chatting. And so I think that the first challenges there, yes, there's a bunch of interesting technical challenges, but the first ones were really the UX and making sure we got that right when getting to the technical side of the house. I would say the number one challenge we faced initially out of the box was that security problem. We wanted to be so careful here because we have what is an iframe running inside of Discord, making sure that nothing can escape that iframe, making sure it doesn't get access to anything on the user system that it shouldn't have access to, pen testing that, trying out all kinds of different ways to make sure that we'd covered all of our bases. That was one of the key technical challenges that we had going in when it comes to the titles themselves because actually many of the initial activities are actually built by Discord. We have an in house studio that goes. And as experts in building web games, performance was really a bit of a challenge because we have these games we want to build, we want to have great experiences. These are game developers. We have a Discord that have worked on large AAA titles and they have very specific things they want out of that experience. They want it to be great. Building it in a way that runs on the web that is also rich with features, gameplay, mechanics, performance, and would run not only on a desktop but on a mobile device in an iframe was actually a pretty big technical challenge and it's been inspiring to watch them work through that.
Sean Falconer
Did you have to do some work to like kind of seed the marketplace of the App Store essentially with building some in house apps, you know, launch with something like, you know, empty Marketplace is not very exciting.
Justin Beckwith
Yeah, we activities have actually been on Discord for a couple of years, but they've all been those first party ones that we've built. So these have been titles like Chess in the Park, Poker Night, Letter League, kind of some of the classics. When we wanted to put out there to feel out, is this something users want? And so I think out of the gate, we had over 40 titles that were available before we went to GDC last year and opened this up for anyone to start building. And then even during that time, over the last couple of years, we've been working with a bunch of other game studios. So we ourselves tried it out. We built some titles, we had some games we felt great about. We worked with other partners like FR VR, you know, a couple other companies to release their titles that we thought were really exciting and captivating on the platform. And also to make sure we had the API right. You know, if you're the only one that's tested your API, you can't be sure that you have that thing right or that others could use it. We wanted to get that validation as well.
Sean Falconer
In terms of the ux, like, what's it look like as a game embedded in Discord versus, you know, me having essentially a conversation with the other people or actually also playing the game.
Justin Beckwith
Yeah. So there's kind of two different modes that you can play these games in. One is through starts with a voice call and that's kind of been the original mode and is right now are most popular where we get in, let's say that we're in a server and we get in a voice channel. We're talking and we just decide, hey, I want to play a game or I want to listen to music. That's another thing. We have multiple music activities that are available as well. Someone can click in on the app launcher while you're in that call, you pick the activity and then other people can just jump and join in. And you're still in the voice channel, you're still in Discord. You have text, you have voice. You can scoot around the rest of the app, but you're just inside of the main screen playing a game. We also have outside of the voice call, if you want to have something that's a little bit more async, you can start these games from inside of a text channel as well. And let's say, and you want to start a game, have other people see that the session is happening and then join in without having to be in the voice call first. You can do that as well.
Sean Falconer
This episode of Software Engineering Daily is brought to you by Jellyfish, the software engineering intelligence platform. Powered by a patented allocations model and boasting the industry's largest customer data. You know, one of the biggest shifts in the past year or so is the adoption of Gen AI coding. Tools like GitHub, Copilot and engineering leaders are trying to figure out if their teams are actually using it, how much they're using it, and how it's affecting the business. Are they shipping more? Is more roadmap work being done? How do you know beyond anecdotes and surveys? That's why Jellyfish introduced the copilot dashboard in 2024 in partnership with GitHub. And since then, they've analyzed data from more than 4,200 developers at more than 200 companies. Want to know an interesting finding? Developers are shipping 20.9% more with Copilot. The folks at Jellyfish have a ton more insights and you can get started seeing your own team's data so you can plan and manage better. Learn more at Jellyfish Copilot today.
What about multiplayer? Like, if I'm building one of these activities, what do I essentially see as a developer? To know how many people are there, like, how I can help them interact with each other and so on.
Justin Beckwith
Sure. So we provide APIs for that. That's one of the main benefits you have of building this into discord is you get that stuff kind of for free. So we give you a list of the current participants that are inside the call, people that are inside of the activity, and then you can build your game around that. One of the things that's been kind of interesting to work on is thinking through all of the models of multiplayer, where it's like, some games you can show up and if you're the only person there, you have to show up with other people in the call. So, like small party games, others that have built on top of the platform will do global queuing so you can show up on your own. And there's a global queue of everyone playing that game and you can still have that communication just with your group inside of the channel. But I think that this is something that's evolving and developers, since we've opened it up, are doing all kinds of interesting things we didn't expect, which is exactly what we were hoping for. But I think for people that are building these games having a lot of clarity on what are the communication structures. Do you want global queuing? Do you want it to be private matchmaking? Really thinking through that can be helpful in figuring out how successful your game is going to be.
Sean Falconer
There was a period where platforms like Facebook and other social media platforms were really big, I think, in gaming for the farmville era of Facebook and stuff. I mean, I'm not on Facebook a lot of these times. So I might be like, I need to ask my parents who are on there. But it seems like they kind of blew up and then they have fallen off. At least is my sense, like, why do you think that Discord's been so successful with this and what's different about it versus some of the things that were happening 10 years ago on platforms like Facebook?
Justin Beckwith
All right. I think at the end of the day, Discord is built for gamers, by gamers, kind of platform gaming is through the DNA of the company. It's something that people here care deeply about. And I think that we wouldn't put a platform out there that we ourselves didn't want to go use. That's kind of first in our hearts and, like the first sets of users that we really think about ourselves. So I think that's kind of the first thing is it's not like this was a social media platform that we then added gaming features onto. It's always kind of been core to who we are and what we build. I think the second thing is really starting with the. Starting with the social group first. We don't want to build a generic gaming platform. There are plenty of those out there. That has been done many times. For us, it's about finding something to do with your friends. So having people that are here. We want better ways to hang out, better ways to connect and be together. And that's the kind of the social aspect that we add into the whole thing that makes it. That has made it successful. Yeah.
Sean Falconer
Since you have these social groups and a lot of this focused on, you know, connecting with your friends or at least like online communities that are similar to you. Do you think that this allows, like, sort of more niche games, niche experiences to be successful at scale than something? I mean, it's hard to find essentially your audience if you are in a niche without something like this.
Justin Beckwith
I'm so glad that you asked that question. That's the magic of Discord, actually, is that we attract all of these communities of interest and we help people that are passionate about niche things find each other and build their communities up. And that doesn't go for just the servers themselves or the communication that happens there. It happens with apps, too. We see this today with traditional slash command apps where, you know, you can build something. Are you super into Magic the Gathering? Yeah, there's. There's an app. There's someone who's built slash commands for that D and D. We actually have Rule 20 that came onto the platform and released their platform through Discord. Even more Niche than that though, because it's open. This kind of gets back to what I was saying earlier. We can't predict what people are going to build and you can extend discord in any way that you want to that makes sense for your community. So I think that's the, that's the exciting part of all of this is watching not yes, the big titles are important and we want people to launch games and get all kinds of eyeballs and become wildly successful as a business. That's critical for me personally, I love the niche stuff. I love something that's only going to make sense for one community and one server, but it solves their problem. Exactly. That to me is very, very exciting.
Sean Falconer
Yeah, it's like most of the stuff that I built in my career, it's like so niche that only myself and a handful of other people care in terms of like, you know, niche groups and niche experiences have been built on the platform. Like what are a couple that really stand out to you?
Justin Beckwith
Oh goodness. I love the apps that get built that are just silly. I'm personally one of my core values and something I deeply enjoy is Whimsy and I. One of the first apps that we had built, this was, this isn't an activity. This was just a standard like bot that got built. Here was a turnip app and the thing was silly. It was built as an example of how to use user apps which are like apps. Instead of installing it in the server, users kind of have control and they can install it and take them with them. And it lets you give people turnips. It lets you have like an economy of turnips and, and a whole. It became like a gift giving thing where someone did something nice for you and you're like, here's a turnip. Enjoy that. And it's a silly thing. It was kind of pointless, but it just became. It made people so happy and it grew like wildfire internally in Discord, we ourselves always using these kinds of bots and as a way to communicate and show gratitude. And I think those types of experiences, the things that help me connect with people, show gratitude, have fun, be silly. That's the magic of Discord. It's the magic of extending it too.
Sean Falconer
I think that's also probably the magic of democratizing some access to being able to build these types of experiences too. If you're not so limited by the technical like hurdle of actually building something and you can focus a little bit more on your imagination, then it potentially opens up the world of people that can essentially create Experiences like this that maybe haven't been able to do that in the past.
Justin Beckwith
Yeah, I mean, it's so hard to build a lot of the underlying primitives for communication into your game. Like, if you're starting with the game and then trying to build all of this, it distracts you from that end experience. Right. Distracts you from the creative process of building the game itself. So I love that we kind of. We're the social box that you can just kind of build within. You have the community existing and it kind of scales. Like you can start with something that's very little code that you don't have to build a ton with for a simple bot, all the way up to a full blown, you know, game title that runs inside and you kind of get to scale based on your abilities and how deep you want to go.
Sean Falconer
Yeah, I mean, I think it's really fascinating that like Mid Journey started on Discord and, you know, blew up from there and it's like, probably not what you think is the most, like, natural path to using something like Mid Journey, but, you know, it worked for them. And I'm curious, like, are people using Discord as almost like a place to test app idea since you have access? I think there's, you know, 200 million monthly active users or something like that on Discord, so you're able to reach a very large audience, in theory, quickly. So are people experimenting there and then maybe taking it outside of Discord as things develop and actually grow in popularity?
Justin Beckwith
I think that, yeah, there's definitely a subset of apps that are doing that, and Midjourney is an interesting example of one that started in Discord, used that to kind of get their viral growth and awareness and to spread through communities. I know that they are going out there and building some standalone experiences, but kind of the magic of most of the apps that get built in Discord is using it with your friends. So if it's just an app that you're building to use for yourself or for like a, like a utility app that's for one person, you can build that in Discord and we'll successfully help you scale it and you'll grow, but you're not going to get the most out of the platform that way. Like, the sweet spot are really, really the apps that help people do things together. And I think that with some of those early AI apps, it's not that I could generate the image that made it fun. It's generating the image and then sharing it with my friends and then having them riff on it and then having that spur new ideas. So I think the real successful apps on Discord are going to be the ones that sort of embrace that social aspect.
Sean Falconer
How's the user engagement been with like the sort of embedded activities compared to the traditional bots and other types of integrations?
Justin Beckwith
It's still emerging. I think that the thing with traditional bots that you have to keep in mind is that those have been there on the platform since pretty much day one. As Discord grew, all of those existing bots grew with the platform and become kind of vital and integrated and important activities. Like, we have strong numbers, we're growing, more and more people are using it. It's not quite caught up to bots yet, but it's going to take a little bit of time.
Sean Falconer
What are some of the challenges as a third party developer I might face when using some of the developer tooling that's available on Discord?
Justin Beckwith
Yeah, I think some of the biggest challenges we've seen so far for developers that are coming onto the platform one is if you're an existing game studio, you're an existing developer and you want to build something, you know that Discord's popular, it's out there, you know, you kind of want to figure it out, but you don't have a lot of expertise in it is building things in a way. Just like I was saying earlier that take advantage of the social aspect. I think that if you try to build a game where it's like you just come in, you use it, you play it, and you don't fully embrace the idea of people communicating and playing together, then you're not going to be as successful as someone that really understands like the Discord dynamic and how those communities work. So I'd say that's the first place where like folks that are maybe coming from traditional gaming backgrounds have had to go learn and had to learn like the best way to integrate that on a technical level. You also touched on this a little bit. I think the biggest challenge is dealing with your own success. So if you know you're an indie, you're an indie studio, you build a title, you put it out there, you think this might be popular, and then we can have the effect of pointing 200 million monthly active users at an app and scaling it very quickly if it becomes popular. So as a developer, I think helping people recognize the potential, potential for the scale of their success has been another interesting challenge.
Sean Falconer
Yeah, I mean there used to be the whole like, was it slash dot effect or slash dot or going in.
Justin Beckwith
The Way Back Machine I love.
Sean Falconer
Yeah, we're going in the Way Back machine. You know where that was like for a blog article or something like that. But is that something that has like impacted existing people, like building apps on the platform? Like it's like, oh, I built this for my friends and then suddenly it blows up and I'm like, my server is just completely, you know, boiling over.
Justin Beckwith
That can happen. Yes, that's definitely a risk, I think for activities because it's the second time we've done this. We kind of lived this with bots the first time for a lot of the partners that we work with, we give them some controls to do slow scale out. Right. And we can control like, you know, how many impressions they're going to be getting, like where they get possession inside of our shelf. Some partners we do GEO rollouts where we'll start only saying Canada and do like a slow rollout that way so that they can scale up with it. And that has been effective. That's helped us out so far with activities, specifically making sure that for the bigger titles that we know we're going to have this issue, we can work with them and we have some tools, tools in the toolbox to help. But yeah, once something gets viral, it getting slash dotted, getting the Reddit hug of death, you know, all the Discord laser beam, these are, these are all things you do have to be thinking.
Sean Falconer
Of what about on the Discord side in terms of, you know, infrastructure challenges? Like you've grown a lot, especially with the developer oriented platform. Like I would think that even as people are building games and a game gets popular, it could actually bring new users to the platforms too. It was kind of like having like a really hot show on a streaming platform or something like that. Suddenly you're getting a lot of signups. So how does that sort of impact traffic that you have to deal with on the back end?
Justin Beckwith
Yeah, I'm going to be honest, we've yet to have something so successful that it has actually challenged us in terms of the overall scale of Discord. I mean the platform is what, eight years old now? It's been out for quite a long time. Like I said, 200 million monthly active users we've had. I would say the closest we've come is we've had a few, a few of the AI apps that really took off. Like Midjourney is a good example where, you know, we noticed that one when it really, when it really took off. And so for those, there are some interesting backend challenges that our core Tech engineering team will have to go solve from time to time, but for the better part it hasn't been anything we couldn't handle. Discord went through a huge boom during the pandemic in terms of growth and it's in a really stable, great spot right now to handle that kind of traffic.
Sean Falconer
So eight years ago, what's the kind of like backend stack look like as much as you are familiar with anyway?
Justin Beckwith
Yeah, we actually have a great blog that often talks in detail about how some of the moving pieces here work. I love this question in interviews is actually really fun when I'm working on hiring and I was like, oh, what kind of languages do you use? And I get to take a deep breath and talk about all the way from the top with, you know, React Native, sometimes you're in Swift and Kotlin, sometimes you're mostly in Typescript or React working all the way down to we have a Python API layer that is like the most basic HTTP API, good old, you know, Python and Flask, just like anyone else would do. And for the core communication, the pieces that are really interesting are in Elixir running on the Beam vm, which is just kind of magical technology for anybody that has built a messaging app. Once you find the Beam vm, you learn that everything starts to get a little bit easier and you can scale pretty well on it. For bits where we have very, very performance needy parts, especially coming from that API layer, we do a fair bit of rust these days for performance stuff that has performance requirements around it.
Sean Falconer
I'm not familiar with the Beam vm. So what is that project?
Justin Beckwith
Yeah, so the Beam VM is just the virtual machine that if you build applications originally Erlang. So a lot of telephony systems were built on top of Erlang running on the Beam VM and more recently most people that are targeting it are using Elixir as a programming language which kind of has that like a functional Ruby sort of feel to it. It has Jean Sais quoi Ruby. If you've. If you've never worked with Erlang and you start working with it, but it really just makes message passing and building high throughput messaging systems easier, you going.
Sean Falconer
Sort of outside of the infrastructure question to more this growing trend that's been happening in industry with Gen AI. We talked about mid Journey and the impact that had. But how is Generative AI impacting the discount core platform? Are you seeing a lot more app developers trying to build stuff related to that or even your own investments into the space?
Justin Beckwith
I think that it follows the lines of any trend that comes and goes on the Internet. I'm not saying this one will come and go, but it's what's hot right now, it's what's fun and interesting. And so of course when that happens, people are going to bring it to their social spaces. And it's been fun to watch Discord be the center of it in a lot of cases, especially with midjourney now viggle doing a lot of the same things, but with the video. I think that Discord's a great place for it because it helps people share, build off of each other's ideas and kind of be creative in a group setting. And I think that at some point there will be the next wave and hopefully that one's on Discord as well. But I really think it comes down to that social aspect and shares that makes it popular.
Sean Falconer
What are you focused on, you and your team for the next six to 12 months that you can share?
Justin Beckwith
Yeah, we want to make everything about building games on Discord, building activities better. That means giving users more ways to interact with them, making it feel like a top notch experience, making it feel like running it. You can build something as good as a native game that runs inside of Discord. We want to give them more ways to communicate with each other, invite people, build your social network and do all of that on the app. So this year was really a lot of making it possible and next year is going to be about turning that crank and making it great is what.
Sean Falconer
We'Re hoping for in terms of being able to build games that feel native. Are you thinking you'd actually provide the library support to do essentially the graphics of the game?
Justin Beckwith
I think this is where we take advantage of a lot of the great work that's already out there in the community. One of the companies that we've been working with Builds phaser, wonderful HTML5, JavaScript web gaming platform. We have other partners that we've worked with from the beginning that make that stuff possible. We want to like deepen and tighten those relationships a little bit and work more closely with all the companies that are building game tech that let you export to web as a target. And I think that the more we do that, the more that developers are going to get best in class, you know, developer experience for building these type of titles and we can focus in on the part that we're good at.
Sean Falconer
Right? Yeah. So it's more about sort of partnership and creating probably like an integrated experience of like here's sort of our opinionated way of building games on Discord, but you're not building everything, you know, soup to nuts from the ground up.
Justin Beckwith
Exactly. Unity is out there. Can export to web phaser is there. You know, there are a bunch of these web platforms that are quite good. How can we make them better? How can we work with them? That's what we're going to do.
Sean Falconer
Awesome. Well, is there anything else you'd like to share?
Justin Beckwith
No, just this has been an incredibly rewarding experience the last couple of years. I think, like I mentioned, the magic of Discord is that it's here for people to have fun. It's here for whimsy. It's here to bring folks together. If people take anything away from this, from a, like, why you should build on Discord, it's about integrating into that social layer. It's about integrating to, like, go to where people are already connecting with their friends and think about how you can build experiences that take advantage of that connection. Yeah, that's it.
Sean Falconer
Awesome. Well, Justin, thanks so much for being here. I really enjoyed this.
Justin Beckwith
Yeah, this was awesome. Thank you so much for having me.
Sean Falconer
Cheers.
Podcast Summary: Software Engineering Daily – Engineering at Discord with Justin Beckwith
Episode Information:
Justin Beckwith serves as the Director of Engineering at Discord, leading the Platform Ecosystem organization. With a career predominantly rooted in enterprise software and cloud developer platforms like Azure and Google Cloud, Justin transitioned to Discord nearly three years ago, marking his first foray into a consumer-focused platform.
Justin shared, “There’s a whole slew of developers that were already building things, building chatbots, slash commands, rich presence… it was a unique opportunity to walk in where that ecosystem had been defined” (02:00). This vibrant developer community and the chance to work on a platform that inspires users were significant factors in his move to Discord.
Justin elaborated on the distinctions between enterprise and consumer developer platforms. While both environments value robust documentation, SDKs, and command-line tools, consumer platforms like Discord operate with greater velocity and flexibility.
He noted, “It’s expected you’re going to move faster, it’s expected that just the nature of the product itself, it’s not going to be as predictable” (03:39). Unlike enterprise platforms with rigid roadmaps and stability as paramount, consumer platforms prioritize rapid innovation to cater to dynamic user needs.
From its inception, Discord was designed to be highly extensible. Justin emphasized that this philosophy was integral from day one, with founders Jason and Stan intending for the platform to be open to diverse extensions.
“There’s just a whole slew of developers that were already there, building … chatbots, slash commands… It was built like that from the beginning” (02:00).
This openness has fostered a community where creativity thrives, allowing developers to build unique and sometimes whimsical applications that enhance the user experience. Justin highlighted the essence of this approach: “We can’t predict what people are going to build… it makes it something that your community can shape itself” (28:18).
One of Justin’s initial projects involved transitioning Discord’s chatbot functionality to a more secure and scalable system using slash commands. Originally, chatbots operated by listening to every message, which posed scalability and privacy challenges.
Justin explained, “We wanted users that are using these bots day in and day out to be able to do most of the same things… helping the team through that” (09:08). The shift to slash commands required thoughtful planning to maintain feature parity while enhancing security and user experience.
A significant focus of Justin’s role has been developing Discord’s Activities platform, which allows users to engage in embedded games and activities directly within the app. These activities are essentially HTML5 and JavaScript games embedded via iframes, providing a seamless and secure experience.
Development Process and Challenges:
Developers can monetize their embedded games through Premium Apps, which support in-app purchases and subscriptions. Discord handles payment processing, allowing developers to focus on creating engaging experiences.
Justin highlighted, “You can build a standalone HTML5 JavaScript game, add the social layer in with Discord, and then go through some lightweight steps to publish it” (15:47). Additionally, he addressed scaling challenges, especially when games gain sudden popularity. Discord provides tools for gradual rollouts and partnerships to manage such spikes effectively.
Discord’s platform has democratized game development by lowering technical barriers and providing built-in social infrastructure. This has empowered both mainstream and niche developers to create and distribute games effortlessly.
Justin observed, “We attract all of these communities of interest and we help people that are passionate about niche things find each other and build their communities up” (27:11). Examples include specialized apps like a turnip economy bot and custom games tailored to specific interests, showcasing the platform’s flexibility.
Generative AI has been influencing Discord’s platform, with applications like Midjourney leveraging Discord for viral growth and community engagement. Justin noted, “Discord helps people share, build off of each other’s ideas and kind of be creative in a group setting” (31:11).
Looking ahead, Justin and his team aim to further enhance the Activities platform by deepening partnerships with web game frameworks and expanding the social features within games. This includes providing more integrated communication tools and ensuring that embedded games offer native-like experiences.
Discord’s backend is built on a robust architecture leveraging technologies like Elixir on the BEAM VM for high-throughput messaging, Python for API layers, and Rust for performance-critical components. Justin explained, “For the core communication, the pieces that are really interesting are in Elixir running on the Beam vm… For performance needy parts, we do a fair bit of Rust” (36:24).
This diverse tech stack ensures that Discord can handle its massive user base and the intricate demands of embedded applications.
Justin Beckwith emphasized that Discord’s success lies in its social-centric approach and its unwavering commitment to extensibility. By enabling developers to build within a dynamic and engaged community, Discord fosters innovative and meaningful user experiences.
He concluded, “If people take anything away from this, it’s about integrating into that social layer… how you can build experiences that take advantage of that connection” (40:45).
Notable Quotes:
This comprehensive summary captures the essence of Justin Beckwith’s discussion on engineering at Discord, highlighting the platform’s developer ecosystem, challenges, innovations, and future aspirations. Whether you're a developer, gamer, or tech enthusiast, this episode offers valuable insights into how Discord continues to evolve as a premier communication and gaming platform.