The Changelog: Software Development, Open Source - Leading and building Raycast (Interview)

Episode Date: April 17, 2024

This week Adam is joined by Thomas Paul Mann, Co-founder and CEO of Raycast, to discuss being productive on a Mac, going beyond their free tier, the extensions built by the community, the Raycast Stor...e, how they're executing on Raycast AI chat which aims to be a single interface to many LLMs. Raycast has gone beyond being an extendable launcher -- they've gone full-on productivity mode with access to AI paving the way of their future.

Transcript
Discussion (0)
Starting point is 00:00:00 What's up friends, welcome back. This is the changelog. We feature the hackers, the leaders, and the innovators driving the future of software. I'm Adam Stachowiak, editor-in-Chief here at ChangeLog. Today, I'm talking to Thomas Paul Mann, co-founder and CEO of Raycast. We discuss what it means to be productive on a Mac, going beyond their free tier, the extensions built by the community for Raycast and the future of the Raycast store, how they're executing on Raycast AI chat, which aims to be a single interface to many LLMs, and how they've gone beyond being an application launcher
Starting point is 00:00:52 to full-on productivity mode with access to AI paving the way of their future. A massive thank you to our friends at fly.io for being the home of changelog.com. We launch our apps near users because Fly transforms containers into micro VMs for us that run on their hardware in 30 plus regions on six continents. It is too easy. You can do it too. Launch an app for free at fly.io. Our friends at Fire Hydrant offer modern engineering teams less stress from ring to retro,
Starting point is 00:01:33 full end-to-end incident management, alerting, on-call, and of course, streamlining every aspect of your incident process. From webhook to alert trigger to notifications to incidents open to retro task to meantime to X analytics. Everything is inside FireHydrant for modern engineering teams. And what you're about to hear are real reactions from PagerDuty users when seeing signals from FireHydrant for the first time. PagerDuty, I don't want to say they're evil, but they're an evil that we've had to maintain. I know all of our engineering teams, as well as myself,
Starting point is 00:02:11 are interested in getting this moving the correct direction. As right now, just managing and maintaining our user seats has become problematic. That's really good, actually. This is a consistent problem for us and teams, is that covering these sorts of ad hoc time frames is is very difficult um you know putting in like overrides and specific days and different new ships is is quite onerous oh and you did the most important piece which is didn't tie them together because that's half the problem with pager duty right is i get all these alerts and then I get an incident per alert.
Starting point is 00:02:47 And generally speaking, when you go sideways, you get lots of alerts because lots of things are broken, but you only have one incident. Yeah, I'm super impressed with that because being able to assign to different teams is an issue for us because like the one alert fires for one team and then it seems like to have to bounce around and it never does which then means that we have tons of communication issues because like people aren't updated no I mean to be open and honest when can we switch okay the next step is to go to firehydrant.com slash signals assemble the team and work the problem without a single swivel of the chair fire hydrant.com slash signals, assemble the team, and work the problem without a single swivel of the chair. Fire Hydrant delivers end-to-end incident management and on-call
Starting point is 00:03:30 alerting for the modern software teams. Get started for free. Once again, firehydrant.com slash signals. Well, Thomas, one of my favorite tools to use is Raycast. I don't know if you know this, but what do you think about that? I like it. Yeah? Do you like Raycast? Do you use Raycast? I do like it a bit. I use it also every now and then. So, yeah, I'm quite familiar with the tool. Does it get old, like, building and using the tool? How do you separate avid user, happy user, to
Starting point is 00:04:28 co-founder of the company, leading the team, etc.? I think I don't separate it. I think since day one, everybody works at Raycost builds for themselves, which is one of our
Starting point is 00:04:44 secret superpowers. We build a tool we want to have, so we can be quite opinionated about it, because we build it for ourself. And then luckily, there are enough people like us out there that enjoy exactly the same tool. And it's not that we're not listening to the others. We have a huge community that bombarding us with feedback all the time, but we're surrounding us with this feedback and build for ourselves.
Starting point is 00:05:08 So we'll never miss that. Even so, I'm technically the CEO of the company. I'm still a user, and this is how I build a tool. Technically the CEO. Okay. Well, I love Raycast. I forget what I used before. I think you used
Starting point is 00:05:24 Launchpad before and several others over the years. And there's always been some sort of launcher for Mac computers. Now Mac OS. It was OS X back in the day. Now it's Mac OS. I almost said some other operating system name. There's always been some sort of launcher for it. And I think that I wonder what makes a launcher important for any user especially like
Starting point is 00:05:47 a productive user I feel like launchers are the are for the the few you know they're not really for the many and maybe that makes you sad in a way and maybe you sort of want to expand that to many but I feel like not everybody wants to use a launcher or feels they need to they just like clutter their bar down there whatever that that bar is at the bottom of a Mac. I forget what it's called. The dock. The dock. Yeah, okay, thank you.
Starting point is 00:06:12 The dock. They just clutter their dock with all these icons. They're all like tiny. And they sometimes even like keep the dock present, not hidden, which I like hide my dock, obviously. I'm a Raycast user user so Raycast users like hide everything they keep it away and they conjure it whenever they want to what do you think it is that makes this particular platform because I don't think it's very popular on Windows I could be wrong I'm not a Windows user but what do you think it makes a launcher that Raycast represents and
Starting point is 00:06:40 now you've expanded to AI and more things, of course, more tooling and extensions, but just simply an application launcher. What makes that popular on the Mac platform? Yeah, it's a good question. First of all, it's been around forever, right? So I think the oldest one of them is called Quicksilver. Some of your listeners are probably still familiar with it. Love Quicksilver. Yeah, it's like the OG OG basically. I think they're really one of the first ones to make popular. And then Launchpad and Allthread came around. They basically took this to a next level. And then actually Spotlight came afterwards, which is like the fact that many people know. So Spotlight came afterwards. And I think Spotlight
Starting point is 00:07:19 really sort of commercialized it, right? So when Apple builds something and it becomes part of the OS, it's sort of like mainstream. But then I know people that haven't used things like a launcher and spotlight before, because it's like, if you don't know it exists, it's not really visible on your computer, right? There's no, well, there's a little button you can click, but it's not very obvious. But then when you experience for the first time, it's just really make a click, like, hey, I want to launch an app. I type in the app name, I press return. Hey, I want to search a file.
Starting point is 00:07:54 I do exactly the same. Hey, I even can do calculations. Hey, can I check the weather? And you kind of go on this wondering what you can do with it. And after a few use cases, it becomes muscle memory. And I think it's all about the muscle memory with those interface that are ephemeral, they come and go as fast as possible. And you're actually optimizing for as little time spent in the tool, which is very counterintuitive to a lot of other software. But this is actually what for
Starting point is 00:08:22 me the perfect laundry does. You have something like an intent in your mind and you want to perform this as quick as possible. And this can be as little as launching an app, which you probably do like dozens or hundreds of times a day, but it can also be a bit bigger. Maybe you're interacting with other third-party tools, creating some issues, checking a pull request status, and so on and so forth.
Starting point is 00:08:48 But this is what we felt like, hey, this interface is super powerful because it's so simple. And you learn this interface once, and then you can apply it to endless other things. I think that's what you've done too, because I've expanded to QuickKeys to center my windows,
Starting point is 00:09:05 to maximize certain windows. I've created snippets. I love the snippets feature. I've got several in there. I've got shortcuts to certain folders that I go to or directories I go to frequently on my Mac, downloads, screenshots. Those are two I don't want to navigate to. Everything else I don't mind navigating to personally
Starting point is 00:09:25 because I kind of have my finder default to like my most important place to go to. So from there, I don't mind navigating around. But those are like two different folders. I'm like, I just want to go to downloads or I want to go to screenshots because I want to share this thing quickly. I don't want to have to go find where screenshots is, etc.
Starting point is 00:09:41 I think that's been fun for me, like exploring unique ways to use a launch bar. Obviously applications has been key. I haven't done much addition or multiplication or any sort of math type activities. I don't really use your AI feature a ton. I am a pro user. I mainly came for pro to sync my settings and I did not stay for AI. I'm hoping at some point AI gets better and maybe I'll upgrade to that. But I just go to chatgpt.com or whatever the URL is for it and go there. I don't understand why I would want to go somewhere else, but maybe you can help me understand like what is the lure for folks
Starting point is 00:10:19 expanding beyond application launching? What is it that makes people go and do what I've done, which is snippets and shortcuts and AI, et cetera? Yeah. So I started with, like, we're building the tool for ourselves, right? And this is, like, how many of those features are in Raycast. So pick the window management commands that you just mentioned. Like, I personally remember a few hotkeys to do a window on the left and then to the right. But then sometimes you have these other positions and you don't really remember hotkeys.
Starting point is 00:10:48 I can't remember many of those. So that's like, oh, wait a second. Like instead of remembering all these hotkeys, maybe I can just build all these commands in Raycos and I can just search them. So I did that. And then this like turned out, hey, other people like that as well because it's much more accessible. So we added this. Then it's like, oh, we oftentimes open directories and our favorite directories are websites.
Starting point is 00:11:13 So we added quick links, like a quick way to open something. And it's like a lot of those features that you see nowadays, they basically came out of our own problems initially before we opened up Raycost with our API to other people, extend the functionality, then it's not just about our own problems, but the problems of thousands of developers that are willing to put in the effort to automate those little paper cuts throughout the day, essentially. So I think that's the first thing that people, as soon as they understand the system, it's like, oh, I can extend it and can make it my own. There's a lot around personalization.
Starting point is 00:11:50 You mentioned something that you use. We have this YouTube video series, which is called What's in My Raycast, where we interview Raycast users, and all of them use Raycast very differently, which I think is the fun thing. It's one tool, but you can use it in very, very different ways. And some people discover features after they've been a user for several months or years, which is kind of crazy. So it's super feature rich, and you probably do a pretty bad job explaining all these features, but you also don't want to overwhelm a person like, hey, these are the literal thousand things you can do. So it's like almost like a bit of a game, like a video game.
Starting point is 00:12:27 Like you start doing a few little things and then you stumble up across something and it's like, oh, this is cool. And you pick a new feature that you adopt for your toolbox and you go forward. So I think all of those things kind of come together.
Starting point is 00:12:42 But coming to AI, it's like basically the same principle. So when I think about modern software in general, when I work and want to be very focused, I want to stay most likely in one tour where I do my job. This can be my IDE to write code. This can be Notion or another editor to write my content or whatever I'm doing. And then whenever I need to switch that, there is a context switching involved. And this usually oftentimes ends up with you ending up somewhere else. You want to go, for example, to ChatGPT, but then you're in the browser, you see your old tab, which was Twitter.
Starting point is 00:13:20 You're going down a Twitter rabbit hole, and then you lose your thought, right? So with Regus, we're sort of inversing that we want to keep you in the flow we want to make sure that you can do your work you can open Raycast and do as many things out of there as possible that you don't need to go somewhere else this is what we see many people use
Starting point is 00:13:38 Raycast AI for either way they open Raycast and ask a quick question get the answer carry on which I do dozens of times during interviews for, when terms come up that I don't know. I just like, come on, space, what is X, Y, Z, get the answer. Okay, cool. Now I know a bit more. Or people using during coding and other things with an AI chat on the side and can just see, have sort of their assistant where they can ask questions
Starting point is 00:14:03 as they work through a problem and have that just sitting right next to the tool they used to. So you don't need to open up a new tab, it's just always with you wherever you work across any Mac application. I love that as you were describing your use case and how you use it, especially the AI part of it, is I find how do I get there to be the most hard thing, I suppose. But you've made it pretty easy by just making it the common way you get to the launcher, which is, or the prompt, I'm not sure what you would call the main window of Raycast,
Starting point is 00:14:36 but command space gets you there and then tag gets you to an AI prompt, essentially. And I'm assuming you sort of honor any sort of rules where I've set a different LLM as my default or if I've got turbo maximized or minimized or whatever the options are there. That's pretty good that it's that close away. Even if it's 3.5, does everybody get access to 3.5? Is that anybody who goes right now and downloads Raycast gets that? Yeah, no, we have like the free tier gets all the features that we had before, which
Starting point is 00:15:13 was always our idea. We want to give away a tool for free. With the AI features we have, they're part of the pro plan. So if you subscribe, you get this. So you get cloud synchronization that you use, you get AI, you get custom themes and a few other bits and pieces. And then when you want to have one of those more advanced models,
Starting point is 00:15:32 for example, GPT-4 or Cloud 3 Opus from Anthropic, then you have like a higher price tier for individuals, more or less to basically cover the costs of AI in a way. Yeah. I guess I've been taking my free ChatGPT 3.5 for granted because I just haven't even been using it at all, really. Exactly. Maybe I should change that.
Starting point is 00:15:54 Well, how did you get here even? I mean, I totally understand where the use case is because I'm a user, obviously. But how did you even get to building Raycast itself? What was the journey to this tool? Why this tool? What got you excited about it? How did you even get to building Raycast itself? What was the journey to this tool? Why this tool? What got you excited about it? How did you even get here?
Starting point is 00:16:09 Yeah, definitely. So we started back in 2020. So Peter and me, both engineers, we worked together at Facebook before. And we thought like there are so many tools you have to deal every day with. And this felt somehow counterintuitive because we felt a lot of the tools that we use there are not really optimized for the workflows we have. So oftentimes you want to quickly check, I don't know, analytics
Starting point is 00:16:35 or like a feature flag, what's the status of this? And for that, you need to open a browser, navigate to the page, find the right thing. And it's like, oh, this feels so cumbersome. And we were always really keen about productivity. And at some point we saw like, let's figure out a way how to make this better. There must be one, right? And this was a time when I think command palettes became hip again.
Starting point is 00:17:00 As developers, we know them for years. You know them from supply, from VS Code nowadays, but in other apps, they weren't really common. So apps like Linear and Superhuman, and even I think Notion back in the days, they were sort of the first tools that made them a bit more, yeah, commercialized or mainstream.
Starting point is 00:17:20 And we thought like, hey, the best one would probably be when we have this one, just globally, like it sits on top of everything. And so we started basically building that. Pretty quickly, we realized like you need to cover all the basics that Spotlight does because you will only have one of those interfaces running on your Mac. You will not have different hotkeys for launching different launchers. You want to have one that does everything for you. So we basically knew, okay, we need
Starting point is 00:17:46 to cover all the basics of Spotlight and then we can start building on top of that to do the other things. This was back in the days when we were at YC, so we were part of the Winter 2020 batch. This was basically, we started the batch with let's build this. So it was
Starting point is 00:18:01 like three months of intense building. Peter and I flew to San Francisco, stayed in Mountain View, and it was 24-7 just like, okay, you wake up at 8 a.m., then you build until you basically fall asleep, and then you do the same thing again, which was probably the most productive time in my life because you had no obligations whatsoever, which was really fun. And we then quickly realized, hey, like when we were chatting to other engineers of the
Starting point is 00:18:29 YC network, they were all using Jira and they wanted to have a quicker way to access this exactly for the reasons I mentioned. Like they have a quick bug report and they would need to open the browser, navigate to Jira, press the create issue button, blah, blah, blah. We've been there, right? So the first extension that we built that was sort of outside of the classic spotlight scope was essentially Jira. And then we went to the engineers we talked to and gave it to them and did like a sort of a manual onboarding.
Starting point is 00:18:59 So where I was hopping on a video call with them, was walking them through. Everything broke, obviously, because this was like building things very quickly to validate the ideas. And then we were fixing it behind the scenes and onboard the next person and sort of worked ourselves towards like, okay, this works. And then we saw people were sticking with it and were using it on a daily basis. And then we quickly had a few engineers and companies like Airbnb, Lyft, you name it. And it's like, okay, there is something here.
Starting point is 00:19:31 And that sort of gave us the confidence of going after this. As you mentioned, quite niche interface, right? There is almost no other company doing that anymore. It might be gets a bit more popular now with AI where people want to come back to the desktop, but pure desktop software and this special form factor is not really like that many companies going after that, right?
Starting point is 00:19:53 Everything sort of moved to the web. So it's almost counterintuitive what we do in going for the operating system essentially. And even if you look at your manifesto, which I do want to touch on, I suppose we'll weave it in as necessary, but when you say we write native code, I think even when you think about building a business around this tool, it's just that you went the native route to make it as fast as possible, use the least amount of resources as possible,
Starting point is 00:20:32 to be really as Apple native as possible without being an actual application written by Apple. And you're also competing with Spotlight, which is pretty fast and does have a lot of features. I find myself disabling a lot of it because I don't really need a lot of it. And I find myself just not really, obviously using Raycast, not using Spotlight really at all, having zero need for it.
Starting point is 00:20:54 And so you kind of have doubled resources if you don't go and disable manually some of the things that happen for Spotlight. Now there's some Finder search features you got to keep enabled because I do find myself command-f-ing in Finder and searching for certain things in directories, and that's very helpful.
Starting point is 00:21:11 Other than actually Spotlight as a search for files, I don't find it very useful, obviously, because I'm a Recast user, so it's kind of obvious. Yeah, so I think this is what I meant. If you know, you can treat this differently. You can say you build a tool for people that haven't used Spotlight, right? And then you kind of bring them on. But we were in the camp like, hey, the people we target, which is sort of, again, we build for ourselves. So engineers, technical people, they know Spotlight, right? So we take this as a
Starting point is 00:21:45 granted and say, okay, they know Spotlight, you kind of need to replace that first. And if you have that, then you can move forward. So there is the question, how do you replace it? One is you make the existing features better, right? So the typical 10x better than people switch kind of stuff, or you add more features. And I think we did a good mix of both. We took the features that Spotlight has and we're making them better for our use cases. We have a more reliable search for apps.
Starting point is 00:22:17 We made it faster than Spotlight. And that is sort of the table stakes. And then we added new features with simple ones like window management, with clipboard history, with other features that basically many of our users have utilitarian software for. becomes basically even more sticky because you enjoy it more, you can use it more often. So we added more of those little features over time. And then it can pile up to something really, really big because you have so many things to do every day. And we see users using it hundreds of times a day. The usage we have is crazy, which we also see in our analytics bill.
Starting point is 00:23:02 Yeah, I'm sure you do. I suppose since you mentioned that, analytics, let's also touch on the other manifesto, which is privacy, which I thought was pretty cool. And just because you mentioned analytics, why I mention this, because I didn't notice this until I was preparing for this conversation, to sort of revisit your manifesto and what you declare.
Starting point is 00:23:21 And you've got four points. You say we respect your privacy, we build a business, we write native code, and we grow a community. And so the one I think that's important when you talk about analytics is like how are you tracking your users? Because you give this, you know,
Starting point is 00:23:34 the large majority of the usefulness that is Raycast for replacing Spotlight, for example, as you mentioned before, as the default. And then some, of course, with extensions. But the default Raycast that's out there that's non-pro, non-paid, is quite liberal in terms of its use.
Starting point is 00:23:50 Like it's free. Anybody that's listening to this can go and check it out, download that. And then I think the next question is, okay, great, now you've got this free tool in the hands of a lot of people attempting to adopt this tool and potentially become a paid user on a team or an individual or whatever.
Starting point is 00:24:08 But then you think, well, how are you tracking those people? So I guess I'll just let you speak for yourself versus me read your manifesto. Are you tracking folks? Yeah. So first thing that happened, we onboarded the first people, and we had to typically like, hey, you need to log in for this app to use it. And then literally, I think the first person
Starting point is 00:24:29 said like, why the heck do I need to log in? And it's like, that's a valid question. Technically, you don't. There is nothing which requires you to log in, which we said like, yeah, if we get this feedback that early, we maybe should revisit that. So we stripped away all the login bullshit and said, hey, if you can use the tool without a login that is technically
Starting point is 00:24:51 required, let's do it. It's the least friction you have when we want to have people downloading and just using it. So we removed that. So you can still to this day, you download Raycast, you use the app, and then you find yourself you didn't need to log in. We only require login when it's technically required. So when you don't have people logged in, there is a question like, what can you actually track? So the second question we ask ourselves, what are we actually interested in? We very much build by intuition.
Starting point is 00:25:21 We want to see and connect with people what we want to build. And so early on the most important metric we want to have, we just want to know how many users use Raycast on a daily basis. It's a tool you use every day, so we want to just know how many daily active users we have. And we say, for us, it's not important who this person is. If it's a daily active user, that's all we care about. So our analytics is completely anonymous. We don't know who this person is that we track. We have very little product metrics. We're still to this day, mostly caring about daily active users. And so now that we also have revenue, you obviously have a bit of different mechanisms there. With revenue, that's for the
Starting point is 00:26:02 business, which is also in our manifesto, we wanted to mention early on that this is something we want to build a business about. We want to be transparent around this. With revenue, you obviously have other ways to measure, but then what really matters is like, okay, how many paid users you have? Do they stay with you? Does the revenue grow? For all of that, we don't need to know the individual person. We just want to make sure that we know the data. And for the product metrics, it's most important for us to know how we can improve the tool. Like, do people use this feature?
Starting point is 00:26:36 Yes or no? Should we remove the feature? Is it heavily used? How heavily is it used? What are the top features we have? So we have those things and then can work with our intuition and with all the feedback we're receiving to actually form our roadmap. So we're not really like a super data-driven company, at least for now. And rather
Starting point is 00:26:57 we want to have lightweight touch points that be going in the right direction. So I see analytics as something like, are you doing the right things? Are you going in the right direction, right? So I see analytics as something like, are you doing the right things? Are you going in the right direction? Do the things work actually? And for that, we think like privacy is a big topic because we want to make sure that people can use us and are confident with us using them. How do you then talk to users?
Starting point is 00:27:21 If you don't collect a lot of data, how then do you keep a touch point to real people in what ways i think we have we have three ways like one we have an in-app feedback mechanism so you type in send feedback in ray cost sends an email to us we answer every email we get every feedback we get you will hear from us um even though that sometimes is the answer is like, yeah, thanks for the feedback. We're not building it. Even that is a single valid answer because it's transparency. So this is the first way, which is heavily used. All this feedback we collect throughout the day and send a daily digest in the morning to the entire team so everybody can stay on top of things.
Starting point is 00:28:04 And the interesting piece there is that everybody surrounds themselves constantly with feedback. When they work on features, they can extract the information they need for their features, and then can bring that into their daily decisions. That's one loop that we have. The other one we have is we have almost 20,000 people in a Slack community. So if you go to ragos.com slash community, you can come and join us in the community. We're basically constantly chatting there. People are asking us questions. We're answering.
Starting point is 00:28:37 It's a direct way to reach out to us. So you can literally DM the entire team. Please don't do. Then lastly, the other one is just Twitter. So we tweet everything we built. We oftentimes try to share how we build something or why we build it and trying to be transparent because at the heart, we are builders, right? We do this stuff because we love building the product and we want to share why we're doing certain things. And then also people are equally excited about us and reach out to us on Twitter with questions, opinions, ideas, and we love seeing all of that. At the moment, there is a lot of designers poking around with concepts for Raycast for iOS, which is something we started working on. So it's extremely cool to see
Starting point is 00:29:21 just people on the internet exploring ideas, how a Rikers could work on iOS, which is something we're exploring ourselves. But it's like really nice to see that people think alike or think creatively outside of the box. I guess the real nugget there is how do you, you know, how do you gather the right kind of information to lead, right? You can have a Slack community, you can have analytics, you can have more or less data from application that's just garnered naturally. I think ultimately
Starting point is 00:29:51 what you want to know is, are you building the right kind of thing, right? How do you feel you're doing on that? If you're grading yourself, if you're the teacher of yourself, so to speak, and you're giving yourself a grade, how do you feel you're doing in terms of meeting what your personal desires are, I suppose, because you said you all lead by what you want to build, but at the same time, you are a business and you're growing it. How do you feel you're doing on the scale of building the right thing or not? Yeah, it's a good question. I think, first of all, you need to define what is good and where you want to go, right? So I think that's the first that you kind of need to think about. Generally with sort of what we build, the company and the business and everything, we obviously want to
Starting point is 00:30:37 get more users, we want to make more revenue in broad strokes. But then interestingly, revenue is more the outcome, right? So revenue is actually the verifier if you're doing well. And even if you don't have revenue, which we didn't have for a long time, you growing user base is the outcome if you're doing well. So this is for us, like early on, it was like clear, like, hey, if our user base grows, we're doing something well because people enjoy using the tool. People stick with the tool. People recommend it to other people. All of those things basically leading towards your user base growth. So I think that's the best indicator and it's a very easy indicator to get right.
Starting point is 00:31:23 So you don't need much to get this information. And then you can think about, okay, when this is the outcome, what are actually variables to move this, right? There is one thing, you can build more features, sure. The other thing is like you can talk more or better about it, which is I think sometimes, especially with early stage companies, undervalued. Because oftentimes it is not about having more features.
Starting point is 00:31:48 It may be presenting it better or building more of a brand around your product, which we, I think, early on sort of picked up. We always were very keen about design in general and how we talk about a brand and really thought about it as a brand and a sort of a movement. Like, hey, we are here to give you time back to make you more productive, to keep you in the flow. And for that, we love oftentimes true inspirations outside of tech, like looking into brands
Starting point is 00:32:22 that actually advertise and how they do it and how they build, how they basically get people excited about this. So I think that's one of the things that over the years, like we're now four years in, which is kind of crazy when I think back, but over the time, as we got better and better, we obviously not at the end set of it. There's always something you can do better. But I think we understand more what people are interested in, what we're interested in, what we're good at, what we're not so good at, and how we want to distinguish ourselves. And I think it's a constant evolution. You figure something out and then you get better and better and better. I'm a huge fan of compound effect. Every tweet you put out, every release you do, every bug fix you do, every podcast appearance you do, all of those little things, when you're
Starting point is 00:33:14 looking at that isolated, yeah, they don't move much. But when you release every two weeks, when you tweet multiple times a week, when you do more of those things, those things will make a difference. But it's sometimes very, very hard to be consistent around that and have this momentum, which is oftentimes where we really strike when we have this momentum and you see just how the entire team, community gets really passionate, excited about it. That's the best times. But it's so hard getting into this state
Starting point is 00:33:46 and it's so easy getting out of this state. And I think we all have experienced this in one or the other way. Absolutely. How big is the team nowadays? Like how hard is it to keep X number of people motivated? Yeah, so this is also something that changed quite rapidly.
Starting point is 00:34:01 So we obviously started 2020, just the two of us. I think we ended 2020 with five. Then we went up to 10. And so nowadays, since this week, we're 27. So the team grew by quite a lot. I oftentimes describe the team as one product team. Like we have basically a majority of people are engineers and designers.
Starting point is 00:34:25 And we're a very highly product-driven company. So basically all our efforts go into product. Since recently, we have a team called Hype, which is a mix of a marketing and growth team. So they, the first team we found ourselves inside of Rakos, which doesn't actively build a product, but they talk about a product, but they talk about a product, which was something which was always a bit of a shared responsibility. But over time we figured out this is so crucial to the success that we wanted to have, that we talk about a product. So Petro is leading that.
Starting point is 00:34:59 You might have seen it on YouTube. YouTube became a big part of the strategy. And how do you keep all these people motivated? I think it's just like, go forward and keep this momentum. As soon as you move, it doesn't matter how big the company is, if there is movement. As soon as the movement slows down, and with bigger companies, it's obviously easier because it's just a bigger mass to move. But as soon as it slows down, I feel like it sometimes loses the culture of like, oh, how quickly we can get this out? Or can we ship it next week? Well, like today,
Starting point is 00:35:37 fixing a bug right after we released and the hotfix, all of those little things build this really culture of like, like hey we want to just keep doing keep building keep moving things forward and it's like you need to keep the urgency
Starting point is 00:35:51 no matter how big the team is. I think as soon as the urgency goes away everything like becomes a bit harder to do. How does it
Starting point is 00:36:00 what's a practical way of keeping the urgency? Is it a must ship by Friday? Is it, you know, like you said, every two weeks we're releasing? Like how do you maintain a level of urgency? Yeah, so we ship every two weeks. So therefore, we also want to highlight a feature every two weeks. So we have, if you look in our change log, you see basically there's always one highlighted feature,
Starting point is 00:36:23 which is something very visual. And so we need to have something every two weeks so there is a bit of planning involved where we say okay we have oftentimes many projects in parallel and with projects we never really know when they're finished right and so we start a project and then over time they get to the finish line and then we usually say, okay, which release can we target? So at some point, we have sort of, hey, we're targeting this release, and then we work to with stat.
Starting point is 00:36:52 And then the team can basically say, okay, there are things we're not shipping in the release, and we reduce the scope, or we make sure to make the cut. And so with that, I think you always have this thinking like, okay, what do we release this week? What do we release in two weeks? What do we release end of the month? And if you do this long enough, everybody kind of gets into the thinking. That's one of the things that we do, which works quite well for us, this thing was a bit longer. And that's fine. But I think that's one of the things. The other thing we have is we are using all Raycast. So we experiment all the features ourselves. We have like nightly builds. So every day you have a new version of Raycast.
Starting point is 00:37:37 So even though some features come out later, we're testing them internally for a while, which is also like if you see something always coming in into the tool every day, it's kind of nice, and you see like, oh, there is progress. Well, I got to say, as a user of Raycast, I don't see that momentum. Okay. And I don't mean that negatively.
Starting point is 00:37:56 And I mean that like now that you've got this hype team, Pedro's doing a great job. I love the work he's doing. I think the work that's happening on YouTube is spot on. Like whatever you're doing there, keep doing it, double down, especially if it's moving the needle and you're measuring it. And what I mean by I don't see it is not that I don't see a great tool to use, is that I'm not seeing behind the scenes or even some sort of middle scene. Like the blog isn't very frequent. I don't know where to check as a user to pay attention to the
Starting point is 00:38:24 activity of the focus, as you said, on product, the focus on momentum, the urgency. You're saying that, but I'd like to see a way for you to bring that out into the world. And so which, as a diehard fan of Raycast and somebody who wants to pay attention to the needle moving, how can I do that? In what ways can I do that? Yeah, I think the easiest is just Twitter. That's where we're most active. That's where we always tweet something. That's where we put out the change log, the visual stuff. But it's quite interesting what you mentioned. I can see that sometimes we're too much focused into the building, where some things we might be not sharing and we're basically too
Starting point is 00:39:05 dedicated to that but like the easiest one is like going on on twitter i think that's where most of the information gets into with youtube what we're doing nowadays we find ourselves we not always need to release something new to talk about something right like as you mentioned earlier there's so many features in there so there might be things that we can just use straight away and talk about it. And we have already in the product so that we don't really need to build something new to talk about it. Well, CloudFlyers Developer Week is over, but there is so much to cover from that week. And I'm here to give you a roundup, so here we go. Their fully distributed serverless database, D1, went GA. It now supports 10 gigabytes of data and they added new exporting solutions and insight tools.
Starting point is 00:40:10 Hyperdrive, which accelerates your Postgres and MySQL databases, also went GA. You know that monthly workers paid plan they offer? How much does that cost? $5? Yeah, $5. And how much does it cost to completely speed up your database operations using Hyperdrive? Zero. Yeah, $0.
Starting point is 00:40:27 With Qs, you can now send and acknowledge messages from any htp client they also added the ability to add delays yes they added delays workers analytics engine which provides analytics at scale flip the ga switch to they launched a brand new ai playground that lets you explore all the hosted models on workers AI which by the way also went GA that's right production grade global AI inference that you don't need to deploy all available seamlessly in workers or directly from a REST API call
Starting point is 00:40:57 they also announced a partnership with Hugging Face so you can now quickly deploy an app using these models and fine tunes are, y'all. That's right. They offer LoRa support. Upload your FineTunes from Wrangler and apply them to their most popular LLMs. There are so many ways for you to build with AI using Cloudflare. It's awesome.
Starting point is 00:41:17 And Cloudflare doesn't support Python? Wrong. They do now. Python Workers is here. From the same command using Wrangler, you can now launch a worker that can fast API, langchain, numpy, and more. R2 got event notifications.
Starting point is 00:41:36 You can get notified now when an object is created, changed, or deleted, and handle that event in your worker. And who says you can't spell SDK without SDK? Craig did. And that means they have new SDKs for you to use, TypeScript, Go, and Python. And that is just a few announcements from Cloudflare's Developer Week. Check it all out for yourself at cloudflare.com slash developerweek.
Starting point is 00:42:15 Once again, cloudflare.com slash developer week. So what I did notice is that you have a very nice change log. And I think that linear popularized beautiful change logs like this. And I think you may have followed their lead. I think you have friends there at Linear. And so I guess that's one way too is what's on Twitter. Now, I'm not against Twitter, actually X by any means, but I'm not on there anymore like I was before to follow a brand's updates, let's just say. And so I feel like what you've done here with the change load is pretty cool. However, I got to go to
Starting point is 00:42:48 it versus it come to me or for it to find me to tell me all the cool things you're doing. So that's where I want to find the gap. What do you think about that? Yeah, no, this is a good point. I think it gets harder and harder reaching people nowadays because it's so fragmented, right?
Starting point is 00:43:04 So you mentioned like Twitter or X, there's Mastodon, Threads, whatever. So everybody checks something different. We've been on X or Twitter since the beginning, so we have quite a substantial followership there. This is like sort of still our
Starting point is 00:43:20 maturity where we communicate with people, but we try to fragment that a bit. So we branched out to YouTube as we chatted about. This is like we talk about releases, but also more about other content, just like about features that we have or like how
Starting point is 00:43:35 to use Raycodes or interview other people how they use Raycodes. So it's not just about the product announcements. We're trying to revamp our blog at the moment, even though that's the thing where you also need to go with RSS and this kind of stuff. It's a bit easier for people to stay on top of.
Starting point is 00:43:52 And what we're doing now is also revamping our email newsletter. This one is quite interesting. I think we found something quite cool there. We don't want to spam people, right? Nobody likes a full inbox. So we're doing this just once a month. And it's more of like a recap, like, hey, what happened at Raycast during the month?
Starting point is 00:44:10 We mentioned what we released, we mentioned new people joined, we mentioned anything else that popped up. And at the end, we have like this fun category, which is called team picks. So it's just like everybody in the team, like sometimes experience something new. They may buy something or they do this or that. So we just share from our personal life essentially things like sometimes share which board game somebody played recently or stuff like that. Make it a bit more human and not just about, hey, here's all the new stuff, which can become a bit boring. This might be a challenge, I think, for everybody, is how do you have an active connection, right, to your audience who wants to lurk slash listen frequently? And I think that an active blog is one way.
Starting point is 00:44:55 I think an active blog that isn't robotic like a brand blog, but more of like a branded, personal, natured written blog. You know, it's written by a person. It's not Raycast, the brand, and it's just like. It's written by a person. It's not Raycast, their brand. And it's just something that's a bit more connected. And then obviously, I think for me, now this is kind of going one layer deeper, but I just went to Twitter now.
Starting point is 00:45:16 It's actually called the Twitter app on macOS. Oddly enough, it's not the X app. It's the Twitter app. So that's why this constant ebb and flow of what is it actually called continues because nobody gets it. But when I go to my notification, this is what drives me away from Twitter slash X is that when I go to my notifications and this is not a Thomas problem or a Raycast problem. This is a, I think everybody problem. My notifications are no longer mine. Like the first one in here is Elon Musk posted something in my notifications are no longer mine like the first one in here is elon musk posted something in my notifications and then somebody named armin who i follow i'm sure maybe i don't
Starting point is 00:45:51 follow let me double check like it's these things that i'm not even i don't even follow this person they're in my notifications with this like star thing and dax and ricks and and kelsey hightower somebody i do pay attention to but not like this this. The Primogen, Christian Lempa, like other people are like all of my notifications. I find that Twitter now is just so noisy. Like I want to keep connected with people in a high signal, low noise ratioed way. And there really is no right way to do that. You can publish a newsletter. Maybe that's high signal.
Starting point is 00:46:22 I think that would be kind of cool. Maybe you can just convert your change log to newsletter or blog post, but that's more ways to sort of tap into people. I think what I, what I zoom out though and suggest or desire, especially as somebody who runs something and somebody who consumes things is I believe in the hub and spoke model where you're sort of hanging out with your best content based on what you just said on a spoke, not a hub. So you need a hub that's Raycast ran Raycast orchestrated a place where you can go and check out and just browse or subscribe to. And you push that stuff out to everywhere else as necessary. I think you need to go back
Starting point is 00:47:03 to that hub model where you have a spoke and a hub. And right now you're treating Twitter like the main place, but not everybody's there. So you're missing out. You're missing out on keeping me entertained, at least. That's true. Yeah, I think there's also I think there's generally a problem with all the social media bits
Starting point is 00:47:19 because it's very short-lived. So when you put out, let's say, a tweet today, it's forgotten about tomorrow, right? So this is why, for example, we experiment with YouTube because it has a much longer lifetime in a way. Similarly, blog posts and stuff, they can be resurfaced, they can be found again. This is a bit different.
Starting point is 00:47:41 I think there is like a general content change quite a lot. Also like the style of content. Video is much more prominent nowadays. It's when you especially have like a visual brand quite nicely because you have something to show and talk about. So I think this is also interesting whenever you think about a different tool. What medium do they use to showcase themselves? Can be quite different.
Starting point is 00:48:05 I don't imagine we'll solve your keeping connected problem here on the podcast, but I do want to mention it because I just, I do want to pay attention. And I think what is on your change level is mostly what I want to hear, but it doesn't feel like a guide through the bi-weekly cadence, so to speak, of this momentum hearkening back to, you know, the inception of this part of the conversation is, you know, how do you keep a team of X, you know, motivated, the urgency, and you're talking about release cycles of every two weeks. And as a daily active user of Raycast and a paying user, I just mentioned, I don't see it.
Starting point is 00:48:45 And I'd like to see, I'd like to find a way to see it in a way that doesn't change my app experience. You know, there's one application called Warp that I love. And I don't know if you know, if you use the terminal application called Warp on macOS. I love that application. I'm a big fan of them and their team. I'm not a fan of how loud it is when they have updates. It's very loud. I just want my terminal to be simple, minimalist, don't bother me.
Starting point is 00:49:11 You can tell me, but that is an example of what I would consider way too loud of telling me about your updates. Like, I don't need to know every tiny bug fix. I want to know about the important things, not the you think it's important things. There's this interesting thing right as soon as it's really a tool where you work in you don't want to be disrupted by any updates
Starting point is 00:49:31 or anything. So for that reason we actually build our own app updater that works in the background and just like hints you hey here's something new you might be interested but it all happens automatically and it's all pretty much in the background, so you don't need to care about that.
Starting point is 00:49:48 Because we think if it's a tool that you use constantly every day, you just don't want to be bothered updating, right? It's just like a thing of the past in a way. Subtle nudges. I like subtle nudges as an application user of change. I don't mind change. I don't mind even knowing there's an update. I don't even mind pausing my workflow
Starting point is 00:50:09 if it makes sense then to do it, but tell me in a subtle way, a color change, a small thing in the interface that is subtly different than it had been moments beforehand. As a matter of fact, you mentioned the email feature, the send feedback feature, and while we were here talking, I just quietly sent an email off to your team and said, hey, I'm podcasting right now with Thomas on the change log. Keep up the great work.
Starting point is 00:50:39 And then Daniel, I'm not sure you say his last name, say Cara, maybe engineering manager at Raycast respond, say hi to Thomas for me. And by the way, when you're done podcasting, please run the check for updates command to get Raycast's latest version 1.71.1. And, uh, and so I did that. I didn't even know there was a check for updates command. And I did that. So like I had, I'm a daily active user. There's a new update for Raycast and it's barely even telling me. And I think it's a positive thing. Cause I, I've never had to like pause and say, is my Raycast updated? It's just always been the Raycast I know and love. So I'm praising you for that subtle way of updating your application.
Starting point is 00:51:16 That's the way to do it. The way you're doing it is the right way. That's good to know. There was just one caveat. This is what Daniel mentioned to you. We had a bug in an earlier version, 1.69, which basically broke our app updates.
Starting point is 00:51:30 So now, we have a lot of users that are outdated and we sort of need to reach them somehow. Like, hey, Gleef, run check for updates to get all the latest. Oh, gosh. So, yeah, this happened literally. We figured it out this week when we recorded.
Starting point is 00:51:46 We spoke about it on Twitter today as well. One of those things that unfortunately happened was a simple copy-paste error in the code, which was missed. And so now we just, like, need to make sure that people get to the latest version. So, yeah, that's, like, check for updates. It's our life saver right now.
Starting point is 00:52:02 Wow. So do you have a large population of your user base that essentially can't be talked to because there's no updates? They can't get the update? Is that what's happening? So that's a tricky bit. So basically I mentioned that we're updating the app in the background and this happens automatically. So now what it is, the logic is broken
Starting point is 00:52:24 that it basically doesn't check for the update on 1.69 which means like we figured out a bug on 1.7 70 because we know when we ship a new version 50 of the users update and i think the first 24 hours or so so we extremely have a high adoption of like updates and so we noticed at some point like we're getting feature requests that we have fixed in the new version it's like something seems off and when we checked like oh like many people are still on the old version and so we figured out one and one so basically people can't update so they need to manually run it if you run it manually then it updates the app which is good but we need to tell people.
Starting point is 00:53:06 And coming back to what we talked about before, privacy, right? So we don't know who are these people. We don't have a login, so we can't send them an email. So we're trying to find creative ways to reach as many people as we can. So quite timely mentioning it here as well. Yeah. Make sure that everybody gets back into the auto updating schedule let's get that hub and spoken in place
Starting point is 00:53:28 that way at least minimize your disconnection so communication is really key right so for things to go well but also if things don't go well you also want to have that in place so you don't even have the email address of any of users
Starting point is 00:53:44 you don't even have them logging address of any of users. You don't even have them logging in, so you have no information to reach the general free population that uses Raycast. Yeah, so we have a big email newsletter, which arguably are a lot of users, so we can reach those. But not every user is logged in, so not every user we know the email of.
Starting point is 00:54:06 So I don't actually know what's the ratio of it. I would need to check. But yeah, so this is like an interesting challenge we need to overcome during the next couple of days. That's interesting to think about the problem set because hopefully this problem never happens again. But in terms of the updating getting broken, but if it does and you have an update frequency,
Starting point is 00:54:27 you essentially want to have some sort of logic in the application that says, I haven't been updated beyond the normal ratio of updates or frequency of updates. So you kind of want to have some sort of check in there. It's like, hey, I might be stale. Yeah. So I think there are a few interesting things. Errors happen, right?
Starting point is 00:54:46 Sooner or later, any error you imagine will happen, right? So that's fine. I think it's much more important having mechanisms in place to recover from those things, right? And with desktop applications in particular, it's quite nasty
Starting point is 00:54:59 because if this update is shipped, it's shipped. Like, we can't revert it, right? Like with web, okay, you refresh the page, done. With desktop applications, that unfortunately isn't the case. So it was quite cool to see how creative the team got. Like are there ways that we can sort of update and like how can we communicate?
Starting point is 00:55:19 How do we reach as many people as possible? But also how do we not annoy people that have been updating so finding like good ways doing that it's a bit of a challenge for us right now but i'm sure we'll figure it out but i think then also like just going forward like it's an incident finding ways to like recover from that in the future so if this error happens again that you have a way to say like hey actually let's let's update the app and have sort of a mechanism in place for this to make sure that this will not happen again, essentially. So it was the auto-updater code
Starting point is 00:55:52 that got copy-pasted, essentially. That's what happened, that the auto-updater is what's not. So the one thing that you have in place to, like, know if there's an update, you essentially have a bat signal in your application saying, hey, I need an update, but essentially have a bat signal in your application saying, hey, I need an update, but that bat signal is like,
Starting point is 00:56:08 the light's broken. Yeah, exactly. It's like a single line of code, as it always is, right? And yeah, those things happen, unfortunately. But we do our best to get everybody back on track. And if people run it manually, then at least everything works. So that's a good thing about it. Well, maybe I was running 1.69 and I needed to be updating to 1.71.1.
Starting point is 00:56:30 Yeah, maybe that's why you were missing the momentum. Maybe that's why. I don't know. I do love the momentum though. And I think what we're camping out on for a little bit here, I think, is how do you lead not only just the team in terms of momentum and urgency, but then how do you gain the right kind of feedback from the population of users that you serve to keep building the right kind of product?
Starting point is 00:56:56 And I mean, that's a struggle any founder has, any CEO has, is like, are we building the right thing at the right time in the right quality of measures that we adhere to, et cetera? Do we have the right amount of people? Do we need to have less? Do we need to have more? Do we need to have an isolated hype team versus everyone sort of has this ad hoc marketing job? And I think you've done it right.
Starting point is 00:57:17 I think the job that Pedro's doing and that hype team seems to be working to me. So I think what you're looking at is the different signals you take in as a leader to say this is the right direction. It seems like, to me, you've all been really focused on artificial intelligence, different AI prompts.
Starting point is 00:57:37 You even have, I think, an entire website that's dedicated to prompts. I think, what is the URL for this thing? I think it's like prompts.ray.so. Exactly. Or S-O. Prompts.ray.so. And I think that's kind of cool.
Starting point is 00:57:53 I think there's lots of different prompt engineering. I think we've seen the way of prompt engineers go away. We thought initially when AI was becoming hot that prompt engineering would become a new job title. I think that's gone by the wayside. Basically replaced by things like prompts. Actually, I'm sorry. Let me correct that. It's prompts plural dot ray dot
Starting point is 00:58:14 SO. So to clarify that. But yeah, so you're zooming out back in to where you're focusing on is like it seems like you're focused on artificial intelligence. Is that what's been giving you the most signal to noise ratio in terms of like what to build and what you've been personally getting the most value out of with raycast yeah so that's always the trickiest question like what to build right um because there's almost an infinite amount of stuff you
Starting point is 00:58:41 can build and so i've been an engineer, right? There is something interesting which I still struggle with. But if you're an engineer, you have this really tight feedback loop. You build something, you compile, which is the first test, and then you test the feature, and it works, and then you ship it, which is really
Starting point is 00:59:02 good. Because the feedback loop is essentially seconds, right? So it's a really, because the feedback loop is essentially seconds, right? So it's a really, really short feedback loop. If you're like a founder or not necessarily just a founder, if you work on something bigger, the feedback loop is not seconds. It might be months or even years depending on what you're doing. So it's really, really hard to know what you build and if that is the right thing to build because you'd never really know. Even if some signals maybe show you it's correct, it might be not.
Starting point is 00:59:33 So what we always did and just the only thing that I've seen working for me and us in a way is we were always going where we got the strongest pull from. Whenever we see people are generally interested in something, they keep asking us about something, that's what we're doing. And then you see oftentimes more and more and more pull of that. So that basically brought us to AI. So in 2022, end of 2022, ChatGPT came around, which suddenly changed the whole industry. I think nobody, at least myself, hasn't really seen that coming. I even remember in 2020, we had machine learning
Starting point is 01:00:13 startups in our YC batch, and I thought to myself, oh, machine learning, yeah, that's this thing that's been around for 10 years that never really lived up to its promise. Let's see where they are. Turned out they replicate. So they're doing, I think, quite well with all the wave of AI right now, with all the models they're hosting, and so on and so forth. So I think it took everybody by surprise in a way. And similarly, us, we had plans. We want to do this and that. And then it was like, oh, there's only this thing. for us it made really quickly click because everybody was sort of looking for a text box to insert a prompt and if you think
Starting point is 01:00:52 about raycast it's a text box that is available everywhere so that felt like a really really good fit so we put one and one together quickly shipped like beta, saw like huge interest in the wait list from one day to another, which gave us confidence like, oh, there is something, let's go for that. This basically turned then also into Raycos Pro, which we launched May last year, so almost a year ago. And when we launched it, it was also the moment when we launched monetization. And launching monetization is this really weird, scary thing.
Starting point is 01:01:26 Like we had for three years, not really monetized. We put it out in the pro plan, asking people for paying for us. And we're quite surprised by the response because from day one, there was like a huge interest in it. And it was like, oh, okay, that's like what you hope for. But you never really think this will happen, right? Which is another thing, like basically we got confidence that this is like the right direction to go for us
Starting point is 01:01:50 and got, again, like saw where the pull is coming from and went in. And then so over time, we basically said, okay, there is high demand for that. And then we were just working with the community closer together what they actually want to have from Raycast and AI together. And I think there are two things. One, they want to have similar what we did with extensions,
Starting point is 01:02:13 where you have access to so many tools across all the other things you have, and combining it in one interface. They sort of want to have the same experience with AI, because we have so many different AI models. They have all benefits, but you really want to use them the same way with one app. So that's what we just did. We released Anthropic, Complexity, OpenAI models. They're all in the same UI.
Starting point is 01:02:38 We can use them all the same way, and you can pick the model you want to have. And so I think over time, what we see is basically happening, like AI got like a huge productivity boost to many people, right? People use Copilot and all other things, and it became really quickly, at least for myself, a tool that I use regularly and gives me a lot of value on my daily tasks. So we really see AI is really most powerful on the operating system level where we operate on, right? So we want to make the general AI accessible across tools that it knows about you, that you can connect to your tools, that it really sits there and becomes sort of this
Starting point is 01:03:24 assistant that everybody dreams of, right? Like the thing that it really sits there and becomes sort of this assistant that everybody dreams of, right? Like the thing that you can just invoke and you can ask questions, you get the answers, can perform actions for you. Really like this interface there that is always ready for you and is always available across devices, tools,
Starting point is 01:03:39 and anywhere else. And I think we have quite a nice position. If you think about it, we have quite a nice position. If you think about it, we have one in a thousand extensions in the store right now. They're connecting to all the different tools, which I think is a key to really make this a reality. We have the perfect interface. It's ephemeral.
Starting point is 01:03:59 It sits on top of all the other applications. And I think nobody really is interested having an AI chat in all the different software out there. You just want to have one that knows it, but not have it fragmented as we have nowadays with apps. Because whenever you switch those apps, those things perform differently. You need to pay five times for the same thing. So we really see ourselves like, hey, let's consolidate that and become basically this interface for it. I think the key thing here is like, not everything needs to be AI.
Starting point is 01:04:30 There are many good things that don't require AI, which we want to keep, right? So it's not that we now do a hardcore pivot and become like a fully AI-driven thing. Like things like what you mentioned earlier with the launcher and all of those things, they're like valid things, right? We need them. And I see them as like the building blocks and then you can build abstractions on top of that. Some of them might be AI-driven,
Starting point is 01:04:55 some of them might be not, but they all fit under the same nice umbrella of a launcher interface, of a command palette, a command bar. And that's where we see, I think those two things really nicely come together, where, again, we see, like, people pulling us forward and we work with them together to make it happening. You mentioned store. I do want to talk about AI,
Starting point is 01:05:16 but I want to pause and talk about the store. And I want to talk about how, I'm not sure really what my question is necessarily, but like, how do you have a store? How do you support the folks in there? So I guess my questions and my concerns come around, like how do you nurture this as a founder and a leader comes from my usage with Obsidian. There's lots of really cool extensions that are built on top of Obsidian. And in a lot of cases, you begin to rely upon these things. The code becomes unmaintained or goes stale. It's not first party citizens in terms of
Starting point is 01:05:49 an extension or a store or whatever you might want to call, you know, however, Raycast terms, these things. So help me on terminology. I know you call it the store. Do you call them all extensions or they call it applications? You know, how do you support that population of folks who want to you know dig deeper and provide value to the raycast audience but at the same time make sure those applications adhere to certain standards even as you mentioned before the brand of raycast efficiency productivity native code speed all these things sort of are synonymous with the raycast brand, how do you lead that well? How do you have a store that maintains a level of, I guess, high quality and maintainability? So yeah, you must have been talking about AI so much lately.
Starting point is 01:06:36 So let's switch it up a bit. We'll come back to it. Don't worry. I do want to talk about it, but I want to pause here because I'm really just curious about this point. We'll come back to AI. No, no. Okay. I'm really just curious about this point. We'll come back to AI. No, no, okay. So when we started with thinking about an API to extend extensions, at the same moment, we started thinking about a store
Starting point is 01:06:53 because we feel like they're going hand in hand. We really want to build like an end-to-end experience. Think about iOS. People can build apps. They can publish it. Other people can discover it and can download it. So this is really what we did ourselves as well.
Starting point is 01:07:09 We built an API that lets people build native extensions with writing React and Node and then we built a store that those developers can publish their extensions and they can be discovered and installed with a single click by all our
Starting point is 01:07:25 Raycast users. So we want to make this a really nice, like a really easy ecosystem. So that was the first thing. But then it was very clear to us, like those extensions become core part of what Raycast is. So we wanted to make sure that they're extremely well designed, that they have a good UX, that they're fast, that they're extremely well designed, that they have a good UX, that they're fast, that they're reliable. And over and over again, we came back to like, yeah, this basically means you need to
Starting point is 01:07:51 do a review process of extensions. And nobody really likes review processes, right? There is enough bashing on Apple and other of those platforms that they kind of gatekeeping this kind of thing. So we thought like, okay, what is the best way to review extensions for developers? And then we actually didn't need to go that far because every developer has review processes. It's a pull request. You do a pull request, another developer comes, looks at your code, gives you a thumbs up,
Starting point is 01:08:20 you merge it, you're good to go. So this is exactly what we do. All extensions are open source. We have a massive repo, which is github.com slash raycos slash extensions. If you want to add a new extension, you create a pull request against it.
Starting point is 01:08:35 One of our team members comes, takes a look. Hopefully everything is good. Then tests it quickly and then you're in the store. We also use this opportunity to provide feedback, just like as you would do on a pull request. Like, hey, we usually don't tend to look too much at a code, but rather on the functionality on a higher level,
Starting point is 01:08:55 like giving feedback on what things you could do better to fit our UX, and then you can ship it. So this works really, really well. The same if you contribute to an extension. I think this is really nice because you just use the regular GitHub workflow. You branch out, you do your changes, you fork it,
Starting point is 01:09:13 and then you bring it back into the repository. So it also immediately gives you this collaboration, which I think is really, really powerful. So I think it's like this thing which helps us to really maintain the quality. Though there is one thing, if you have 1000 extensions, that's a lot of volume, like we're getting multiple pull requests every day, right? So we're going through this, we have a dedicated team looking into this. By now we have like one person, Tom,
Starting point is 01:09:40 which actually goes over some of the extensions and even improves them, especially the top extensions that everybody has installed. We try to stay on top of that if there are urgent bugs which users can report. We help fixing them. We work with companies and creators together to improve their extensions, to bring in the latest features. We help other startups launching their things in our store.
Starting point is 01:10:04 So we really build an ecosystem around that. But first and foremost centered around two simple things. You want to keep quality. You want to make it easy for developers to contribute. And funny enough, the pull request, this little abstraction that all developers know for a while, works magically for that. It comes with a few trade-offs.
Starting point is 01:10:25 The repository is huge right now, but we're trying to find solutions to make it easy to keep maintaining those extensions and contributing to them easily. But nevertheless, this is something which makes it really, really powerful. And the funny thing to wrap this up is new
Starting point is 01:10:41 users, they don't even know what was a third party extension or what's an official extension anymore because they look and feel exactly the same. So they might not even know that this is like an open source extension.
Starting point is 01:10:55 We highlight that in the store that is built by people and stuff like that. But when they're using the extension, it's so immersive into the Raycos experience that you have this feeling. And I think this is like the really
Starting point is 01:11:08 important bit here. It's a shared ownership between us as a company but all the contributors and we're helping each other to get to this quality bar. I like the idea of it being part of the repository that you have on your own GitHub. I think that actually helps you not
Starting point is 01:11:24 have... I mean you want to have distribution in terms of your repository that you have on your own GitHub. I think that actually helps you not have, I mean, you want to have distribution in terms of your user base, obviously, but you don't have the code be distributed insofar as Git is already a distributed version control system. So barring the awareness of how Git works, let's go above that and say this is all located at Raycast user, your org on GitHub, in the extensions repository, in the extensions directory within that repository. And so all of it is in a way has a high level of control from a Raycast perspective. You have a level of control to even remove or probably to veto or to be like this probably doesn't fit. Let's not merge this pull request, right? Because it's not going to be in master or in main, whichever you've chosen, if you've gone back and renamed your primary branch, it's not going to
Starting point is 01:12:16 be in that main branch until you've accepted the pull request, right? So there's a level of even vetting, I think, that I wasn't quite aware of. Now that makes a lot more sense, how you're maintaining that control. There is an interesting side effect. So it helps us also to curate the store. So if you see there is an extension that is the same or similar to another extension,
Starting point is 01:12:37 we can hint the author, like, hey, maybe we contribute the extra features to the existing extensions. Because from a user perspective, if you see five different extensions in the store, you might not know the differences. So we try to do those things as well, which is
Starting point is 01:12:54 less on the extension level, but more on the higher level to make sure it's a really nice experience. And then the other side, in fact, that was quite helpful is like, if you have this single repository it's perfect for teaching as well for educating because if a new developer comes and want to know how to build an extension or how to use this feature there's now endless of features or like
Starting point is 01:13:17 examples that you can just link to and say hey just use this react hook here's the example check it out but some people take one extension and they're sort of taking it as a template and then bringing in their own changes for a new extension. That was something which we thought about initially, but was a bit of a surprise how much it actually
Starting point is 01:13:37 helped to spearhead that. Because we two years in and got to a thousand extensions really, really, really quickly, which was the open source. It's like nice because people really associate themselves with the Raycast community and like bring in like this openness and like the developer mindset around it. A lot of activity here for this, for sure. think that, you know, maybe one more layer deeper from a technical level, but not quite actually technical, but more like technically speaking license-wise, the entire repository is MIT
Starting point is 01:14:12 licensed. So congrats on being, you know, not just free as in free, but free as in Libre, the, you know, true permissive nature of open source. And I guess that means that every extension that's part of this, since it makes it in there, is also permissively licensed open source. And I guess that means that every extension that's part of this, since it makes it in there, is also permissively licensed open source software that can be free to use however literally, in quotes, open source can be used. The real definition of open source. Yeah, so we built our API that allows people to build those extensions. We built a format that basically allows to render
Starting point is 01:14:46 those things in Raycods, which is the primarily host for those extensions. And we wanted to make sure we have it like this. But we also wanted to make sure that people build those extensions, that there is this concept of shared ownership, right? As you
Starting point is 01:15:02 mentioned, it's part of our repository. So we own what comes in there. But we have also people that decide like, hey, I don't want to share it in the store. I maybe want to just distribute it outside. So they keep their own repository and then people can like download it from there and add it to Raycos from there.
Starting point is 01:15:19 So I think this is also just the flexibility. I think it's just like, it's quite interesting. Like when you work with developers, and I'm speaking basically about myself as well, you just don't want to bully people, right? You'd want to basically be honest with people. I mean, generally you should. But I think developers, they're like extremely good
Starting point is 01:15:39 at like picking out those things. When they're like logically not connect together, you don't make yourself friends with it so i think that we we're just good citizens and going back like this is how we would like to have it so i think there is no harm having it like this so we just trying to be transparent around those topics as well i dig it i'm excited about that so i guess to tail off the the store story we should build a changelog. So I guess to tail off the store story... We should build a changelog extension, by the way,
Starting point is 01:16:08 to browse all your episodes. Didn't you have an API? We do have a... I think it's a behind-the-scenes API. It's never been first-class citizen. I'll have to double-check with Jared. I know he had made that a priority, but I don't know how well-documented our API, if it exists, how well it's being used or consumed. Let me know.
Starting point is 01:16:28 It would be fun, like having a little command in Raycos, you open changelog.com, you see all the episodes, nice covers, and then you can click and it opens it up in the preferred podcast player. This would be really cool. That would be kind of cool I guess if you had like settings you can say you'd probably base it on installed applications Spotify or Apple Podcasts or whatever and choose your opener for it in the extension preferences and then whenever you you know fresh changelog I don't know or uh changelog episodes or you know latest changelog podcasts I don't know could be fun that like that. That would be cool. Yeah, that would be dope. I would certainly use that because I use Raycast daily. And if I could just have one more thing in there,
Starting point is 01:17:13 like I just installed Tailscale as we're talking. I was like, okay. I was browsing the store. I'm like, what's here? What do I use? I use 1Password. I use Tailscale. I use Docker.
Starting point is 01:17:23 I use Zed as my editor. You don't have nothing for Zed yet because Zed is too niche, which is cool. What can I do with Zed in an editor? In Raycast, it wouldn't make any sense. I was thinking, what's some low-hanging fruit that I already use? And I'm like, well, Tailscale. Sweet. What do I have there? Let me list
Starting point is 01:17:40 my exit node or let me define my exit node or whatever it might be. Or list my status and whatnot so that's kind of cool and that's actually i'm noticing on the store it's it's contributed you know when you go to raycast.com slash tailscale slash tailscale i don't know why there's a double up there but that's you can explain that it's actually by the tailscale user i guess then you have contributors which I believe is probably pulled from the GitHub API and the contributors on GitHub.
Starting point is 01:18:09 But, you know, it's actually a Tailscale org or user. I mean, I don't know. How do they get their name up there, Tailscale? Yeah, let me check, actually. So generally, we kind of follow the GitHub pattern there. So what you have is you can have an organization or user and then when you contribute an extension, we
Starting point is 01:18:30 basically append that. So similar to a repository, we have username, rep name, we have username, extension name. And then we also have companies that we collaborate with because oftentimes when you install an extension and it comes from the official
Starting point is 01:18:45 company oh yeah makes it more trustworthy right so that's why we collaborated with companies like tailscale or one password or linear to like say hey this is like the official extension because then you can sort of trust it um and it gives like just this extra boost of confidence to make sure okay yeah, this sounds reasonable. As I mentioned, all extensions are open source. So generally you can always look up if you're developing what happens in there, which is sort of also a security measure
Starting point is 01:19:13 that we know what goes on there and it's transparent for people to look into it. But this is something which we find extremely valuable, like having this sort of official extensions. It's actually listed in the package.json details. You have author, obviously, and you have owner. And the owner in this case for Tailscale
Starting point is 01:19:34 is obviously Tailscale. Which is kind of cool. Which is kind of interesting. Why we have those two different ones might be too niche, but I think it's a nice detail. Like oftentimes we have a person starting building this extension, the author, and then
Starting point is 01:19:49 this grows in popularity and then we want to make it an official extension and still want to keep the original author because they put so much effort into it to make what it is. So we have them still as the original author in there,
Starting point is 01:20:06 and they get the extra credit, and they have basically the owner separately as the organization. We had somebody, for example, similarly in the Notion extension, which initially was built by a French PM, and he really built this thing really, really well. And then we made it, like, together with Notion,
Starting point is 01:20:24 we said, like, hey, let's make this an official extension to show users hey this is really the official notion extension but still want to keep the credits to the original author so we have them in there as well i think it's just this nice touches which is like if you build this yourself you want to still have this credit right so just don't want to transfer that away artificially. I agree with that. I do agree also that you need to have an owner mechanism, you know, even if it's the original author. You know, you might have author Sam Linville and owner Sam Linville until Tailscale's like,
Starting point is 01:20:57 yeah, Raycast will collaborate with you and take ownership of that and let that become part of our first-class citizen extension ecosystem out there because what you give that brand is is really you know added user experience and i guess in some ways more usefulness and potentially distribution because i might go to your store and discover something and i mean who doesn't know about one password or even tailscale but tailscale by the way is is a sponsor and so is one password they the way, is a sponsor, and so is 1Password.
Starting point is 01:21:26 They're going to become a sponsor really soon, so I'm excited about that. I've been a lifelong user of 1Password, so I'm excited to have them as a sponsor here in the near future. But we use all their features in our infrastructure, and as a developer, I use a lot of their CLI features, and all my SSH keys are stored in there. I biometric all the things.
Starting point is 01:21:43 Anyways, ad is over for 1Password. I'm a big fan. So cool to close the loop, like having something that you've been using for such a long personally and then getting sponsored by it. It's like an interesting thing. Yeah, well, they need help connecting with developers, so I think there's a lot of people who know about 1Password, but not a lot of people
Starting point is 01:22:00 who use their developer tooling or have a clear awareness. That's part of the key too, is like part of distribution for brands and communication is go where the people are, you know, which totally makes sense while you're on Twitter and X, because that's where a lot of people are. I think in the last couple of years,
Starting point is 01:22:16 we've seen that ecosystem fracture a bit and you have more people who have completely abandoned it, never coming back and have moved to Mastodon or Slack or just nothing. Yeah. They've sort of abandoned social media maybe now they lurk on instagram instead of being active on a platform which is cool too but as a brand who's trying to maintain communication levels of folks and whatnot it's become infinitely harder in today's age really this is what i mean right like you can build features and add new stuff but if people don't discover it it doesn't matter right and it's really interesting it doesn't matter how big or
Starting point is 01:22:49 small the company is just do you have this problem right in one or the other way especially in things like where you maybe want to branch out and sort of new target audiences and want to diversify your feature set a bit you kind of need to then sort of relearn these mechanics. Okay, where are the new users? How do I reach them? How do I can make my brand attractive to them? Did they know about a brand differently before? Super interesting. I feel like this is like, yeah, especially
Starting point is 01:23:15 in developer land, it's like a really interesting topic, which haven't many a company that's cracked. What's up, friends? This episode is brought to you by our friends at Sentry. Check them out at sentry.io. S-E-N-T-R-Y.io. Code breaks.
Starting point is 01:23:50 Fix it faster with Sentry. Don't just observe. Take action. The only app monitoring platform out there built for developers that gets to the root cause for every issue. 90,000 plus growing teams use Sentry to find their problems fast. GitHub, Disney, VMware, Airtable, Autodesk, Monday.com, Miro, Tonal.
Starting point is 01:24:12 I could just go on literally 90,000 plus teams trust Sentry to fix their problems fast. But how they do that? Well, they have error monitoring, session replay, performance monitoring, code coverage, all the things it takes to make an application run well in production, Sentry has got you covered. Again, check them out at Sentry.io. That's S-E-N-T-R-Y.io. And make sure you use our coupon code CHANGELOG to get $100
Starting point is 01:24:40 towards your error monitoring with Sentry. Once again, S-E-N-T-R-Y dot I-O, Sentry dot I-O. And by our friends at Factor, as someone who's always been mindful of what I put in my brain and what I put in my body, I was so excited to get a chance to work with Factor. I've been a fan of Factor for a while and recently had a chance to get them on as a sponsor. Now this is a little
Starting point is 01:25:07 off center from our normal sponsor style because hey it's about food but I believe you are only as good as what you put into your body and that begins with food. Eating better can be easier with Factor's delicious ready-to-eat. Every fresh, never frozen meal is chef crafted, dietician approved, and ready to go in just two minutes. You'll have over 35 different options to choose from every week, including calorie smart, protein plus, that's mine, and keto. Also, there are more than 60 add-ons to help you stay fueled up and feeling good all day long. Now, what are you waiting for? Get started today and get after your eating goals. Two-minute meals, pancake smoothies, no prep, no mass meals, flexible for your schedule. Factor is the perfect solution
Starting point is 01:25:57 if you're looking for fast, premium options with no cooking required. And of course, you can sign up and save. We've done the math. Factor is less expensive than takeout and every meal is dietitian approved to be nutritious and delicious. So head to factormeals.com slash changelog50 and use our code changelog50 to get 50% off. That's right, 50% off. That code again is changelog50 to get 50% off. That's right, 50% off. That code, again, is ChangeLog50,
Starting point is 01:26:27 and go to factormeals.com slash ChangeLog50. That's F-A-C-T-O-R-M-E-A-L-S dot com slash ChangeLog50. All right. all right now thomas it's time to talk about ai are you ready are you ready how excited are you to talk about ai like it i mean i wonder it's now become the norm and in a lot of cases there's people who are fatigued by discussions of AI, and it's become a meme in lots of ways too, where XYZ brand has acing personally and did not come for the AI, but now I can appreciate the AI because I got 3.5 for free, or I guess for paid, for free with my pro plan, right? For free with my pro plan. But then you also have the option to have advanced AI in Raycast. This has got to be a boom for you. One way to have a single interface,
Starting point is 01:27:48 a single pane of glass, as a lot of people in tech say, to AI tooling, the various LLMs. What does this mean for Raycast? Have you seen a massive growth? Is there new research internally? How does this work for you all? First of all, I get it.
Starting point is 01:28:03 I think everybody's fatigued about AI, right? So this has been like around now for one and a half years. Every week there is something new. It keeps getting better and like new stuff enables and whatsoever. Every company integrates it. Every company talks about it. So I definitely get this. And I think it's also, I personally wish like this gets a bit like
Starting point is 01:28:26 less about AI and more about what actually is possible or what actually features people build, where AI becomes just like the enabler, right? Like the technology that enables it. But you talk more about actually the innovations you do and less about AI and model. That being said, we recently added more of those models because we're in this really
Starting point is 01:28:51 weird timing right now where it's one of the only things I can remember from my life where it comes out and immediately everybody knows about all the details, is an expert in it, knows when to use which model, knows their preferred model whatsoever. And it's kind of hard to go against this flow and say you're completely neglecting it, which is basically we did our pivot there in a way of we first wanted to just support open AI models
Starting point is 01:29:22 and said deals are the clear winners, making it easy, we're just going to have those models. But then loud and clear, our community say like, hey, hold on. And throttling is actually really good for X, Y, Z. And then there is perplexity
Starting point is 01:29:36 that is really great for when you want to have quick answers around channel knowledge. And it's like, oh, hold on. Yeah, this kind of makes sense. And it's not so black and white the details in the devil and so this is why we sort of added more of those lms to raycos and we really see that now it's like raycos ai it's sort of this one interface for many different lms and
Starting point is 01:29:59 you can pick and choose the ones that suit you personally the most or suit the task at hand that you want to do the most you might be need like an extremely fast llm which is like less capable but it's good enough for what you want to do like fixing spelling of a sentence or something but maybe if you're diving down into like a coding problem you want to make sure that you have the best llm and it can reason about the problems you have. And it's fine if it takes a bit longer because you get more value out of it. So that's like sort of the conclusion we came to.
Starting point is 01:30:32 Personally, I don't think like that's sort of the end state. We're already thinking about, can we do something automatic so that we pick the right model for you problem and you don't need to care about it. So it's more like sort of the implementation detail behind the scenes, like we pick the one model for you problem and you don't need to care about it so it's more like sort of the implementation detail behind the scenes like we pick the one or the other and make a make a good guess of like what's the right model for this so like because if i think about ai i don't think about picking a model right i just think about there is like an intelligence that
Starting point is 01:31:01 helps me doing something that i would need to do otherwise myself. But that's really what it is about. And then the other angle to it, which I want to talk more about the features. What Raycast is interesting, if you use Raycast, you do it with your keyboard, you insert a text, and then we sort of interpret this text. At the moment, this is very static. Like you search a command to center your window, we center your window. There is another command to center it left or to move it to the left. So it's very statically defined what you can do. But what the AI allows you to do is that this
Starting point is 01:31:36 becomes more of a fluent thing, that this becomes more of something you can enter something, I want to do X, Y, Z, and then we essentially figure out for you what to do and the interesting bit here is when you think about the store and the extensions we chatted about all of them are connected to different tools so they're connected to your issue tracker to your wiki to whatever you have and so you can then start thinking about oh this is quite interesting so now i can connect things together that i would do otherwise and this gets in much more around like what is things that you do on a daily basis very often that would be good to abstract away and make it quicker to do and so this is something which we're thinking about how can we get out of this very statically defined
Starting point is 01:32:20 feature set this is the i don't know a thousand things you can do to like more hey you can shape them up yourself by basically chatting or talking or inputting the text what you want to do about this stuff and with that all sort of problems come which is like a fun problem so it's not straightforward otherwise we'll probably have built it by now and it's extremely hard to build something that is reliable and fast which basically Raycast stands for right like which had it all the way at the beginning about how to replace things like spotlight you need
Starting point is 01:32:51 to be really fast you need to be reliable you need to be 10x better and now you're going always in the opposite direction to like LLMs they hallucinate they're slow how do you combine those two things to make like a good product? And some of those things will hopefully be solved over time.
Starting point is 01:33:10 Things just naturally get better and faster with those language models. But how can we actually solve the unique problems to our use case? And how can we make those really, really good for what we wanted to do? Yeah. I think the challenge is interface, right?
Starting point is 01:33:29 How do you maintain some sort of native approach? Like I know when I use ChatGPT proper on the website, there's this analyzing aspect, like it has this sort of spinning wheel. Something's happening while you're waiting, some sort of feedback loop. And, you know, when I asked the same question on ChatGPT for native on the website or inside of Raycast, the output is different. It's a little bit, you know, I don't know what makes it different or how you even what you do behind the scenes to take what they feed you via the API to be different
Starting point is 01:34:03 than what they have on the web. I suppose you do behind the scenes to take what they feed you via the API to be different than what they have on the web. I suppose you could say the native chat GPT way. And so that's always been my concern is like, how do you build a tool successfully around a moving target that is AI that has unique ways to have a user experience first class when you're at their proper. And wouldn't the way, you know, wouldn't the purist, so to speak, who really care about the director of their movie kind of thing, like, I mean, you know, I'm just thinking, like, the purist is like, what is, it must be shot on film kind of thing. Back to, like,
Starting point is 01:34:40 I must go to ChatGPT proper to get my ChatGPT GPT for or Dolly or whatever they have there. How do I, how do you make sure that Raycast is superior in all the ways you want it to be superior as an application, but not less than the actual native way, you know, Claude may operate or chat GPT may operate for those examples. Yeah, definitely. I think it's quite interesting, right? Because you have set up what you mentioned, a native chat GPT.
Starting point is 01:35:11 You have many others doing something similar. So you ask yourself the question, like, what should we actually do? Right? Coming back to like, when we chatted about founders,
Starting point is 01:35:21 like, okay, how do we know we built the right thing? And my take on this, this will probably change because AI changed so quickly, but at the moment, it feels like everybody tries to build this super generic AI that solves everything, right? All of our problems in just a simple chat. And while this might work and we can get there eventually,
Starting point is 01:35:43 it's quite hard to build something that generic because usually we do it the other way around. We build tools for very specific things. We have an IDE to write code. We have a notion to write not code but other type of text, right? And they're completely different interface, completely different tools, but both of them produce text at the end.
Starting point is 01:36:06 So now going back to basically this, what is actually the unique stuff that you do with Raycors? What is actually the things that we can do good that suits in us? So it would more come from this angle. And when I think about that, it's more, okay, we chatted about how can we make people staying in their flow better? How can we make sure they get the information they need quicker to do that job? How do we make sure that we remove those distractions? Because all the tools you use on a daily basis, believe it or not, they have an agenda that they want to put on top of you, right? They want to make you visit this tool for better or for worse but you have your own agenda so we want to make sure we can stick to your own agenda and some of those things as i mentioned can be solved with ai i think in an intelligently way by connecting those things matter together
Starting point is 01:36:56 but some also maybe not so i think like it's quite easy at a moment to see like the frenzy of like oh we solve everything with ai which I'm always a bit mindful about because sometimes the best solution might be not with AI it might be just like the good old classic code that we write that produces much more value than we think and then like basically when you come with
Starting point is 01:37:18 this mindset it's about more what sort of the secret sauce that we have that fits our target audience that are really the problems they have on a daily basis and that's sort of the secret sauce that we have that fits our target audience, that are really the problems they have on a daily basis. And that's sort of first-class product building. You go to your users, you figure out what problems they have, you solve them, with or without AI. This is basically them finding a solution.
Starting point is 01:37:39 But at the moment, I feel like it's a lot around, oh, we're talking about a solution, it's AI, but we don't really know the problem. And that's, i do think a bit dangerous like if you start this way around well i think one thing you can recommend or at least mention is the amount of models like you released a blog post literally today the day we're recording april 10th so this is being recorded april 10th by the way for everyone listening you've got all the models essentially at least the ones that seem to matter most you've got the chat gpt 3.5 which you know really if anybody's using that i just feel bad for them basically but you know it is about access you know then you have gpt4 you've got cloud 3 opus
Starting point is 01:38:17 you've got turbo versions of gpt4 which i didn't even know existed i didn't even know you can turbo gpt4 you can have extended versions of it. You've got Cloud 3 Haiku, Cloud 3 Sonnet, Sonar Small, Sonar Medium, Lama, Mixtral, Code Lama. You've got all the different LLMs out there, at least the ones that are most popular today. So you've got one interface to sort of access the most popular ones out there. How will you maintain, I guess this, Raycast began as a launcher and now is a full-fledged
Starting point is 01:38:51 access to LLMs application. Where do you go from here? Good question. So Raycast itself is a set of productivity tools in our mind. It's basically, we see the is like the centerpiece of it. The laundry is essentially making sure that you can access all the information and that's where we're coming from. We already have something like Raycast floating nodes,
Starting point is 01:39:17 just like little nodes that can happen on the side to like basically take notes during a meeting or during a day. I use it to plan my week and check off my tasks. So we have like sort of this concept of having multiple applications in one. The AI chat is the latest addition. So AI chat is like it lifts on the side as well as
Starting point is 01:39:36 it almost feels nowadays like a standard on application. And we feel like Raycos itself evolves more and more into like our own ecosystem ecosystem like a productivity suite it's all packaged in one application because nobody really likes to download multiple ones but we feel
Starting point is 01:39:52 like that's like a nice way of like structuring your work where you have this productivity suite that works really nice together the laundry is the center piece of it and then you basically can use notes and chat separately and it's basically can use notes and AI chat separately and just basically enrich that. There might be other
Starting point is 01:40:08 things coming that we're adding to this mix as well. The launcher, while it's a great interface for quick access, where we built the AI chat was the interface of a launcher isn't great if you want to have deeper conversations. Conversations that go over
Starting point is 01:40:24 multiple messages that you maybe want to refer when you go back to your code editor or where you left off. So that'd be basic. So there is a need for a specific interface for that. And so that's something which we oftentimes see that we start with, like, hey, that's in the credit and rate cost. And then we'd see, like, oh, actually
Starting point is 01:40:40 there might be use cases where it's better it's outside. We're not really shying away building it outside. And this I think is like the good thing that we saw native and close to the metal close to the operating system. We can do that relatively easily and like can make it appear
Starting point is 01:40:56 like all the other applications you have. So to make sure that you have this consistent feel. How do you handle when you get these multiple windows, for example, the floating windows for the nodes, for example, or even the chat window for AI? Essentially, you have Raycast as a singular application, but then you sort of have like sub applications within that. Will you eventually have more sub-applications as you grow on. What are the challenges of that from a UI perspective?
Starting point is 01:41:28 How do you manage the toggling of the conjuring of an application via the launch bar to the AI window that then stays floating? And I mean, it seems challenging from a UX perspective that you have to dance around native application land and how that user experience is just naturally done on a Mac. Yeah, it is a challenge. So the first thing that we did was floating nodes, which was a very primitive window,
Starting point is 01:41:56 and this worked kind of fine. And the whole thing was around floating. It stays on top of all your other applications. It's a bit inspired by the launcher, right, which also is on top of all your applications. It's a bit inspired by the launcher, right? Which also is on top of all your applications. The second of them we did was AI chat, which we started similar like, oh, this is just like floating nodes
Starting point is 01:42:13 and it floats and stays on top. And then the UX challenges started to appear because people then said like, oh, but I want to have it not floating and I want to have a dock icon, and I want to have a sidebar. And this is all valid feedback. Like we said, yeah, this makes sense.
Starting point is 01:42:30 So we then realized all the interface we built with the launcher and the UI components we built, they didn't really suit the AI chat. So we went on the journey of like, okay, cool, let's take on the feedback and rethink AI chat. So we went on the journey of like, okay, cool, let's take on the feedback and rethink AI chat. And so a few weeks ago, we launched the revamp of that,
Starting point is 01:42:51 which is much more like a real chat app. If you look at it, if you open AI chat on your Mac with Raycons right now, it has a toggle for a sidebar. It looks and feels almost like the messages app on your Mac. You can have different conversations.
Starting point is 01:43:08 You can create new ones. You can pick the model you want to have for the different threats you have. And so it became really this rich application. And so for that, we had to revamp a lot of the things. Before, we were very keyboard driven and we still are. But when you work with the chat you're going to select text and you're much more clicky so we had to actually build like a bunch of things that we didn't really had in raycos because it wasn't necessary
Starting point is 01:43:35 and had to build that out because you just perceive this this kind of window much more differently because it is essentially like an app. It's just bundled within Raycast to make it easier to distribute all of this. Yeah. And I suppose a challenge comes back into play whenever, if you're a command tab, you know, I don't know, guru, frequent user like I am, like most people are, I think, that are very keyboard driven.
Starting point is 01:44:03 Now you've got the scenario where, and this is where the UX, I think, permeates to continue to be a challenge even now, even with these updates, is that whenever I want to command-tab away to another application, that AI chat window is still there, and I can't command-tab back to it. It doesn't feel like, and if I can can i haven't found a way to do it yet so you can you can you can so if you're in the chat and i do command k you can disable always on top and what this does it basically makes the window behave like a normal window so then you can do command tab you get a dock icon you get all those goodies. So we sort of have these two separate modes
Starting point is 01:44:46 depending on how the person likes to use it. Because we got the feedback, it's like, oh yeah, I want to have it come on tapping. And then we also got feedback from others, oh, I love how this is floating. And to sort of have this contradicting opinions and we oftentimes
Starting point is 01:45:01 we don't really want to add many settings because we feel like the majority of people use a default setting anyways so we want to keep them to a minimum and every setting you add also has a huge cost of maintenance because with every setting you have you have to test two cases and then the mutations of that so we keep them usually down to a minimum but in this case it was like yeah
Starting point is 01:45:24 if you have those strong contradicting opinions, it's probably the right way to add a setting for that. It's a bit hidden. One of the challenges we have generally when you have a quite compact UI which is quite condensed and not want to overwhelm the user,
Starting point is 01:45:40 you kind of end up like oftentimes with some of those hidden settings, which you probably need to do a bit better. Yeah, I find I'm an advanced user, at least I think I am. And I would imagine I'm a pretty advanced user. And maybe I would have stumbled on that, but I think maybe I wouldn't have. I'm familiar with Command-K inside of different Raycast applications or extensions or interfaces.
Starting point is 01:46:04 Essentially, I'm familiar with that being a way to get to other things. But there's a lot in there. It's like I've got a bunch of paste responses, copy responses, copying code, copying chat, and I really got to dig to find that particular nugget, which even as part of that is kind of like hidden down there. I don't even know where to look for that. Thankfully, you do have a search for actions option which i mean stellar ui i mean by no means talking crap about your application but just these are the ux challenges every team faces
Starting point is 01:46:35 regardless of how good you are regardless of how amazing your software is you always have some sort of ux feedback that is just like this you're gonna have some sort of UX feedback that is just like this. You're going to have some sort of challenge. And your interface and your UX is stellar, but this is one thing I think you'll have a challenge of is like, you know, this task switcher, you know, icon to tab back to, for example. It comes right in the moment, which is good. I've, you know, as you're sharing with me how
Starting point is 01:47:06 to use this feature i've enabled the feature to make it not float so i've tested it out here in real time and i can imagine you have your you're working out for you for sure on like how to continually expand raycast to have sub applications or sub sub- distinct feature sets with distinct UI, with the distinct UX of that UI within the global Raycast application. That's such a challenge. Yeah, that's
Starting point is 01:47:36 a fun part. Is it the fun part? I don't know, I kind of like it. It's like you start building it, you start using it, and then what we find ourselves very often with design explorations, we start with something. I'll try to find an example. We start with something where we want to do a change, and then we trim up all these big things, and then we work on them design-wise a few days,
Starting point is 01:48:03 and then we go in circles and actually simplifying drastically and come up with a much better experience. And it's like at this moment, it's always this weird hate love. It's like, ah, you find now finally the simple solution, but you actually had to go all the big way to find it, which is like, I like this feeling because it feels like very, very good that you finally made it. But you need to go the way through this extensive design period to figure that moment out.
Starting point is 01:48:36 And you wouldn't end up there when you haven't explored all the other angles. And it oftentimes means that you throw away 90% of the stuff, right? And I oftentimes say, like, the best things we build is actually the things we don't build. Because, like, you go through so many iterations that actually you sharpen, like, what you actually want to do. With every iteration, you know the problem better. You dig the solution out in more detail. And then oftentimes you can then walk back and say like, actually the simplest way is to do X with that. And we don't need to do all the
Starting point is 01:49:10 other things, but we explored it and we kind of know we don't need to do them. Yeah. I kind of liked the moment when you're there, but the journey there is sometimes a bit painful because you do this, this doesn't feel right. This doesn't feel right. And you have to like four or five times, it's like, oh, and now it kind of feels right, but it's much simpler than we envisioned, which is kind of fun. But it's the same with code, right? It's the same with code. Oftentimes you bang your head against a wall, you're writing one is of this problem and you write this crazy thing and then you sleep over it and the next day it's like, hey, actually I can do this in three lines of code.
Starting point is 01:49:45 Boom, done. Yeah, there's a simpler way. Yes. Absolutely. Well, speaking of potentially a simpler way, did you explore the idea of AI chat as you've called it a couple of times? Did you explore it as a standalone application? Would it make sense to have a standalone application
Starting point is 01:50:03 that is still part of the raycast brand you know same raycast subscription just a standalone separate maybe even a code base i don't know like are there shared libraries they're concerned with what have you did you explore that it doesn't make sense we didn't really explore it because it came out of a duration like the initial version was in Roacost window where you literally had a chat in there. It turned out like, this is not always great because the
Starting point is 01:50:31 window closes itself when you're clicking outside. Then I said, okay, let's move it to a separate window. Again, a few iterations later, it felt good. There was, I think, two things. One, we thought about oh actually we could make this a separate application and put it in the mac app store and see if that
Starting point is 01:50:50 yields some nice results like some exposure in the mac app store because regas itself isn't in there due to some limitations and then the other idea there would be maybe you could have an ai chat also on the web just like for people to quickly check it out. And then if they like it, they could say, hey, I want to have this all the time available on a desktop. That could be an interesting angle to it as well. I think the tricky bit is if you make multiple applications, you start with the user base over and over and over again.
Starting point is 01:51:20 Like, okay, everybody had downloaded the launcher. Now you need to get them to download the chat. And then let's say there's a new application, you need to do the same, where I think it's much easier if you can integrate it. And then you can give it to users and it's much more, hey, you have the software already. Now you have extra functionality.
Starting point is 01:51:38 And I think you see something quite often in, let's say, the big, big apps, like social apps, like Instagram or Facebook. They sometimes unbundle and then it doesn't really work. And then they're bundling it again. And now it works because it's also getting attention, gaining awareness, adoption, obviously, is how well do you think you do to broadcast to the world that there's an AI chat that is a single pane of glass to the world that cares about a single pane of glass to all AIs or to, I guess, the in quotes, most popular today, artificial intelligence is out there that can be used because I feel like the feature, this feature is locked behind, you know, Raycast the application, which is to some degree, arguably bigger than the Raycast brand, so to speak.
Starting point is 01:52:46 To say you have a single pane of glass artificial intelligence chat, to me is like, wow, that's not so much the bigger thing, but it's big enough to be standalone. Yeah. You're touching down a good topic. Like generally with Raycast, because it has so many features, we oftentimes find it very hard to describe it. So one of the things we did,
Starting point is 01:53:07 like we're currently working on a new website that comes out soon, where we basically work on exactly this topic of what is Raycast? What are the main features? How should people think about it? What is the story you want to tell? And so that's one of the things
Starting point is 01:53:24 which we can certainly do better. And I think we always can do better, people think about it? What is the story you want to tell? And so that's one of the things which we can certainly do better. And I think we always can do better, especially as soon as you throw in new things in the mix, it changes a bit, right? So let's say a year ago, it was not so AI heavy. So now there's maybe more AI with a separate chat that has access to all those clarified models. So I think this is something which we can better. I think it's generally a problem when you have like such a broad feature set or even like separate products.
Starting point is 01:53:51 How do you group them together, right? Like what is the overarching theme you give somebody? Why should they get interested in this thing? Like how do you target them towards this or that? Which is something which we haven't cracked as I mentioned, and something which I think we can work on. But it's also a continuous work. You saw we do a bunch of stuff on YouTube, which I think you can wave in this message. When we revamped the AI chat, this became more of a thing. So we're kind of resurfacing this and bringing it in.
Starting point is 01:54:26 But yeah, it's something which is quite tricky to get under one umbrella with like the launcher, the AI chat, the floating nodes, soon an iOS application. There is a lot there, right? It's much more than
Starting point is 01:54:37 just like a spotlight replacement by now. Yeah, I think that's the, in your particular position, this is your struggle to concern with, right? Your team can probably have the concern and have a concern for it, but it's not necessarily their job to solve it, right? This is really you and Peter's job to solve this brand. This is a brand problem. This is a, you've got a brand umbrella at this point. The brand is Raycast, and they have a sub-brand called AI Chat. And I think, are you a fan of Silicon Valley, the TV show, by any chance? Oh, yeah, 100%. Okay. So there was a particular, I'll spoil this, so spoiler alert here.
Starting point is 01:55:20 Richard Hendricks was trying to create this algorithm. He was really big on the platform. And at one point, I think it was season three, there was HooliChat was popular. Yes. And then you had PiperChat, which they almost, you know, Richard quit the company for a bit,
Starting point is 01:55:37 and then they ran with that, and Dinesh became CEO, and all the things happened there, right? So, you know, for a bit there, the whole entire show could have been derailed on pursuing this platform and so in your case raycast is your platform right and then hyper chat camp comes out and it's arguably better than hooli chat ever was and hooli chat was the behemoth in the grand scheme of things in that world in that universe right and they it a little bit, and they never did it.
Starting point is 01:56:05 But it was a standalone application. It wasn't part of the platform. It wasn't part of the algorithm. It leveraged the algorithm to be amazing for compression, to compress all the video to make it super fast, all that good stuff. And I just wonder, if you zoom out a bit, is the idea of a single pane of glass AI chat bigger than Raycast? Interesting, yeah.
Starting point is 01:56:26 I mean, it's hard to tell with Minecraft. I think the Silicon Valley analogy is quite interesting. There I feel like there is like basically you have the chat, which is an application of the great compression algorithm, right? And with us, I think it's a bit different because I would see it more as multi-product in a way. The closest I could come up with is probably, let's say, Microsoft.
Starting point is 01:56:50 Microsoft has an office suite. And in the office suite, you have an application for email, you have an application for a calendar, and so on and so forth. So here with Dracos, you could say, hey, hey you have the launcher which solves a dedicated problem space and you have the AI chat which lets you chat to all the various AI models out there and solves a dedicated problem space
Starting point is 01:57:13 so I think they can live nicely next to each other but then the question is like what's the bigger on top right like how do you bundle this together at the moment all of this is called RayCodes we're not really in this separate product world just yet. It's just like called Raycast. And yeah, there happens to be a launcher and there happens to be a chat and a notes bundled in there. Over time as those pieces get more distinguished, like especially for example,
Starting point is 01:57:41 the AI chat, which recently got the makeover, this becomes more of a thing, how you talk about it. Oh, there is now this chat which is different to the launcher and we probably need to find a way how to do that in a more cohesive way. Well, you're pretty close to Piper chat. It's AI
Starting point is 01:58:00 chat. They're calling it AI chat. It's Piper chat. It's Piper chat. We just need a better compression algorithm. That's rightiper chat. It's Piper chat. We just need a better compression algorithm. That's right. Well, the similarity to Silicon Valley TV show was just to draw a comparison. I just wonder if eventually you'll get to a point where AI chat not so much is bigger,
Starting point is 01:58:20 but could be more focused as a product and more focused as an onboarding and more focused as a product and more focused as an onboarding and more focused as a pricing perspective if it was a standalone application. Like you had said with Microsoft as the example, you don't install Microsoft and get Word and Excel. You install probably something else that gives you all that stuff to get that. Well, what's next? Let's talk about what's over the horizon. I know you've got
Starting point is 01:58:46 a CNOP in the glass now to a lot of the more popular LLMs out there. You're refining it as we speak. We've deliberated over whether or not it should be a standalone thing, how that might actually work out, but what's just over the horizon not many folks might know? What should people know about where
Starting point is 01:59:02 you're going? Yeah, so let me start on the macro level and go on the micro level. So macro, short term, we released AI models, and the next thing, which might be out already when we publish this pot, is that we also want to make it easy
Starting point is 01:59:17 to build your own presets for AI chat. So you can define a model, give it a few instructions, and then you can reuse it or share it with others, which I think is quite cool to bring in more personality in those chats, which lacks sometimes. That's the first thing. The next thing which we want to do, we chatted about it a bit, like we have those extensions, and we want to integrate them together with AI to really combine those two powers. Basically take the intelligence of AI, take our
Starting point is 01:59:47 unique interface, and take the connections we have with all the extensions. I think that's really exciting for all extension developers and equally for all users of those extensions, which I'm personally really excited about. Then we have been spoken about this publicly already.
Starting point is 02:00:04 It's like iOS. That's like an interesting take. We want to bring Raycost to iOS. It's been one of our requests, especially with things like AI Chat, but also with other things like snippets or quick links to have them in your pocket available when you're on the go. So we're working there on a mobile application which comes out this summer.
Starting point is 02:00:23 Around this summer, we'll probably start with a bit of a beta test and then see how far we can get it's not going to be unfortunately one-to-one raycast ios is just too restrictive of an environment so we kind of need to be a bit creative they're probably going to be something around a companion so you have the most important things always with you and can reuse that so So that's exciting. The other big piece, which we haven't talked publicly much about is Windows. MacOS, as much as I love it, it's not the only operating system that is popular out there. There are more than that.
Starting point is 02:00:55 So for us, it's also a question like, how can we go to other operating systems and bring the same experience to Windows, which is a magnitude bigger than Mac, or even also Linux later on. So we're thinking about how can we do that? We always knew we want to do this. We just always also know it's technically quite a hard task because we talked about being a native application gives us all the advantages, being close to the operating system, giving us the performance, but also giving us a look and feel of a native application gives us all the advantages, being close to the operating system, giving us the performance,
Starting point is 02:01:26 but also giving us a look and feel of a native application. So we're kind of researching and finding ways how to do that actually on Windows as well and make people happy over there because we're getting that ask very, very often. Like it's one of the feature requests that pops in every now and then, and we don't have an answer
Starting point is 02:01:47 other than, yes, it would happen eventually. But this year we want to get to a stage where there is a much more concrete plan, hopefully with some early beta that people can explore it and help us making it happening. Big, ambitious goals to be multi-platform for sure,
Starting point is 02:02:04 especially if you consider Linux down the road. And I suppose you probably have to hire, right? You probably couldn't do a Windows application with the same team. You probably have to expand by at least one or two, maybe three, like a small team or people who specialize in Windows application development. And I'd imagine that the real challenge is probably not just that, but keeping the user interface similar. If you've come to know Raycast for what it is,
Starting point is 02:02:34 you know that it's got a great, beautiful user interface, a really good UX in terms of what you can do with a single limited application like it is in terms of its UI footprint is not very big. It's meant to be minimal. So you do a great job of maintaining that minimalism, but also allowing you to even expand the launch bar with a down arrow, for example, to see more applications or to see the release notes or whatever.
Starting point is 02:02:59 I think those are all subtle ways you allow the application to remain minimal, but also expand when necessary. That's going to be a challenge to do when you go to Windows or another platform, is maintaining that stability from the UI. Yeah, 100%. I think that there's a lot of challenges. There is technical challenges, there are design challenges. It can be a nice opportunity to also rethink some of the UX and the design to set ourselves up for the
Starting point is 02:03:26 next five years. It also can help us rebuild some of our technical foundation to also sustain longer because we mentioned we have now not only a launcher, we have also a chat on the side and other things. We have all of that. So I think
Starting point is 02:03:42 that's sort of also finally quite interesting. We created a team now. So I think that's sort of also probably quite interesting. We grew the team now. We want to grow it a bit further to expand to this and then also making sure that we have going back to the momentum
Starting point is 02:03:55 to ship on multiple platforms, which is also not the most easiest thing to do. So that's all the things we're basically figuring out as we speak, more or less. We have already a sort of a plan that we want to explore, and then hopefully can share more about it very, very soon when we gain sort of the confidence that that is a good way for us building all of this.
Starting point is 02:04:17 Well, good deal. Appreciate you digging deep into all the details and even allowing me to push back here and there on different parts. Definitely once you think about that separate application, AI Chat, Raycast AI, I don't know what to call it, but it seems like a big deal to me. Maybe potentially a bigger deal or
Starting point is 02:04:35 not a bigger deal necessarily, more like a separate deal. It's less like a bigger, but more like a separate deal. At some point the AI Chat is going to have enough of a feature set that it really is distinct and different than Raycast application proper. And as a Raycast user, I see that already from my own perspective. It's a tool, but I suppose if Raycast has given me access to productivity tools that give me predictive natures, I suppose that can be argued that it is a subset, but I'll leave it there. That's enough for now.
Starting point is 02:05:09 Thomas, thank you so much for digging in. Thank you so much for sharing some of your journey product-wise and direction-wise here on the ChangeLog. I love that, digging in with you. And I appreciate you coming on the show. Thank you so much. Yeah. Thank you very much, Adam, for having me.
Starting point is 02:05:24 Vivid listener and always happy to hop behind the mic and contribute to the change as well. Yeah, man. Well, thank you. It is always such a good feeling to have someone like Thomas Paul Mann, an accomplished CEO, leader, founder, be a listener and to come on the show. That's like the coolest thing ever, honestly. Now, I don't know about you, but I'm a Raycast user, as you can tell. I use Raycast for everything.
Starting point is 02:05:58 I use it all the time, every single day. It's core to my workflows, my tool set. So much hinges upon Raycast. And maybe the next big thing for them really is Raycast AI chat. Maybe they need to go the way of Patrice and just simply break it off and make it a standalone application. I don't know. But what I can say as a user after this conversation, of course, because I was like skeptical, I'm a user of Raycast AI chat on the daily now. And I have to say, I really wish it was a standalone application.
Starting point is 02:06:34 There's certain UX behaviors, certain functionality you expect from an application. And right now it achieves most of that. And I think they're going to break it off and make it its own thing. But only time will tell. So we'll see. The cool thing is, is most of what Raycast is today is totally free for everyone. So if you haven't yet, check it out. A big thank you to our friends who have sponsored this show today.
Starting point is 02:06:59 Fire Hydrant, Less Stress, From Ring to Retro. Our friends, of course, at Cloudflare and the awesome announcements from Developer Week 2024. I was down at their offices hanging out, having fun, and it was such a blast. We're big fans of Cloudflare. And, of course, to our friends at Century. Use the code CHANGELOAD to get $100 off the team plan. That's good stuff. And our friends over at Factor.
Starting point is 02:07:22 Meals made easy. I love them. You should check them out. And, of course, a big, massive thank you to our friends and the home of ChangedAllToCome, fly.io. Put your application near users. It's too easy. And last but not least, thank you to Brake Master Cylinder, the beat-freaking residents. Yes.
Starting point is 02:07:40 As a matter of fact, we have an episode coming out this Friday on Friends with Brake Master Cylinder. Going deep on all the things. You're going to love it. All right, that's it. The show's done. We'll see you on Friday. Thank you. Game on.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.