Bryant is joined by Vicky and Beth with the goal of building a book rating app in just 10 minutes using the MCP.
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.
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.
Speaker 1: Thanks for asking.
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?
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?
Speaker 2: Yes. So we want to build a book rating app, because
Speaker 1: in the
Speaker 2: new year, we want to read more books.
Speaker 0: And Book. Rating app. If I can ask, how did you guys come up with a a book rating app?
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.
You gotta gotta track your track your goals.
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?
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?
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
Speaker 0: And today, we're gonna build the app that makes you read more books. I love it.
Speaker 2: Keeps me accountable.
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.
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?
Speaker 1: Are you ready?
Speaker 0: I I was born in. Sync. I know. That is, that's a good thing.
Speaker 1: I'm jealous.
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?
Speaker 1: So we need some book information. So that would be title, genre, author
Speaker 0: Okay.
Speaker 1: And then the name of genre.
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.
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?
Speaker 1: Sure. It'd be the leaderboard. Would
Speaker 0: be good. Writing, comments, notes. We wanna build a
Speaker 1: Live it.
Speaker 0: Book leaderboard. Leaderboard. Book leaderboard. Okay. Genre, author.
Cool.
Speaker 1: Maybe some notes. Yeah. You've got comments. Perfect.
Speaker 0: 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.
Speaker 1: It's very polite about it.
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.
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?
Speaker 1: One to five stars, please. One to five stars.
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?
Let's
Speaker 1: give me to description
Speaker 0: for the book. Cool. Alright. Go, Claude. Go.
We've got, six minutes and
Speaker 1: We're doing well on time. I
Speaker 0: 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
Speaker 1: you're looking? Listening to an audiobook called Thinking in Bets.
Speaker 0: Thinking in Bets. Does it
Speaker 1: making smart decisions without all the data. It was actually, recommended by another one of our colleagues.
Speaker 0: There we go. Alright. Who is the author?
Speaker 1: I have my phone ready because I knew this was coming. Annie Duke.
Speaker 0: Annie Duke? Annie Duke?
Speaker 1: Yeah. Beautiful.
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?
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.
I like it.
Speaker 0: 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?
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.
Speaker 1: It's good because then you can, like, picture them.
Speaker 0: Who is the who's the author?
Speaker 2: The author is Freda McFadden. So f r e I d a, and then last name Freda
Speaker 0: McFadden. Alright. Look at those typing skills. And that is I don't know what the genre is.
Speaker 2: Like, thriller suspense.
Speaker 0: Thriller.
Speaker 1: Thriller is good.
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.
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.
Speaker 1: Beth.
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.
This should give us that. We'll add a header. This is best books. Bath pick a color. 55.
No pressure.
Speaker 1: Orange. Orange. Orange. Orange. Thank you.
Speaker 0: 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.
Speaker 2: Green.
Speaker 0: 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?
Speaker 1: I think you didn't assign the user to be away from
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.
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
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.
Speaker 0: Is that what you guys are gonna do? Like No. Probably not.
Speaker 1: I have I have my collection here and in the library a lot these days. So
Speaker 0: That's very ambitious. 500 books this year.
Speaker 1: Oh, no. Absolutely not. I I said 52 books this year, one a week.
Speaker 0: 52 a week. 52 a week.
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?
Speaker 2: I was trying to aim for 5 a year, but
Speaker 1: it's so soft. It's good.
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.
No no big deal. Beautiful.
Speaker 2: There's no rules to that leaderboard, so I might as well take it.
Speaker 0: Yeah. No validation. It's no no doctor Seuss. No no big deal. Anyway, alright, guys.
Thank you so
Speaker 1: much, Brian.
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.
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.
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.
Speaker 1: Bye. See you guys.