Let Anyone at Your Company Ship Internal Apps with AI — Garrett Galow, WorkOS

AI Engineer · 17 min · 226 sentences · from YouTube's caption track

Each timecode opens YouTube at the start of that sentence. Line anchors (#s42) are the cue ids in the WebVTT, and every line carries its start and end seconds. All transcripts has every talk, and the whole corpus as one file.

  1. 00:12Good afternoon everybody.
  2. 00:14My name is Garrett.
  3. 00:15I'm on the product team at WorkOS and you may see that the title of this slide this talk has slightly changed.
  4. 00:22Uh, that's the bad news.
  5. 00:24The good news is that the talk is better for it because the original idea I had for this talk two months ago uh is already sort of out of date
  6. 00:32with how quickly things move.
  7. 00:34So today we're going to talk about how do we enable anyone at your company to ship?
  8. 00:39There are lots of people at your company that have great ideas of things that will solve problems inside your company but even with AI the technology still holds them back.
  9. 00:47So I'm going to tell you the story of how we dealt with this problem, what we did about it and give you some advice if you're going to do it yourself or talk about what we're going to offer to help folks with this problem.
  10. 00:59So this was about six eight months ago.
  11. 01:03Uh, one of our account executives Perona she was about to go on maternity leave.
  12. 01:07She's a incredible AE and she wanted to build something to help the rest of the sales team while she was on leave.
  13. 01:15So she went and built something called Perona GPT.
  14. 01:18Uh, it's basically a chatbot trained on her sales calls and all the stuff she knew about the product to help other people uh while she was out.
  15. 01:26So she went, she built this at the time she used lovable, all the stuff she got it working great.
  16. 01:32She shared it and said, "Hey, I have this tool that you can use while I'm out.
  17. 01:35I hope it's helpful."
  18. 01:38First thing our CEO Michael tries to use the tool and he gets this you don't have access.
  19. 01:43He doesn't have a lovable account cuz he's not not used lovable uh and so he can't use it.
  20. 01:49And so he's like, "Hey, how what can we do here?
  21. 01:51How do we make sure everyone can use it?"
  22. 01:53And so the solution was "Hey, two engineers on our applied AI team, can you go convert this into like an app that we can deploy and that we can give everyone access to?
  23. 02:05So now we have account exec who comes up with a great idea, but in order to make that idea actually useful, we have to go get engineers to spend a bunch of time
  24. 02:15recode it, you know, move it from lovable, deploy it, manage it, all this kind of stuff.
  25. 02:20And this is really painful because really what should happen is she creates the app, deploys it, shares it, everyone gets access, and now people are are using it.
  26. 02:31And so building things got cheap, right?
  27. 02:32She was using lovable, that was kind of, you know, right around when like Opus 48 was coming out.
  28. 02:38Now people are using Cloud Code, Codex and stuff in many cases.
  29. 02:41And so it's not hard to build a thing, something that you can, you know, npm run dev.
  30. 02:46It's pretty easy now.
  31. 02:48But shipping it, making it available, even internally to your company, hasn't really gotten that much easier, right?
  32. 02:54Where do you deploy this?
  33. 02:55Where are you going to run this app?
  34. 02:56How do you ensure it's secure, right?
  35. 02:58How are people going to You want to I'll have your internal employees authenticate to it, but you don't want it to be publicly available.
  36. 03:05And so, you know, for a less technical person, for a non-engineer, they're going to struggle with, you know, do I put it on Vercel?
  37. 03:12Well, I don't have access to a Vercel account or a Cloudflare account because I'm not an engineer.
  38. 03:16They might not know the details of how to do that.
  39. 03:18Even for engineers who know how these tools work, they don't really want to have to go through this and do it from scratch every single time.
  40. 03:25And then if you're deploying these things internally, you want them to have auth and security baked in.
  41. 03:30You don't want people just, you know, shipping API keys to stuff that might get like checked into code bases or stuff like that.
  42. 03:36And so what do you do?
  43. 03:37You end up burning a bunch of engineering time to say, "Hey, this is important.
  44. 03:40We need to go convert this to be some proper app deployment."
  45. 03:47So the thing we needed at WorkOS was kind of two things.
  46. 03:50One, the capability for everyone at the company to build a build and ship an application.
  47. 03:56They shouldn't need to go ask infra for provisioning.
  48. 03:59They shouldn't need to get like security approval for standard apps.
  49. 04:02They should just build a build the thing and make it available.
  50. 04:06And two, we want a distribution.
  51. 04:07Right?
  52. 04:08We want As soon as they ship it, they can link someone else to it.
  53. 04:11That person can click the link and slack, open it up, and access the application without any red flags or any kind of red tape.
  54. 04:19And so, we want to move fast.
  55. 04:21We want to build quickly.
  56. 04:22We have this applied AI team at WorkOS who's their kind of singular job is, how do we make AI more and more useful across the company?
  57. 04:30Not just, you know, how do we move the software development process along, make engineers useful with AI, but how do we make everyone useful with AI?
  58. 04:39Building, you know, building is cheap, right?
  59. 04:40We can build a thing, no problem.
  60. 04:42But how do we know it works?
  61. 04:43We need to get the feedback around it.
  62. 04:45Turns out we basically had a sort of a forcing function to gather feedback, which is we'd start doing these company-wide Cloud Days.
  63. 04:52Basically, it's a single-day hackathon where everyone pairs up into teams and builds an app.
  64. 04:58And typically, when we do this, we actually pair non-engineers with engineers.
  65. 05:02And we actually have the non-engineers do the building.
  66. 05:04They're the ones that have our hands on keyboard.
  67. 05:06They're the ones building the application.
  68. 05:08Uh while the engineer that's paired with them is there to consult, help them, you know, unblock them with any issues they find so they don't get stuck, kind of be a sounding board for, you know, how they can approach this.
  69. 05:18But we have a ton of our, you know, marketing folks and sales folks that have all these really great ideas of apps that, you know, they've maybe struggled to bring to life.
  70. 05:28So, we built two things.
  71. 05:30The first thing is we built a CLI.
  72. 05:32We call it wow.
  73. 05:33Wow is the thing that helps you build and generate an app without needing to know any of the underlying details.
  74. 05:40It basically is a toolkit that helps you set up Git, set up a repo, clone in an example application that you can use to start with for Cloud Coder Codex
  75. 05:49uh to build the app you want to build.
  76. 05:51And we distribute it to every single employee at the company through our MDM.
  77. 05:55We just push it on your machine.
  78. 05:56So, every employee day one has access to this tool.
  79. 06:02The Well CLI lets you run things like wow app create.
  80. 06:05What it does is that you name the app, it scans your machine and says, "Okay, do you have get installed?
  81. 06:10Do you have you logged into GitHub?
  82. 06:12Do you have Doppler which is your secrets management?"
  83. 06:15Kind of does all this pre-configuration of your developer machine whether you're an engineer or not so that everything is kind of ready to go and you're not going to hit any snags along the way.
  84. 06:26We also built a shared skills repository.
  85. 06:29So, anyone at the company can if they built a skill that's useful, they can push that skill up and it's shared to everyone and then it's easy to fetch those skills, see what's available, and pull skills down to help you build things or or do certain workflows.
  86. 06:44So, I'm going to do a quick demo to kind of show you a little bit of what this looks like.
  87. 06:48Um So, here I'm in this folder and I want to create an app.
  88. 06:54Let's do AIE demo.
  89. 06:58And so, it basically runs through this whole flu- flow.
  90. 07:01I've already obviously configured my machine.
  91. 07:02It's not the first time I'm doing this.
  92. 07:04So, it checks I have get, I have node, GitHub, Doppler, I'm signed in, everything.
  93. 07:10And what it does actually creates a repo in our enterprise GitHub account.
  94. 07:15Uh uses a kind of a template that we already have defined.
  95. 07:18So, it starts out with basically a kind of blank Node.js app.
  96. 07:23Um so, it does that, pushes everything, runs it, and then, you know, now we get some something that I can run internally or locally.
  97. 07:34It does a little uh deploy step and then we get something available at localhost that I can pull up here.
  98. 07:45And we have this internal app example.
  99. 07:48If it's not obvious, we're running this on Cloudflare, um because it makes it really easy to quickly deploy um a node app.
  100. 07:55So, this is great.
  101. 07:56Single command, I now have this app running.
  102. 07:59And then from that point on, you know, I can just, you know, pop into Claude and say, "Hey, I'm doing a demo for AIE.
  103. 08:07What can we put in this app that would be cool?"
  104. 08:21So, I'm going to let this go off.
  105. 08:22I don't know, we're going to see what it does.
  106. 08:24Um this is sort of just Claude being Claude, but um I want to walk through like a few parts of uh what we built in some examples of the things we built.
  107. 08:34So, we have this uh internal registry.
  108. 08:36So, anytime you push an app with Wow, uh we actually log it into the internal registry.
  109. 08:41So, you can see we have 278 apps that have been pushed, uh 21 that were had a deployment done today.
  110. 08:47Uh over the last week, we've had 3.3 million requests go through these applications.
  111. 08:52So, these aren't just uh little dashboard tools, they're also APIs, Slack bots, and things that we created and use internally ourselves.
  112. 08:59Um and then 60 of these are on sort of custom domains, so they have their own uh like branded um domain name.
  113. 09:06A couple examples of things we built is um Connor on our product marketing team, we send these monthly newsletters that are like, "Hey, what's the latest in Work OS?"
  114. 09:15Uh it's kind of a pain, we have to take updates that we have, put them into a format, and then we need to format them to send it both Slack and over email,
  115. 09:22um which is pretty annoying.
  116. 09:25And so, we built this uh I think my auth.
  117. 09:29So, here's how these apps are protected, right?
  118. 09:31I have to log in with my Okta account in order to access them.
  119. 09:34So, if you go to uh any of these URLs, you'll see uh you won't be able to get to them.
  120. 09:41So, here it basically pulls in all of our change logs.
  121. 09:44You can curate that.
  122. 09:45You can design what the Slack message is going to look like.
  123. 09:48And so, it's a kind of singular place to design this experience.
  124. 09:52I think that I built is we have a change log.
  125. 09:55Changelog.workable.com/changelog is where we post all our updates.
  126. 09:58And we do this through Webflow, which is like a CMS platform.
  127. 10:02It's pretty It's pretty painful to actually like go in, design the change log post, and do all of this stuff.
  128. 10:07And so, I built a tool that basically allows anyone at our company to draft these change logs.
  129. 10:11And so, someone can come in.
  130. 10:13Ooh.
  131. 10:17I got to refresh my auth.
  132. 10:21There we go.
  133. 10:24Uh anyone can come in, kind of draft these change logs, and then it posts into Slack, so I can know, "Hey, there's a new change log someone's drafted up.
  134. 10:29I can review it."
  135. 10:30And then when it's ready, I can post it and then post it live.
  136. 10:34So, this is what it the kind of tools that we're able to build.
  137. 10:38Basically, anyone at our company can now self, you know, spin up Cloud Code, build the app that they want, and deploy it live, make it available to the entire company.
  138. 10:48I'm going to I'm going to let that just sit in the background.
  139. 10:50We don't need to see what that does.
  140. 10:52Um but yeah.
  141. 10:55So, that's that's the kind of idea.
  142. 10:57Now we have uh tons of people at the company building these tools.
  143. 11:00Uh nothing gets in the way.
  144. 11:01They don't have to ask for, "Hey, can someone deploy this?
  145. 11:03Hey, can someone provision some account for me?"
  146. 11:05Uh everyone by default in the company can use this tool.
  147. 11:09So, I want to talk a little bit about Atlas, which is the actual platform underneath this that uh powers this this this tool.
  148. 11:16Wow is just sort of the CLI that people use to interface with it, but Atlas is actually the underlying infrastructure.
  149. 11:21Basically, Atlas allows you to create, build, deploy, and share these applications.
  150. 11:26There's sort of three principles when we're building Atlas that we wanted to maintain and and that provided a great experience.
  151. 11:32One was we wanted the infra to be invisible.
  152. 11:34No one should need to know where the deployment target is.
  153. 11:37It happens to be that we're running on Cloudflare Workers.
  154. 11:40If at some point we want to change that to Vercel or AWS, it shouldn't matter.
  155. 11:43Should be transparent to anyone trying to build and deploy these applications.
  156. 11:47Wanted to be secure by default, right?
  157. 11:49We don't want to risk there's I can't show you all of the apps that we built.
  158. 11:52Some of them have a lot of PII, they're customer tools, sales tools that we use.
  159. 11:55So we don't want anyone just to be able to access these tools outside the company because they're very sensitive.
  160. 11:59And then last is the discovery of discoverability.
  161. 12:02Someone shares a link in Slack, anyone should be able to click that and be able to view that tool.
  162. 12:08So today Ilist runs on Cloudflare's developer platform.
  163. 12:11Every app, when you run that wild create step, provides compute, storage, uh with D1 databases, KV values, all the bits and pieces you need.
  164. 12:20So you don't have to ask like, "Oh, well, if I need to like store persistent data, am I going to be able to do that?"
  165. 12:24It's It's already part of the package.
  166. 12:27Um and we automatically host all of these tools when you push them under workos.tools.
  167. 12:31So we have this shared domain that whatever your app is called, you get that host name underneath workos.tools.
  168. 12:36So you don't have to worry about where is the app going to be available, how does it get, you know, do people get access?
  169. 12:44Secure by default.
  170. 12:45So all of these apps are automatically protected by our Octa SSO account.
  171. 12:50So you can't log in if you don't have access to our Octa account.
  172. 12:54We've actually built for APIs and Slack bots.
  173. 12:57We built a way to actually plug holes for a token-based authentication.
  174. 13:00And so if that's something you need, you can build out uh you can kind of enable that and then get API access for some of these tools that we're using.
  175. 13:08All the requests are logged and auditable.
  176. 13:10So we have logs of all the traffic that's happening.
  177. 13:12So if we think there was some sort of leak or um security issue, like we can go and detect what happened.
  178. 13:18And then all the secrets, so if you need API access to any of our tools, internal tools, or third-party tools, that's all stored securely.
  179. 13:26Uh we use Doppler in this case.
  180. 13:27And so you don't really have to do secrets management.
  181. 13:29You don't have to worry about did I, you know, push a secret into the Git repo that's now, you know, a problem.
  182. 13:35It's all done securely.
  183. 13:39And then last, we have the catalog for discovery.
  184. 13:41Every app's discoverable.
  185. 13:43Um no need to share.
  186. 13:44You don't We don't need to have sharing support because you by default have access.
  187. 13:50So, I think so far, you know, I showed you that catalog page which had a few hundred apps.
  188. 13:53Obviously, not every single app is super important and sees the light of day, but we have about 60 apps that are been deployed, maintained, or getting used on a regular basis.
  189. 14:04So, this isn't just like two tools people built that are useful.
  190. 14:06It's actually becoming um a way in which things are being maintained.
  191. 14:10We actually had someone build a tool where you take any arbitrary HTML, upload it, and it gives you a shared link.
  192. 14:16So, it's basically like a mini hoster of like mocks or diagrams or things that you can easily share.
  193. 14:22We're seeing over 3 million requests a week run run through all of these apps.
  194. 14:26Um this is partially users using traffic, but it's also um one of our tools, Wallaby, is like a sales tool, and we actually built an APIs for that that allows us to access that data in other systems, in Slack.
  195. 14:37And so, it's not just humans accessing this data, it's machines and agents as well.
  196. 14:42We've completely eliminated the need for uh asking for help in deploying applications because nothing stops anyone anymore.
  197. 14:49And I think like the most important metric is, you know, our our goal was enable non-engineers to build and deploy apps.
  198. 14:56And out of our apps, out of these 60 apps, 37% of them have been built without any engineers in any of the commits.
  199. 15:03So, they're totally built between that person and Claude without engineering involvement.
  200. 15:08And that's sort of the marker of like a true success here that we've actually eliminated the need for, "Hey, you know, some engineer, can you migrate this tool?
  201. 15:14Can you manage this tool on behalf of, you know, marketing or sales?"
  202. 15:20So, So, more that we want to do here.
  203. 15:21This is sort of initial version.
  204. 15:24We want to add granular off.
  205. 15:25Not every app should necessarily be opened by default to everyone in the company, obviously.
  206. 15:29There's some sensitive data in some cases.
  207. 15:31So, we want to add We already know who the user is when they're logging into the app.
  208. 15:34So, we want to support doing kind of like group-based, role-based permissions for these apps easily.
  209. 15:40We want to add more data integrations.
  210. 15:41So, we kind of already have this capability aspect to to Wow and to Atlas where if I need access to our Snowflake data, for example, I don't need to go kind of think about API keys.
  211. 15:51I can just say, "I want to add Snowflake."
  212. 15:53And now the app has correctly maintained Snowflake access.
  213. 15:57And then the other thing that we've we're building out is Slack integration.
  214. 16:00So, a lot of these tools are great, but you really want them to be available inside Slack so that someone can just at the tool and get, you know, answer a question, get use out of it, or actually drive a workflow.
  215. 16:11And so, we're building included Slack integration.
  216. 16:14So, if someone deploys an app, they can also get the Slack app automatically installed.
  217. 16:20So, for us, we're kind of experiencing ourselves a revolution in internal app development.
  218. 16:25We've used other platforms to build certain tools.
  219. 16:29We've always found them very cumbersome.
  220. 16:31They basically still took engineers to build and maintain, and it sort of limited the tools that we could build.
  221. 16:36For us, AI solved the build problem, but we needed more in order to make this a ubiquitous platform for our our our team.
  222. 16:43Atlas provides these capabilities to enable anyone in our company to ship internal apps.
  223. 16:48And if you're interested in having this kind of capability at your company, I'd love to talk to you about it.
  224. 16:53Thank you.
  225. 17:00[music]
  226. 17:08[music]