[{"data":1,"prerenderedAt":439},["ShallowReactive",2],{"footer-primary":3,"footer-secondary":93,"footer-description":119,"100-apps-100-hours-workout-app":121,"100-apps-100-hours-workout-app-next":171,"sales-reps":187},{"items":4},[5,29,49,69],{"id":6,"title":7,"url":8,"page":8,"children":9},"522e608a-77b0-4333-820d-d4f44be2ade1","Solutions",null,[10,15,20,25],{"id":11,"title":12,"url":8,"page":13},"fcafe85a-a798-4710-9e7a-776fe413aae5","Headless CMS",{"permalink":14},"/solutions/headless-cms",{"id":16,"title":17,"url":8,"page":18},"79972923-93cf-4777-9e32-5c9b0315fc10","Backend-as-a-Service",{"permalink":19},"/solutions/backend-as-a-service",{"id":21,"title":22,"url":8,"page":23},"0fa8d0c1-7b64-4f6f-939d-d7fdb99fc407","Product Information",{"permalink":24},"/solutions/product-information-management",{"id":26,"title":27,"url":28,"page":8},"63946d54-6052-4780-8ff4-91f5a9931dcc","100+ Things to Build","https://directus.io/blog/100-tools-apps-and-platforms-you-can-build-with-directus",{"id":30,"title":31,"url":8,"page":8,"children":32},"8ab4f9b1-f3e2-44d6-919b-011d91fe072f","Resources",[33,37,41,45],{"id":34,"title":35,"url":36,"page":8},"f951fb84-8777-4b84-9e91-996fe9d25483","Documentation","https://docs.directus.io",{"id":38,"title":39,"url":40,"page":8},"366febc7-a538-4c08-a326-e6204957f1e3","Guides","https://docs.directus.io/guides/",{"id":42,"title":43,"url":44,"page":8},"aeb9128e-1c5f-417f-863c-2449416433cd","Community","https://directus.chat",{"id":46,"title":47,"url":48,"page":8},"da1c2ed8-0a77-49b0-a903-49c56cb07de5","Release Notes","https://github.com/directus/directus/releases",{"id":50,"title":51,"url":8,"page":8,"children":52},"d61fae8c-7502-494a-822f-19ecff3d0256","Support",[53,57,61,65],{"id":54,"title":55,"url":56,"page":8},"8c43c781-7ebd-475f-a931-747e293c0a88","Issue Tracker","https://github.com/directus/directus/issues",{"id":58,"title":59,"url":60,"page":8},"d77bb78e-cf7b-4e01-932a-514414ba49d3","Feature Requests","https://github.com/directus/directus/discussions?discussions_q=is:open+sort:top",{"id":62,"title":63,"url":64,"page":8},"4346be2b-2c53-476e-b53b-becacec626a6","Community Chat","https://discord.com/channels/725371605378924594/741317677397704757",{"id":66,"title":67,"url":68,"page":8},"26c115d2-49f7-4edc-935e-d37d427fb89d","Cloud Dashboard","https://directus.cloud",{"id":70,"title":71,"url":8,"page":8,"children":72},"49141403-4f20-44ac-8453-25ace1265812","Organization",[73,78,84,88],{"id":74,"title":75,"url":76,"page":77},"1f36ea92-8a5e-47c8-914c-9822a8b9538a","About","/about",{"permalink":76},{"id":79,"title":80,"url":81,"page":82},"b84bf525-5471-4b14-a93c-225f6c386005","Careers","#",{"permalink":83},"/careers",{"id":85,"title":86,"url":87,"page":8},"86aabc3a-433d-434b-9efa-ad1d34be0a34","Brand Assets","https://drive.google.com/drive/folders/1lBOTba4RaA5ikqOn8Ewo4RYzD0XcymG9?usp=sharing",{"id":89,"title":90,"url":8,"page":91},"8d2fa1e3-198e-4405-81e1-2ceb858bc237","Contact",{"permalink":92},"/contact",{"items":94},[95,101,107,113],{"id":96,"title":97,"url":8,"page":98,"children":100},"8a1b7bfa-429d-4ffc-a650-2a5fdcf356da","Cloud Policies",{"permalink":99},"/cloud-policies",[],{"id":102,"title":103,"url":81,"page":104,"children":106},"bea848ef-828f-4306-8017-6b00ec5d4a0c","License",{"permalink":105},"/bsl",[],{"id":108,"title":109,"url":81,"page":110,"children":112},"4e914f47-4bee-42b7-b445-3119ee4196ef","Terms",{"permalink":111},"/terms",[],{"id":114,"title":115,"url":81,"page":116,"children":118},"ea69eda6-d317-4981-8421-fcabb1826bfd","Privacy",{"permalink":117},"/privacy",[],{"description":120},"\u003Cp>A composable backend to build your Headless CMS, BaaS, and more.&nbsp;\u003C/p>",{"id":122,"slug":123,"vimeo_id":124,"description":125,"tile":126,"length":127,"resources":8,"people":8,"episode_number":128,"published":129,"title":130,"video_transcript_html":131,"video_transcript_text":132,"content":8,"status":133,"episode_people":134,"recommendations":159,"season":160,"seo":170},"8213071c-6d2a-4564-b058-f177900dcad1","workout-app","1163990620","Bryant is joined by Matt with the goal of building a workout fitness app in just 10 minutes using the MCP.","54b6f2d5-ab15-4465-9cbe-1ddba413084f",18,2,"2026-03-02","Workout App","\u003Cp>Speaker 0: Alright. Alright. Alright. Welcome back to another episode of one app ten minutes. I'm your host Brian Gillespie.\u003C/p>\u003Cp>Today, we have got an extra special guest that I will introduce in a moment. But if you're new to the show, let's cover the rules. Ten minutes to plan and build and no more, no less. You animals couldn't sit for an hour, so here we are trying to build apps in ten minutes. Successfully or not, we will build the app or die trying.\u003C/p>\u003Cp>As for a special guest, right, mister Matt Miner from our marketing team at Directus. Matt, how are you, sir? Happy to have you on the show.\u003C/p>\u003Cp>Speaker 1: Well, I was good. In the intro, you said I was very special, and then you just said I was special. So which is it? Very special or just a special?\u003C/p>\u003Cp>Speaker 0: Very special?\u003C/p>\u003Cp>Speaker 1: Good. Extra special. Yeah.\u003C/p>\u003Cp>Speaker 0: How special do you wanna be? Just How\u003C/p>\u003Cp>Speaker 1: special do you wanna be? Enough. You know? No. It's great to be here.\u003C/p>\u003Cp>Unlike other guests, I had a little heads up, so you couldn't catch me off guard with a random meeting. So, I'm\u003C/p>\u003Cp>Speaker 0: Yeah. I mean, that's that's fun for me, certainly, to put people on the spot. The other thing that gives me a bit of anxiety is if you have had time to think on what we're actually gonna build Yeah. I certainly have no idea. You can thank Beth on our team for that.\u003C/p>\u003Cp>Thank you, Beth. I don't know if you're gonna watch this afterwards or in post production, but I appreciate you for putting me on the spot. Yeah. So, without further ado, you know, tell me what we're building so I can put it up here on the board.\u003C/p>\u003Cp>Speaker 1: Alright. We're gonna build. Little backstory. Since having our second kid, my son, I can count on the number I can count the number of times we've slept through the night on, like, one hand. And for one for one and a half years, he he turns two in June.\u003C/p>\u003Cp>So, for, you know, obvious reasons, like our I've not been to the gym. You know, I've not been working out. I get winded when I walk up the stairs. So I've been one of the New Year's resolutions this year has been getting back\u003C/p>\u003Cp>Speaker 0: to the gym.\u003C/p>\u003Cp>Speaker 1: I need some sort of, like, fitness app, workout app sort of thing, to track workouts and things like that, as well as keep, like, kind of a running diary. And, if we wanna get, like, crazy advanced with it, I have a lot of ideas for it. But, yeah, hopefully, this is something you can build and and I can sell on the side. So that's my goal today.\u003C/p>\u003Cp>Speaker 0: Jeez. Okay. I think a native app would be very difficult in ten minutes. We could certainly cook something up with Directus. So just to to prove to the folks there's no hand wavy magic here.\u003C/p>\u003Cp>Right? We've got a blank Directus back in. I do have cloud code set up for us with the direct Us MCP already connected, which is, hopefully going to help us move faster than the speed of light. But you know the drill. We're gonna start the clock, and then we'll plan this thing out and see how far we can get in ten minutes.\u003C/p>\u003Cp>Are you ready?\u003C/p>\u003Cp>Speaker 1: I think I'm ready.\u003C/p>\u003Cp>Speaker 0: He's born ready. Here we go. Alright. Ten minutes. Here we go.\u003C/p>\u003Cp>What sort of functionality do you want out of this thing?\u003C/p>\u003Cp>Speaker 1: Alright. So, basically, I need to be able to, like, put workouts in ahead of ahead of the, when I actually go work out. So I'm thinking, like, Monday, Wednesday, Friday, I'll go to the gym. I'll do, like, a push day on Monday, pull day on Wednesday, and, like, a legs day on Friday. Right?\u003C/p>\u003Cp>Within that, like, just a basic thirty minute workout, so it'll be kind of repeatable with the exercises. And then just having a way to log, like, the weight that I do. And then if if we wanna get extra fancy with it, like, implementing some sort of, like, AI increase of, like, you know, a couple percentage points of the weight. So, like, next time when I go, there's a little bit more weight. I have to be able to rate it.\u003C/p>\u003Cp>So, like, if I can hit all of the reps during the workout workout, and if so, then, like, increase it by, like, 5% or something weight wise. Yeah. Basic functionality is that. Logging, you know, planning the workout, with sets and reps in the workout and then logging, like, easy, medium, hard for each one.\u003C/p>\u003Cp>Speaker 0: Holy cow. Okay. Alright. No short order. Right?\u003C/p>\u003Cp>I'm not sure if you're using this tool yet or is it variety of tools? I've got this thing called Super Whisperer. I'm just gonna enable this because I suck at typing. Alright. And then I'm gonna talk.\u003C/p>\u003Cp>Hi, Claude. We are going to build a workout fitness app sort of thing for my friend, Matt. I'm gonna paste some notes on our data model, what the workout should look like and the different things that we need to, have inside the app. And I want you to quickly, as fast as you can, create a plan to add that to our direct us instance, using the MCP. Alright.\u003C/p>\u003Cp>So, we got a transcript here that would have taken me forever to type. I'm gonna paste this in. Oops. Let me make sure I copy this. Cool.\u003C/p>\u003Cp>And then let's go. Right? Now, normally, I would kick this over in plan mode, but we are extremely on the clock here. We got seven minutes and thirty seconds left. It should pick up the schema and existing collections from Directus.\u003C/p>\u003Cp>Speaker 1: For one shotting.\u003C/p>\u003Cp>Speaker 0: Is this We're we're just gonna have to one shot this. You know, I'm asking it to plan first, though. Right? I did say that. Quickly create a plan.\u003C/p>\u003Cp>So here we go. We got a plan. Matt's workout app. Alright. You got exercises.\u003C/p>\u003Cp>Cool. You got workouts, day of the week, target duration, workout exercises, junction table, workout logs, sets completed, exercise, default sets, default reps. Okay. So I see reps and stuff in there. We got the exercise progress.\u003C/p>\u003Cp>Exercise logs, that's where your your rating comes in, I guess. Optionally, create a flow. Alright. So let's answer these questions. Right?\u003C/p>\u003Cp>We want, LBs, an American LBs.\u003C/p>\u003Cp>Speaker 1: In our annoying metric system.\u003C/p>\u003Cp>Speaker 0: User User specific shared templates.\u003C/p>\u003Cp>Speaker 1: Context to that would be what? If, like, I'd go to the gym with my wife, we could share, like, the same workout.\u003C/p>\u003Cp>Speaker 0: The same workout app? Yeah. Maybe. User off, I guess. Let's do that.\u003C/p>\u003Cp>Specific exercises to prepopulate, come up with a list of exercises to populate. And, actually, we can have Claude do that separately. Rating scale, one to five or thumbs up or thumbs down?\u003C/p>\u003Cp>Speaker 1: I would say easy, medium, hard. So, like, if easy, progress weight. If medium, keep weight. If hard, reduce weight or reps.\u003C/p>\u003Cp>Speaker 0: If easy, increase, medium, increase?\u003C/p>\u003Cp>Speaker 1: Medium, keep the same. And hard, reduce.\u003C/p>\u003Cp>Speaker 0: Reduce reps. Alright. Five minutes. Let's see what it comes up with. It's gonna update the plan for us, and then, Has\u003C/p>\u003Cp>Speaker 1: it already been five minutes?\u003C/p>\u003Cp>Speaker 0: Yeah. This this goes quickly. Yes. Implement my guy. Go forth.\u003C/p>\u003Cp>What do you mean? So you could see already, like, the I I know how to click all these buttons and direct us, certainly. Right? I could go through, and I could do all this. And I've done it pretty quickly.\u003C/p>\u003Cp>But, AI is such a I it gives us so much leverage in this equation.\u003C/p>\u003Cp>Speaker 1: That's the thing, though. Right? Like, does anybody actually enjoy building out the data models, like, on the back end now? Like, this it's it's kind of fun, I guess, like, putting it's like putting a puzzle together, but, like, it feels better if you just get a foundation and then be able to, like, tweak on it. Right?\u003C/p>\u003Cp>I guess, posing that question to you, like, do you like building out the back end or do you care about the front end?\u003C/p>\u003Cp>Speaker 0: You know, I am I'm a results guy, man. Yes. You are. Do you know? I\u003C/p>\u003Cp>Speaker 1: You better get results.\u003C/p>\u003Cp>Speaker 0: Like the ship stuff. Yeah.\u003C/p>\u003Cp>Speaker 1: I I I need this.\u003C/p>\u003Cp>Speaker 0: On the spot. Like, I you know, I I am kind of sad on some level of, like, hey. It's not me doing the work anymore, but, you know, I've come to realize that, like, the the strength that I have is not actually writing the code or clicking the buttons. Right? It is putting the the stuff together.\u003C/p>\u003Cp>So we are at three forty three. What is Directus doing here? What is claw doing? Right? You can see it's creating fields for all the different relationships.\u003C/p>\u003Cp>It's adding those relationships. Now it's seeding the exercises. Yes. Let's create the default workout templates and create the flow to auto progress. So, again, this is this is a terrible way to build something for actual production in that, I've just got this set up in yellow mode, and, basically, I'm barely even reading these things.\u003C/p>\u003Cp>Yeah. We're I didn't even give you a chance to to comment on this. Right. But the the principles here are sound. Right?\u003C/p>\u003Cp>And that you've got a thinking partner in in something like Cloud Code or, you know, it could just be Cloud or Chad GPT. It doesn't really matter which AI you're using. It's It's helpful for thinking through these things. So if we take a look, right, now we've got our data model. We've got our exercise progress.\u003C/p>\u003Cp>We've got your different workouts with your different exercises already created here. Alright. You got your workout logs, which I'm assuming here's your workout.\u003C/p>\u003Cp>Speaker 1: So Monday. Yeah. And that's the planning of it. Right? It's like yeah.\u003C/p>\u003Cp>Monday. Well, probably\u003C/p>\u003Cp>Speaker 0: Oh, this is this is your yeah. The workout log. Workouts would be this is does this have your weight? No. It doesn't have the weights on it, does it?\u003C/p>\u003Cp>Yeah. So that part of it we're missing. Right? Maybe that is\u003C/p>\u003Cp>Speaker 1: And I guess we aren't specific about that. Yeah. Well, there's weight at least in the logs.\u003C/p>\u003Cp>Speaker 0: Yeah. So let's set up the Monday. Yesterday, Matt did this. Totally did it.\u003C/p>\u003Cp>Speaker 1: Totally did it.\u003C/p>\u003Cp>Speaker 0: I swear. Alright. So, you create your exercise log. You got a bench press, etcetera. Right?\u003C/p>\u003Cp>You completed five sets of five reps at two twenty five. Mhmm. Mhmm. Beast. Mhmm.\u003C/p>\u003Cp>Alright. So there you go. You got your exercise log. Let's check on what we're doing. Right?\u003C/p>\u003Cp>It is creating some operations now. So we should see, like, a flow in here. Should be creating these operations for it. Okay. We got a minute and twelve seconds left.\u003C/p>\u003Cp>Speaker 1: I should have not said my sob story at the beginning. We'd have more time. But, I mean, this looks great. Right? Like, I think what's really interesting about it is that, you know, not even using Directus as, like, the interface for this, like, just slapping together a lovable front end or something that's much easier and accessible, like, from my mobile device than just, like, while I'm there, just blah blah blah.\u003C/p>\u003Cp>Speaker 0: Yeah. Alright. So we're gonna go in, and we're gonna create this workout log again. It's Wednesday, pool day. Except you did it on Tuesday.\u003C/p>\u003Cp>It is we're gonna do hard incline. Oh, what's the pull? Lat pull downs. There you go. You had 20 sets.\u003C/p>\u003Cp>20 reps. Crushed it. 110 pounds.\u003C/p>\u003Cp>Speaker 1: I had my creosote\u003C/p>\u003Cp>Speaker 0: right there. Let's see what happens. User exercise progress. Did we did we get an error on the flow? Oh, we got five seconds left.\u003C/p>\u003Cp>Know. Out of time. No. Run scripts. Cannot read properties.\u003C/p>\u003Cp>Okay. So, you know, Claude screwed up a bit on our run script somewhere in here where, you know, it's it's wrote some JavaScript code, which is nice. One of the nice things about the flows inside Directus is you can just write arbitrary JavaScript and run that. But there's a a few debugging issues. Right?\u003C/p>\u003Cp>So ten minutes in this case. And, you know, let's let's take a look. Right? Let's go to the tally. We've got got the workout exercises.\u003C/p>\u003Cp>We got the reps. We got your Monday, Wednesday, Friday, and we got the ability to log the workout. We got the rating the workouts. What we did not get is the automatic increase. So that logic, we did not get.\u003C/p>\u003Cp>Speaker 1: And I would say that that So instead of the way it's interesting how I applied it to the full workout instead of the individual, like, exercises, which is probably why it got funky because it was probably waiting for us to put in all of the\u003C/p>\u003Cp>Speaker 0: like, hey. Was this individual exercise hard or not? That's a good insight. Right? So it does show you I I I think I'm impressed with how far you can get into\u003C/p>\u003Cp>Speaker 1: I mean\u003C/p>\u003Cp>Speaker 0: that's right.\u003C/p>\u003Cp>Speaker 1: Man, this is I mean, this is really the basis. You see a lot of apps out there like Fitbot or, like, Fitness AI, which are solid, but, you know, they're not customized to you. And being able to just, like, do this, get it custom, share it, you know, with whoever I'm working out with, it's powerful.\u003C/p>\u003Cp>Speaker 0: Yeah. Another ten, fifteen minutes, we could have had, you know, nano banana generate images of these or we could have copied images. Like, diagrams of how how to do the exercises. Right? Yeah.\u003C/p>\u003Cp>Could create workout templates. Again, like, you could have, like, auto progression or auto calculation on there. And then even with the AI chat inside Directus. Right? Mhmm.\u003C/p>\u003Cp>Hey, man. Plan me a new workout. Right? Even if you let's say you you haven't built that, that front end yet Yeah. The native app that we're gonna build in ten minutes.\u003C/p>\u003Cp>Yo. You could still interact with this on your phone\u003C/p>\u003Cp>Speaker 1: Yeah.\u003C/p>\u003Cp>Speaker 0: Because it is all mobile responsive. Right? And I can open up the AI chat inside here, add an OpenAI API key, and, you know, I've got somebody that can log all my workouts or create new workouts for me as well right inside Directus. I don't have to code anything.\u003C/p>\u003Cp>Speaker 1: Yeah. It's wild.\u003C/p>\u003Cp>Speaker 0: Yeah. Well Well You know? I mean I\u003C/p>\u003Cp>Speaker 1: we got far. We got farther than it would have taken me if I was gonna do this myself.\u003C/p>\u003Cp>Speaker 0: Well, we'll give this, like, the the fair to Midland. Like, meh, like\u003C/p>\u003Cp>Speaker 1: Yeah.\u003C/p>\u003Cp>Speaker 0: It's okay.\u003C/p>\u003Cp>Speaker 1: What is it? Gladiator? Don't know if it's up or down yet. I'll just give it this side. Don't know whether to kill it or let it live.\u003C/p>\u003Cp>Speaker 0: There you go. Yeah. The alright. Yeah. Well, Matt, thanks for joining me.\u003C/p>\u003Cp>This is fun. Yeah. I do like, this is something that I I need myself personally, so I do kinda wanna keep working on it on the slide.\u003C/p>\u003Cp>Speaker 1: Hey, man.\u003C/p>\u003Cp>Speaker 0: This is fun. Great idea, man.\u003C/p>\u003Cp>Speaker 1: Everybody's stealing my ideas lately. I'm just kidding. Give me access to this. I I wanna see you know what? We can also build a scoreboard so we can see, like, who can how much more I work with, bro.\u003C/p>\u003Cp>Speaker 0: Bro, I used to say\u003C/p>\u003Cp>Speaker 1: power I know. I I can't. I've seen you in person. There's no way. You're you got me beat.\u003C/p>\u003Cp>Speaker 0: Short and squat, dude.\u003C/p>\u003Cp>Speaker 1: See them. Alright. Cool. Well, thanks, man. Appreciate it.\u003C/p>\u003Cp>And, yeah, this is awesome.\u003C/p>\u003Cp>Speaker 0: Yeah. Thoroughly enjoyed it. Alright. Everybody out there, that is it for this episode of one app ten minutes. Thanks for joining.\u003C/p>\u003Cp>Stay tuned for more episodes.\u003C/p>","Alright. Alright. Alright. Welcome back to another episode of one app ten minutes. I'm your host Brian Gillespie. Today, we have got an extra special guest that I will introduce in a moment. But if you're new to the show, let's cover the rules. Ten minutes to plan and build and no more, no less. You animals couldn't sit for an hour, so here we are trying to build apps in ten minutes. Successfully or not, we will build the app or die trying. As for a special guest, right, mister Matt Miner from our marketing team at Directus. Matt, how are you, sir? Happy to have you on the show. Well, I was good. In the intro, you said I was very special, and then you just said I was special. So which is it? Very special or just a special? Very special? Good. Extra special. Yeah. How special do you wanna be? Just How special do you wanna be? Enough. You know? No. It's great to be here. Unlike other guests, I had a little heads up, so you couldn't catch me off guard with a random meeting. So, I'm Yeah. I mean, that's that's fun for me, certainly, to put people on the spot. The other thing that gives me a bit of anxiety is if you have had time to think on what we're actually gonna build Yeah. I certainly have no idea. You can thank Beth on our team for that. Thank you, Beth. I don't know if you're gonna watch this afterwards or in post production, but I appreciate you for putting me on the spot. Yeah. So, without further ado, you know, tell me what we're building so I can put it up here on the board. Alright. We're gonna build. Little backstory. Since having our second kid, my son, I can count on the number I can count the number of times we've slept through the night on, like, one hand. And for one for one and a half years, he he turns two in June. So, for, you know, obvious reasons, like our I've not been to the gym. You know, I've not been working out. I get winded when I walk up the stairs. So I've been one of the New Year's resolutions this year has been getting back to the gym. I need some sort of, like, fitness app, workout app sort of thing, to track workouts and things like that, as well as keep, like, kind of a running diary. And, if we wanna get, like, crazy advanced with it, I have a lot of ideas for it. But, yeah, hopefully, this is something you can build and and I can sell on the side. So that's my goal today. Jeez. Okay. I think a native app would be very difficult in ten minutes. We could certainly cook something up with Directus. So just to to prove to the folks there's no hand wavy magic here. Right? We've got a blank Directus back in. I do have cloud code set up for us with the direct Us MCP already connected, which is, hopefully going to help us move faster than the speed of light. But you know the drill. We're gonna start the clock, and then we'll plan this thing out and see how far we can get in ten minutes. Are you ready? I think I'm ready. He's born ready. Here we go. Alright. Ten minutes. Here we go. What sort of functionality do you want out of this thing? Alright. So, basically, I need to be able to, like, put workouts in ahead of ahead of the, when I actually go work out. So I'm thinking, like, Monday, Wednesday, Friday, I'll go to the gym. I'll do, like, a push day on Monday, pull day on Wednesday, and, like, a legs day on Friday. Right? Within that, like, just a basic thirty minute workout, so it'll be kind of repeatable with the exercises. And then just having a way to log, like, the weight that I do. And then if if we wanna get extra fancy with it, like, implementing some sort of, like, AI increase of, like, you know, a couple percentage points of the weight. So, like, next time when I go, there's a little bit more weight. I have to be able to rate it. So, like, if I can hit all of the reps during the workout workout, and if so, then, like, increase it by, like, 5% or something weight wise. Yeah. Basic functionality is that. Logging, you know, planning the workout, with sets and reps in the workout and then logging, like, easy, medium, hard for each one. Holy cow. Okay. Alright. No short order. Right? I'm not sure if you're using this tool yet or is it variety of tools? I've got this thing called Super Whisperer. I'm just gonna enable this because I suck at typing. Alright. And then I'm gonna talk. Hi, Claude. We are going to build a workout fitness app sort of thing for my friend, Matt. I'm gonna paste some notes on our data model, what the workout should look like and the different things that we need to, have inside the app. And I want you to quickly, as fast as you can, create a plan to add that to our direct us instance, using the MCP. Alright. So, we got a transcript here that would have taken me forever to type. I'm gonna paste this in. Oops. Let me make sure I copy this. Cool. And then let's go. Right? Now, normally, I would kick this over in plan mode, but we are extremely on the clock here. We got seven minutes and thirty seconds left. It should pick up the schema and existing collections from Directus. For one shotting. Is this We're we're just gonna have to one shot this. You know, I'm asking it to plan first, though. Right? I did say that. Quickly create a plan. So here we go. We got a plan. Matt's workout app. Alright. You got exercises. Cool. You got workouts, day of the week, target duration, workout exercises, junction table, workout logs, sets completed, exercise, default sets, default reps. Okay. So I see reps and stuff in there. We got the exercise progress. Exercise logs, that's where your your rating comes in, I guess. Optionally, create a flow. Alright. So let's answer these questions. Right? We want, LBs, an American LBs. In our annoying metric system. User User specific shared templates. Context to that would be what? If, like, I'd go to the gym with my wife, we could share, like, the same workout. The same workout app? Yeah. Maybe. User off, I guess. Let's do that. Specific exercises to prepopulate, come up with a list of exercises to populate. And, actually, we can have Claude do that separately. Rating scale, one to five or thumbs up or thumbs down? I would say easy, medium, hard. So, like, if easy, progress weight. If medium, keep weight. If hard, reduce weight or reps. If easy, increase, medium, increase? Medium, keep the same. And hard, reduce. Reduce reps. Alright. Five minutes. Let's see what it comes up with. It's gonna update the plan for us, and then, Has it already been five minutes? Yeah. This this goes quickly. Yes. Implement my guy. Go forth. What do you mean? So you could see already, like, the I I know how to click all these buttons and direct us, certainly. Right? I could go through, and I could do all this. And I've done it pretty quickly. But, AI is such a I it gives us so much leverage in this equation. That's the thing, though. Right? Like, does anybody actually enjoy building out the data models, like, on the back end now? Like, this it's it's kind of fun, I guess, like, putting it's like putting a puzzle together, but, like, it feels better if you just get a foundation and then be able to, like, tweak on it. Right? I guess, posing that question to you, like, do you like building out the back end or do you care about the front end? You know, I am I'm a results guy, man. Yes. You are. Do you know? I You better get results. Like the ship stuff. Yeah. I I I need this. On the spot. Like, I you know, I I am kind of sad on some level of, like, hey. It's not me doing the work anymore, but, you know, I've come to realize that, like, the the strength that I have is not actually writing the code or clicking the buttons. Right? It is putting the the stuff together. So we are at three forty three. What is Directus doing here? What is claw doing? Right? You can see it's creating fields for all the different relationships. It's adding those relationships. Now it's seeding the exercises. Yes. Let's create the default workout templates and create the flow to auto progress. So, again, this is this is a terrible way to build something for actual production in that, I've just got this set up in yellow mode, and, basically, I'm barely even reading these things. Yeah. We're I didn't even give you a chance to to comment on this. Right. But the the principles here are sound. Right? And that you've got a thinking partner in in something like Cloud Code or, you know, it could just be Cloud or Chad GPT. It doesn't really matter which AI you're using. It's It's helpful for thinking through these things. So if we take a look, right, now we've got our data model. We've got our exercise progress. We've got your different workouts with your different exercises already created here. Alright. You got your workout logs, which I'm assuming here's your workout. So Monday. Yeah. And that's the planning of it. Right? It's like yeah. Monday. Well, probably Oh, this is this is your yeah. The workout log. Workouts would be this is does this have your weight? No. It doesn't have the weights on it, does it? Yeah. So that part of it we're missing. Right? Maybe that is And I guess we aren't specific about that. Yeah. Well, there's weight at least in the logs. Yeah. So let's set up the Monday. Yesterday, Matt did this. Totally did it. Totally did it. I swear. Alright. So, you create your exercise log. You got a bench press, etcetera. Right? You completed five sets of five reps at two twenty five. Mhmm. Mhmm. Beast. Mhmm. Alright. So there you go. You got your exercise log. Let's check on what we're doing. Right? It is creating some operations now. So we should see, like, a flow in here. Should be creating these operations for it. Okay. We got a minute and twelve seconds left. I should have not said my sob story at the beginning. We'd have more time. But, I mean, this looks great. Right? Like, I think what's really interesting about it is that, you know, not even using Directus as, like, the interface for this, like, just slapping together a lovable front end or something that's much easier and accessible, like, from my mobile device than just, like, while I'm there, just blah blah blah. Yeah. Alright. So we're gonna go in, and we're gonna create this workout log again. It's Wednesday, pool day. Except you did it on Tuesday. It is we're gonna do hard incline. Oh, what's the pull? Lat pull downs. There you go. You had 20 sets. 20 reps. Crushed it. 110 pounds. I had my creosote right there. Let's see what happens. User exercise progress. Did we did we get an error on the flow? Oh, we got five seconds left. Know. Out of time. No. Run scripts. Cannot read properties. Okay. So, you know, Claude screwed up a bit on our run script somewhere in here where, you know, it's it's wrote some JavaScript code, which is nice. One of the nice things about the flows inside Directus is you can just write arbitrary JavaScript and run that. But there's a a few debugging issues. Right? So ten minutes in this case. And, you know, let's let's take a look. Right? Let's go to the tally. We've got got the workout exercises. We got the reps. We got your Monday, Wednesday, Friday, and we got the ability to log the workout. We got the rating the workouts. What we did not get is the automatic increase. So that logic, we did not get. And I would say that that So instead of the way it's interesting how I applied it to the full workout instead of the individual, like, exercises, which is probably why it got funky because it was probably waiting for us to put in all of the like, hey. Was this individual exercise hard or not? That's a good insight. Right? So it does show you I I I think I'm impressed with how far you can get into I mean that's right. Man, this is I mean, this is really the basis. You see a lot of apps out there like Fitbot or, like, Fitness AI, which are solid, but, you know, they're not customized to you. And being able to just, like, do this, get it custom, share it, you know, with whoever I'm working out with, it's powerful. Yeah. Another ten, fifteen minutes, we could have had, you know, nano banana generate images of these or we could have copied images. Like, diagrams of how how to do the exercises. Right? Yeah. Could create workout templates. Again, like, you could have, like, auto progression or auto calculation on there. And then even with the AI chat inside Directus. Right? Mhmm. Hey, man. Plan me a new workout. Right? Even if you let's say you you haven't built that, that front end yet Yeah. The native app that we're gonna build in ten minutes. Yo. You could still interact with this on your phone Yeah. Because it is all mobile responsive. Right? And I can open up the AI chat inside here, add an OpenAI API key, and, you know, I've got somebody that can log all my workouts or create new workouts for me as well right inside Directus. I don't have to code anything. Yeah. It's wild. Yeah. Well Well You know? I mean I we got far. We got farther than it would have taken me if I was gonna do this myself. Well, we'll give this, like, the the fair to Midland. Like, meh, like Yeah. It's okay. What is it? Gladiator? Don't know if it's up or down yet. I'll just give it this side. Don't know whether to kill it or let it live. There you go. Yeah. The alright. Yeah. Well, Matt, thanks for joining me. This is fun. Yeah. I do like, this is something that I I need myself personally, so I do kinda wanna keep working on it on the slide. Hey, man. This is fun. Great idea, man. Everybody's stealing my ideas lately. I'm just kidding. Give me access to this. I I wanna see you know what? We can also build a scoreboard so we can see, like, who can how much more I work with, bro. Bro, I used to say power I know. I I can't. I've seen you in person. There's no way. You're you got me beat. Short and squat, dude. See them. Alright. Cool. Well, thanks, man. Appreciate it. And, yeah, this is awesome. Yeah. Thoroughly enjoyed it. Alright. Everybody out there, that is it for this episode of one app ten minutes. Thanks for joining. Stay tuned for more episodes.","published",[135,149],{"people_id":136},{"id":137,"first_name":138,"last_name":139,"avatar":140,"bio":141,"links":142},"791e1503-1d88-463d-9347-0b9192933576","Bryant","Gillespie","9013afc8-e8d7-4182-9b18-44db08117bb9","Developer Advocate at Directus",[143,146],{"url":144,"service":145},"https://directus.io/team/bryant-gillespie","website",{"service":147,"url":148},"github","https://github.com/bryantgillespie",{"people_id":150},{"id":151,"first_name":152,"last_name":153,"avatar":154,"bio":155,"links":156},"ca1ac688-ecac-4f25-a4e9-7daf52c8235a","Matt","Minor","b4402ab0-41e4-4fc6-8bf0-769bf39ff114","Director of Demand Generation at Directus",[157],{"url":158,"service":145},"https://directus.io/team/matt-minor",[],{"id":161,"number":162,"year":163,"episodes":164,"show":167},"9095d401-66bc-416a-997b-f038365ce5ed",4,"2026",[165,122,166],"2c5b1e3e-c12f-4dc5-aef8-52082d41c192","6352abf0-f785-4887-9ee8-44553ea3b55e",{"title":168,"tile":169},"100 Apps In 100 Hours","fb0f9d45-be21-4634-94d4-2ef1cc5146f2",{"title":8,"meta_description":8},{"id":166,"slug":172,"season":161,"vimeo_id":173,"description":174,"tile":175,"length":176,"resources":8,"people":8,"episode_number":177,"published":129,"title":178,"video_transcript_html":179,"video_transcript_text":180,"content":8,"seo":181,"status":133,"episode_people":182,"recommendations":186},"book-rating-app","1163987834","Bryant is joined by Vicky and Beth with the goal of building a book rating app in just 10 minutes using the MCP.","702ee809-e53c-43db-a8ee-6c63901ef22d",16,3,"Book Rating App","\u003Cp>Speaker 0: Welcome back to yet another episode of one app, ten minutes, your favorite show where we build apps, clones, whatever. Interesting stuff in ten minutes or less. Used to be I had an hour to do these, but you guys have low attention spans now. So we're down to ten minutes. Super excited for this episode.\u003C/p>\u003Cp>Very, very excited. We've got, a couple of rules before we dive in. Ten minutes to plan and build. So no more, no less. And then number two, the anti rule.\u003C/p>\u003Cp>Use whatever you have at your disposal. And I have got two amazing people from our team at Directus at at my disposal today, Beth and Vicky. Welcome to the show, guys.\u003C/p>\u003Cp>Speaker 1: Thanks for asking.\u003C/p>\u003Cp>Speaker 0: Yes. Yes. This is very exciting. Have you guys given any thought to what we're actually going to build today? I think You have a plan?\u003C/p>\u003Cp>We got a plan. Okay. That's good because I have a little idea what we're building, and that is, terrifying for me not knowing what we're actually going to build. So do you guys wanna lay it on me?\u003C/p>\u003Cp>Speaker 2: Yes. So we want to build a book rating app, because\u003C/p>\u003Cp>Speaker 1: in the\u003C/p>\u003Cp>Speaker 2: new year, we want to read more books.\u003C/p>\u003Cp>Speaker 0: And Book. Rating app. If I can ask, how did you guys come up with a a book rating app?\u003C/p>\u003Cp>Speaker 1: We're big on goals this year. So something Vicky and I have been talking about is, you know, just pull our goals out for the year. You gotta have a goal. You gotta have a purpose. You gotta have a track.\u003C/p>\u003Cp>You gotta gotta track your track your goals.\u003C/p>\u003Cp>Speaker 0: So is is book reading is, like, reading more books, like, near the top of the list? What what else is in consideration?\u003C/p>\u003Cp>Speaker 1: Oh, it's it's at the top of the list, for sure, for me at least. Vicky, have you got any other any other goals at the top of the list?\u003C/p>\u003Cp>Speaker 2: Lots of goals, lots of New Year's resolution, but this one's been trying to read more books for, like, the past ten years now. But\u003C/p>\u003Cp>Speaker 0: And today, we're gonna build the app that makes you read more books. I love it.\u003C/p>\u003Cp>Speaker 2: Keeps me accountable.\u003C/p>\u003Cp>Speaker 0: Okay. Alright. Well, you guys know how the show works. I'm going to start the timer. Basically, what we've got here is a totally blank instance of Directus.\u003C/p>\u003Cp>I've got, our Directus MCP connected so that we can, leverage some AI tools, but I'm gonna hit go. Are you guys ready?\u003C/p>\u003Cp>Speaker 1: Are you ready?\u003C/p>\u003Cp>Speaker 0: I I was born in. Sync. I know. That is, that's a good thing.\u003C/p>\u003Cp>Speaker 1: I'm jealous.\u003C/p>\u003Cp>Speaker 0: Alright. So when it comes to our book rating app, what kind of functionality do you guys wanna see out of this thing?\u003C/p>\u003Cp>Speaker 1: So we need some book information. So that would be title, genre, author\u003C/p>\u003Cp>Speaker 0: Okay.\u003C/p>\u003Cp>Speaker 1: And then the name of genre.\u003C/p>\u003Cp>Speaker 0: You guys are going too fast for me. Alright. We need books. We need genres. We need author, which clearly I can't spell.\u003C/p>\u003Cp>Probably a good thing we're gonna use AI. And then we like, are you guys are gonna share this app? Like, are you going to compete for who reads the most books?\u003C/p>\u003Cp>Speaker 1: Sure. It'd be the leaderboard. Would\u003C/p>\u003Cp>Speaker 0: be good. Writing, comments, notes. We wanna build a\u003C/p>\u003Cp>Speaker 1: Live it.\u003C/p>\u003Cp>Speaker 0: Book leaderboard. Leaderboard. Book leaderboard. Okay. Genre, author.\u003C/p>\u003Cp>Cool.\u003C/p>\u003Cp>Speaker 1: Maybe some notes. Yeah. You've got comments. Perfect.\u003C/p>\u003Cp>Speaker 0: Comments, notes. Notes is fine. We'll change that up. Alright. So, yeah, this is just the the functionality that we need.\u003C/p>\u003Cp>The first thing I'm gonna do is hop into Claude, and I've I've got this tool called Super Whisperer that I've been using that just transcribes my voice. We're pressed for time. So here we go. Hi, Claude. I want you to help us build a book rating app for my two amazing colleagues.\u003C/p>\u003Cp>They wanna read more books in the new year. I'm going to paste the outline of a Directus schema. I want you to fill that out, and then I want you to, plan with me quickly and then add it to our directus instance for us. Alright. So click a button.\u003C/p>\u003Cp>This thing transcribes everything for me with nice punctuation and no misspellings. You know, I've got these these sausage fingers I complain about all the time. Alright. So we could see that the MCP is now looking at the direct to schema, which is, should be blank in this case. And now Claude should oh, I gotta give it the actual outline, though, don't I?\u003C/p>\u003Cp>That makes sense. There we go.\u003C/p>\u003Cp>Speaker 1: It's very polite about it.\u003C/p>\u003Cp>Speaker 0: It is very polite. Yeah. I do I I'm not sure if if you're a person who who does the please and thank you, but, you know, I do as well. I'm like, hey. This could end in April.\u003C/p>\u003Cp>I don't I don't wanna be terminated. So Awesome. Alright. So we got a couple of questions, guys. Genre collections.\u003C/p>\u003Cp>Let's do a separate genre collection. I'll make that call for you. As far as the rating scale, do we wanna do one to five stars, one to ten, one to a 100?\u003C/p>\u003Cp>Speaker 1: One to five stars, please. One to five stars.\u003C/p>\u003Cp>Speaker 0: One to five stars. Ratings should track which user for sure. Leaderboard leaderboard. I'll set up. Do you guys care about cover image, publication year?\u003C/p>\u003Cp>Let's\u003C/p>\u003Cp>Speaker 1: give me to description\u003C/p>\u003Cp>Speaker 0: for the book. Cool. Alright. Go, Claude. Go.\u003C/p>\u003Cp>We've got, six minutes and\u003C/p>\u003Cp>Speaker 1: We're doing well on time. I\u003C/p>\u003Cp>Speaker 0: think we are. Yeah. Certainly. Ready. Go for it.\u003C/p>\u003Cp>Alright. So the native MCP has access to create collections, relationships, and also fields inside your direct assistance. So we could see here here, this is using Claude. Of course, if you're not using Claude code, which is, you know, more technical, you know, the terminal UI is maybe not the best for some of this stuff. If you're using cursor or chat GPT or just the cloud AI, you can do these same operations.\u003C/p>\u003Cp>Right? The other thing I'm doing here is just enabling yellow mode, which, Jonathan, if you're watching this one, please don't get mad at me. This is just a test instance. Never recommend that in production because, you know, any schema changes, you can lose your data. Alright.\u003C/p>\u003Cp>So what do we see? How are we looking, Beth? I think authors good. Book ratings, date created, the user. Cool.\u003C/p>\u003Cp>Books. Alright. Let's see if this actually works. Cool. Okay.\u003C/p>\u003Cp>What's the what's the first one\u003C/p>\u003Cp>Speaker 1: you're looking? Listening to an audiobook called Thinking in Bets.\u003C/p>\u003Cp>Speaker 0: Thinking in Bets. Does it\u003C/p>\u003Cp>Speaker 1: making smart decisions without all the data. It was actually, recommended by another one of our colleagues.\u003C/p>\u003Cp>Speaker 0: There we go. Alright. Who is the author?\u003C/p>\u003Cp>Speaker 1: I have my phone ready because I knew this was coming. Annie Duke.\u003C/p>\u003Cp>Speaker 0: Annie Duke? Annie Duke?\u003C/p>\u003Cp>Speaker 1: Yeah. Beautiful.\u003C/p>\u003Cp>Speaker 0: Alright. It is, I don't I don't know the genre, but, are you far enough along to are you far enough along to give it a rating?\u003C/p>\u003Cp>Speaker 1: So far, I like it. I think it's it's hovering around, like, like, a three or four. Let's see four for now. It starts off. I like it.\u003C/p>\u003Cp>I like it.\u003C/p>\u003Cp>Speaker 0: It's interesting. There we go. Alright. So there we go. We've got a book.\u003C/p>\u003Cp>We've got some book ratings. We've got an author. We've got a genre. We could see all that being created. Let's just hop in here and, like, take Claude, populate our data with some books and genres plus authors.\u003C/p>\u003Cp>So while it does that, we got three minutes and fifty six seconds. You know, I could certainly give you time. A plethora. That's a great way to describe it. Alright.\u003C/p>\u003Cp>Let's let's work on creating a dashboard so we could compare you guys. Right? Who is going to win. So book ratings, we we see the user there. I've it's locked to myself.\u003C/p>\u003Cp>Okay. I'm just gonna quickly change that to be not read only so I can change it. And I'm gonna create you guys as users real quick. Obviously, you're not gonna be able to log in, but I wanna have you guys in here. Alright.\u003C/p>\u003Cp>This is best book rating. Alright. Vicky, do you or what book are you reading?\u003C/p>\u003Cp>Speaker 2: Well, I watched the housemaid, the movie, but I realized it was a book too. So I'm starting to read that to compare to the movie itself. Sorry. I'm a movie first.\u003C/p>\u003Cp>Speaker 1: It's good because then you can, like, picture them.\u003C/p>\u003Cp>Speaker 0: Who is the who's the author?\u003C/p>\u003Cp>Speaker 2: The author is Freda McFadden. So f r e I d a, and then last name Freda\u003C/p>\u003Cp>Speaker 0: McFadden. Alright. Look at those typing skills. And that is I don't know what the genre is.\u003C/p>\u003Cp>Speaker 2: Like, thriller suspense.\u003C/p>\u003Cp>Speaker 0: Thriller.\u003C/p>\u003Cp>Speaker 1: Thriller is good.\u003C/p>\u003Cp>Speaker 0: Not to be confused with the Michael Jackson song. Okay. Alright. So you both have two ratings in here. Let's create the dashboard.\u003C/p>\u003Cp>Dashboard. We'll just call it dashboard, which bragging on my spelling, that is totally misspelled. Alright. So we are going to add a dashboard. Let's check-in on Claude.\u003C/p>\u003Cp>Go ahead. Create a lot. Fire away, my friend. Create some book ratings for the users, Beth and Vicky. Let's see if it'll do that while we're doing this.\u003C/p>\u003Cp>Alright. So we wanna see who has read the most books.\u003C/p>\u003Cp>Speaker 1: Beth.\u003C/p>\u003Cp>Speaker 0: Let's just do a simple metric, book rating. What is the field that we're gonna count? Let's just count the ID of the book. So we're gonna count distinct IDs, and we're gonna add a filter where the user first name contains Beth. Alright.\u003C/p>\u003Cp>This should give us that. We'll add a header. This is best books. Bath pick a color. 55.\u003C/p>\u003Cp>No pressure.\u003C/p>\u003Cp>Speaker 1: Orange. Orange. Orange. Orange. Thank you.\u003C/p>\u003Cp>Speaker 0: GraphQL validation error. Why does it matter like that? Field. Oh, I didn't select a field. Best books.\u003C/p>\u003Cp>Alright. We're gonna duplicate this. And now we got Vicky. Vicky, pick a color.\u003C/p>\u003Cp>Speaker 2: Green.\u003C/p>\u003Cp>Speaker 0: Green. Vicky's books. There you go. You got zero. Looks like Beth wins.\u003C/p>\u003Cp>Can't query the user's collection directly. Do we have some books in here? Let's alright. Quickly, five seconds left. Come on.\u003C/p>\u003Cp>Let's help Vicky out. Book pick a book. Oh, Vicky. Of course. There you go.\u003C/p>\u003Cp>Oh, no. The rating is required. Vicky likes it. It is a five. There you go.\u003C/p>\u003Cp>And boom. No. Refresh. Still doesn't like you. What happened?\u003C/p>\u003Cp>Speaker 1: I think you didn't assign the user to be away from\u003C/p>\u003Cp>Speaker 0: Yeah. It's been a preset me. So Yeah. It looks like I read more books than both of of you guys in this scenario. But alright.\u003C/p>\u003Cp>It will end on a one to one draw. This is the book rating app. You know, I think it would have been fun to maybe put together, like, a front end for this, but, the fact that we could put this together super quickly with you guys in in ten minutes, I think that's a win. Do we\u003C/p>\u003Cp>Speaker 1: Definitely a win. I feel like we should insert the win, little little frame. I think it would be really good if we had, you know, they had do, like, the top 100 books ever or, like, the best 500 books ever. You could so easily, like, include all of those books and just tick them off and rate it that way.\u003C/p>\u003Cp>Speaker 0: Is that what you guys are gonna do? Like No. Probably not.\u003C/p>\u003Cp>Speaker 1: I have I have my collection here and in the library a lot these days. So\u003C/p>\u003Cp>Speaker 0: That's very ambitious. 500 books this year.\u003C/p>\u003Cp>Speaker 1: Oh, no. Absolutely not. I I said 52 books this year, one a week.\u003C/p>\u003Cp>Speaker 0: 52 a week. 52 a week.\u003C/p>\u003Cp>Speaker 1: Really? I'm I'm I'm aiming for a 100, but I don't want to I don't want two a week. Because it's also, like, audiobooks and short books and poetry books. Less screen time for me is the aim. Vicky, have you got a number in mind?\u003C/p>\u003Cp>Speaker 2: I was trying to aim for 5 a year, but\u003C/p>\u003Cp>Speaker 1: it's so soft. It's good.\u003C/p>\u003Cp>Speaker 0: $5.05 a year. Yeah. I'd look if you're trying to hit 52, I've got a bunch of kids' books that I can like, my kids have exhausted. I can send them don't just use. You could you could blow through them, like, three, four, five a day.\u003C/p>\u003Cp>No no big deal. Beautiful.\u003C/p>\u003Cp>Speaker 2: There's no rules to that leaderboard, so I might as well take it.\u003C/p>\u003Cp>Speaker 0: Yeah. No validation. It's no no doctor Seuss. No no big deal. Anyway, alright, guys.\u003C/p>\u003Cp>Thank you so\u003C/p>\u003Cp>Speaker 1: much, Brian.\u003C/p>\u003Cp>Speaker 0: I've I've really enjoyed this. I hope you guys come back on. We can expand the book rating app. And the next next challenge we'll do is actually making you guys read the book somehow. So I I don't know how to build the software to do that yet, but next time.\u003C/p>\u003Cp>Speaker 1: We'll get we'll get AI to read it for us and take it to digest them and to feed them back to us. It'll be fine.\u003C/p>\u003Cp>Speaker 0: There you go. That's an idea. Alright. Thanks for coming on. Really enjoyed it, and stay tuned for the next episode of one app, ten minutes.\u003C/p>\u003Cp>Speaker 1: Bye. See you guys.\u003C/p>","Welcome back to yet another episode of one app, ten minutes, your favorite show where we build apps, clones, whatever. Interesting stuff in ten minutes or less. Used to be I had an hour to do these, but you guys have low attention spans now. So we're down to ten minutes. Super excited for this episode. Very, very excited. We've got, a couple of rules before we dive in. Ten minutes to plan and build. So no more, no less. And then number two, the anti rule. Use whatever you have at your disposal. And I have got two amazing people from our team at Directus at at my disposal today, Beth and Vicky. Welcome to the show, guys. Thanks for asking. Yes. Yes. This is very exciting. Have you guys given any thought to what we're actually going to build today? I think You have a plan? We got a plan. Okay. That's good because I have a little idea what we're building, and that is, terrifying for me not knowing what we're actually going to build. So do you guys wanna lay it on me? Yes. So we want to build a book rating app, because in the new year, we want to read more books. And Book. Rating app. If I can ask, how did you guys come up with a a book rating app? We're big on goals this year. So something Vicky and I have been talking about is, you know, just pull our goals out for the year. You gotta have a goal. You gotta have a purpose. You gotta have a track. You gotta gotta track your track your goals. So is is book reading is, like, reading more books, like, near the top of the list? What what else is in consideration? Oh, it's it's at the top of the list, for sure, for me at least. Vicky, have you got any other any other goals at the top of the list? Lots of goals, lots of New Year's resolution, but this one's been trying to read more books for, like, the past ten years now. But And today, we're gonna build the app that makes you read more books. I love it. Keeps me accountable. Okay. Alright. Well, you guys know how the show works. I'm going to start the timer. Basically, what we've got here is a totally blank instance of Directus. I've got, our Directus MCP connected so that we can, leverage some AI tools, but I'm gonna hit go. Are you guys ready? Are you ready? I I was born in. Sync. I know. That is, that's a good thing. I'm jealous. Alright. So when it comes to our book rating app, what kind of functionality do you guys wanna see out of this thing? So we need some book information. So that would be title, genre, author Okay. And then the name of genre. You guys are going too fast for me. Alright. We need books. We need genres. We need author, which clearly I can't spell. Probably a good thing we're gonna use AI. And then we like, are you guys are gonna share this app? Like, are you going to compete for who reads the most books? Sure. It'd be the leaderboard. Would be good. Writing, comments, notes. We wanna build a Live it. Book leaderboard. Leaderboard. Book leaderboard. Okay. Genre, author. Cool. Maybe some notes. Yeah. You've got comments. Perfect. Comments, notes. Notes is fine. We'll change that up. Alright. So, yeah, this is just the the functionality that we need. The first thing I'm gonna do is hop into Claude, and I've I've got this tool called Super Whisperer that I've been using that just transcribes my voice. We're pressed for time. So here we go. Hi, Claude. I want you to help us build a book rating app for my two amazing colleagues. They wanna read more books in the new year. I'm going to paste the outline of a Directus schema. I want you to fill that out, and then I want you to, plan with me quickly and then add it to our directus instance for us. Alright. So click a button. This thing transcribes everything for me with nice punctuation and no misspellings. You know, I've got these these sausage fingers I complain about all the time. Alright. So we could see that the MCP is now looking at the direct to schema, which is, should be blank in this case. And now Claude should oh, I gotta give it the actual outline, though, don't I? That makes sense. There we go. It's very polite about it. It is very polite. Yeah. I do I I'm not sure if if you're a person who who does the please and thank you, but, you know, I do as well. I'm like, hey. This could end in April. I don't I don't wanna be terminated. So Awesome. Alright. So we got a couple of questions, guys. Genre collections. Let's do a separate genre collection. I'll make that call for you. As far as the rating scale, do we wanna do one to five stars, one to ten, one to a 100? One to five stars, please. One to five stars. One to five stars. Ratings should track which user for sure. Leaderboard leaderboard. I'll set up. Do you guys care about cover image, publication year? Let's give me to description for the book. Cool. Alright. Go, Claude. Go. We've got, six minutes and We're doing well on time. I think we are. Yeah. Certainly. Ready. Go for it. Alright. So the native MCP has access to create collections, relationships, and also fields inside your direct assistance. So we could see here here, this is using Claude. Of course, if you're not using Claude code, which is, you know, more technical, you know, the terminal UI is maybe not the best for some of this stuff. If you're using cursor or chat GPT or just the cloud AI, you can do these same operations. Right? The other thing I'm doing here is just enabling yellow mode, which, Jonathan, if you're watching this one, please don't get mad at me. This is just a test instance. Never recommend that in production because, you know, any schema changes, you can lose your data. Alright. So what do we see? How are we looking, Beth? I think authors good. Book ratings, date created, the user. Cool. Books. Alright. Let's see if this actually works. Cool. Okay. What's the what's the first one you're looking? Listening to an audiobook called Thinking in Bets. Thinking in Bets. Does it making smart decisions without all the data. It was actually, recommended by another one of our colleagues. There we go. Alright. Who is the author? I have my phone ready because I knew this was coming. Annie Duke. Annie Duke? Annie Duke? Yeah. Beautiful. Alright. It is, I don't I don't know the genre, but, are you far enough along to are you far enough along to give it a rating? So far, I like it. I think it's it's hovering around, like, like, a three or four. Let's see four for now. It starts off. I like it. I like it. It's interesting. There we go. Alright. So there we go. We've got a book. We've got some book ratings. We've got an author. We've got a genre. We could see all that being created. Let's just hop in here and, like, take Claude, populate our data with some books and genres plus authors. So while it does that, we got three minutes and fifty six seconds. You know, I could certainly give you time. A plethora. That's a great way to describe it. Alright. Let's let's work on creating a dashboard so we could compare you guys. Right? Who is going to win. So book ratings, we we see the user there. I've it's locked to myself. Okay. I'm just gonna quickly change that to be not read only so I can change it. And I'm gonna create you guys as users real quick. Obviously, you're not gonna be able to log in, but I wanna have you guys in here. Alright. This is best book rating. Alright. Vicky, do you or what book are you reading? Well, I watched the housemaid, the movie, but I realized it was a book too. So I'm starting to read that to compare to the movie itself. Sorry. I'm a movie first. It's good because then you can, like, picture them. Who is the who's the author? The author is Freda McFadden. So f r e I d a, and then last name Freda McFadden. Alright. Look at those typing skills. And that is I don't know what the genre is. Like, thriller suspense. Thriller. Thriller is good. Not to be confused with the Michael Jackson song. Okay. Alright. So you both have two ratings in here. Let's create the dashboard. Dashboard. We'll just call it dashboard, which bragging on my spelling, that is totally misspelled. Alright. So we are going to add a dashboard. Let's check-in on Claude. Go ahead. Create a lot. Fire away, my friend. Create some book ratings for the users, Beth and Vicky. Let's see if it'll do that while we're doing this. Alright. So we wanna see who has read the most books. Beth. Let's just do a simple metric, book rating. What is the field that we're gonna count? Let's just count the ID of the book. So we're gonna count distinct IDs, and we're gonna add a filter where the user first name contains Beth. Alright. This should give us that. We'll add a header. This is best books. Bath pick a color. 55. No pressure. Orange. Orange. Orange. Orange. Thank you. GraphQL validation error. Why does it matter like that? Field. Oh, I didn't select a field. Best books. Alright. We're gonna duplicate this. And now we got Vicky. Vicky, pick a color. Green. Green. Vicky's books. There you go. You got zero. Looks like Beth wins. Can't query the user's collection directly. Do we have some books in here? Let's alright. Quickly, five seconds left. Come on. Let's help Vicky out. Book pick a book. Oh, Vicky. Of course. There you go. Oh, no. The rating is required. Vicky likes it. It is a five. There you go. And boom. No. Refresh. Still doesn't like you. What happened? I think you didn't assign the user to be away from Yeah. It's been a preset me. So Yeah. It looks like I read more books than both of of you guys in this scenario. But alright. It will end on a one to one draw. This is the book rating app. You know, I think it would have been fun to maybe put together, like, a front end for this, but, the fact that we could put this together super quickly with you guys in in ten minutes, I think that's a win. Do we Definitely a win. I feel like we should insert the win, little little frame. I think it would be really good if we had, you know, they had do, like, the top 100 books ever or, like, the best 500 books ever. You could so easily, like, include all of those books and just tick them off and rate it that way. Is that what you guys are gonna do? Like No. Probably not. I have I have my collection here and in the library a lot these days. So That's very ambitious. 500 books this year. Oh, no. Absolutely not. I I said 52 books this year, one a week. 52 a week. 52 a week. Really? I'm I'm I'm aiming for a 100, but I don't want to I don't want two a week. Because it's also, like, audiobooks and short books and poetry books. Less screen time for me is the aim. Vicky, have you got a number in mind? I was trying to aim for 5 a year, but it's so soft. It's good. $5.05 a year. Yeah. I'd look if you're trying to hit 52, I've got a bunch of kids' books that I can like, my kids have exhausted. I can send them don't just use. You could you could blow through them, like, three, four, five a day. No no big deal. Beautiful. There's no rules to that leaderboard, so I might as well take it. Yeah. No validation. It's no no doctor Seuss. No no big deal. Anyway, alright, guys. Thank you so much, Brian. I've I've really enjoyed this. I hope you guys come back on. We can expand the book rating app. And the next next challenge we'll do is actually making you guys read the book somehow. So I I don't know how to build the software to do that yet, but next time. We'll get we'll get AI to read it for us and take it to digest them and to feed them back to us. It'll be fine. There you go. That's an idea. Alright. Thanks for coming on. Really enjoyed it, and stay tuned for the next episode of one app, ten minutes. Bye. See you guys.","9e7335b9-89fb-4faf-9cbe-11d2216e51f0",[183,184,185],"db77dc81-834c-4fbe-99b4-c17d40fc7bf1","2c87cbd3-9b86-4473-ad16-859d4dc73cb4","9f92db51-afe2-421f-847e-8a71cc526ce8",[],{"reps":188},[189,245],{"name":190,"sdr":8,"link":191,"countries":192,"states":194},"John Daniels","https://meet.directus.io/meetings/john2144/john-contact-form-meeting",[193],"United States",[195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244],"Michigan","Indiana","Ohio","West Virginia","Kentucky","Virginia","Tennessee","North Carolina","South Carolina","Georgia","Florida","Alabama","Mississippi","New York","MI","IN","OH","WV","KY","VA","TN","NC","SC","GA","FL","AL","MS","NY","Connecticut","CT","Delaware","DE","Maine","ME","Maryland","MD","Massachusetts","MA","New Hampshire","NH","New Jersey","NJ","Pennsylvania","PA","Rhode Island","RI","Vermont","VT","Washington DC","DC",{"name":246,"link":247,"countries":248},"Michelle Riber","https://meetings.hubspot.com/mriber",[249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,226,437,438],"Albania","ALB","Algeria","DZA","Andorra","AND","Angola","AGO","Austria","AUT","Belgium","BEL","Benin","BEN","Bosnia and Herzegovina","BIH","Botswana","BWA","Bulgaria","BGR","Burkina Faso","BFA","Burundi","BDI","Cameroon","CMR","Cape Verde","CPV","Central African Republic","CAF","Chad","TCD","Comoros","COM","Côte d'Ivoire","CIV","Croatia","HRV","Czech Republic","CZE","Democratic Republic of Congo","COD","Denmark","DNK","Djibouti","DJI","Egypt","EGY","Equatorial Guinea","GNQ","Eritrea","ERI","Estonia","EST","Eswatini","SWZ","Ethiopia","ETH","Finland","FIN","France","FRA","Gabon","GAB","Gambia","GMB","Ghana","GHA","Greece","GRC","Guinea","GIN","Guinea-Bissau","GNB","Hungary","HUN","Iceland","ISL","Ireland","IRL","Italy","ITA","Kenya","KEN","Latvia","LVA","Lesotho","LSO","Liberia","LBR","Libya","LBY","Liechtenstein","LIE","Lithuania","LTU","Luxembourg","LUX","Madagascar","MDG","Malawi","MWI","Mali","MLI","Malta","MLT","Mauritania","MRT","Mauritius","MUS","Moldova","MDA","Monaco","MCO","Montenegro","MNE","Morocco","MAR","Mozambique","MOZ","Namibia","NAM","Niger","NER","Nigeria","NGA","North Macedonia","MKD","Norway","NOR","Poland","POL","Portugal","PRT","Republic of Congo","COG","Romania","ROU","Rwanda","RWA","San Marino","SMR","São Tomé and Príncipe","STP","Senegal","SEN","Serbia","SRB","Seychelles","SYC","Sierra Leone","SLE","Slovakia","SVK","Slovenia","SVN","Somalia","SOM","South Africa","ZAF","South Sudan","SSD","Spain","ESP","Sudan","SDN","Sweden","SWE","Tanzania","TZA","Togo","TGO","Tunisia","TUN","Uganda","UGA","United Kingdom","GBR","Vatican City","VAT","Zambia","ZMB","Zimbabwe","ZWE","UK","Germany","Netherlands","Switzerland","CH","NL",1773850428643]