Kalen and David bounce back after the lost-episode fiasco—with Topo Chico in hand, a fresh code-freeze looming, and Smile.io hopping on as their first sponsor. They riff on clever “CSS-in-a-metafield” support hacks, why most loyalty programs stink (points? nope—clout), Shopify’s new metafield indexes, sneaky Hydrogen endpoints, and the joy of dark-mode dev forums. Plus, a killer color-swatch app shout-out and Kalen’s latest NetSuite headaches.
[00:00:00]
Kalen Jordan: They reply and they go, it's fixed. And no collab access, never gave them collab access.
[00:00:07]
Kalen Jordan: What he does is he has a CSS metafield that he can modify to fix something on your site on the fly with no collab, yeah, which I was like, that's so smart, like so I just did the beast.
[00:00:34]
Hey, what's up Kalen here. Welcome to episode number four of talking shop.dev. Actually we recorded episode number three last week and it was an awesome episode. And at the end of it, I realized that we forgot to hit the record button. So. Uh, it was lost. I think that happens probably at least once in the life of every podcast.
[00:00:55]
So it is what it is. But we've got number four here today. It was a great episode.
[00:01:00]
And actually we have a sponsor now, which was super cool. I was very surprised to hear from my buddy bill Curtis, over@smile.io. And he was like, Hey, I heard the podcast and I liked it. Want to support it and stuff. So that was, uh that was awesome. And actually I worked at a smile that I used to be called sweet tooth rewards and was in Magento extension.
[00:01:22]
And that was like my first job, like 10 years ago, getting into e-commerce bill was my boss. And, uh, I learned everything about, get that I know for Bev. He's fucking awesome. So, um, I don't even have like the official ad read content yet. Uh, we'll get that. For the next episode. But you know, somehow that I was a huge app in the ecosystem, I'm sure that you know about them by now. Obviously a loyalty app.
[00:01:45]
And so we talk a little bit more about that in the episode. so I hope you enjoy the show
[00:01:55]
David: I'm so excited we got topo chico in our fridge and i'm downing those suckers
[00:02:01]
Kalen Jordan: Oh, yeah. Nice, dude. Dude, is Topo Chico, is that just a water?
[00:02:42]
Kalen Jordan: I remember this one time I, I hired this, uh, personal trainer and, um, it was my first time meeting with them. And they're like, uh, they're like, you just, you gotta drink just water. You just, you gotta drink water, nothing else. And I was drinking a lot of, uh, sparkling water at that time, which was good because, you know, I used to drink a lot of diet Coke and stuff.
[00:03:04]
Kalen Jordan: And I was, you know, I was cleaning, cleaning up my act. And I asked them, well, is like sparkling water. Okay. He just looked at me like like funny and he was like, just drink water, just drink regular water. And
[00:03:23]
Kalen Jordan: In the back of my head it's bugging me because I want to like argue with him about, about this. But, um, yeah that was, that was kind of funny. Um,
[00:03:34]
David: Personal trainer, that's pretty legit.
[00:03:37]
Kalen Jordan: Yeah, well, nah, that it was, I only did one, one thing with him and then I, then I gave up on it.
[00:03:51]
Kalen Jordan: I couldn't, get past it. I've had some weird personal trainer scenarios. The very first time I found a guy online, there was like this, uh, site for like, you know, finding people, matching with, you know, like service providers.
[00:04:05]
Kalen Jordan: And so then I found a dude, and then he did it at his, at his house. And he had like a set up on his balcony. He had like a balcony with some weights and stuff. And so
[00:04:16]
Kalen Jordan: his house and like his kid would be staying with him that that week or whatever. And so I'd be saying, walking into his house, saying hi to his like seven year old as I walk onto the balcony.
[00:04:29]
Kalen Jordan: It was super weird, dude. But,
[00:04:35]
David: like an Airbnb for personal trainers.
[00:04:38]
Kalen Jordan: Yeah. That, that was the beginning of my health journey. Um,
[00:04:43]
Kalen Jordan: So what's the latest with the whole work situation, the whole Shopify deal.
[00:04:49]
David: Keep on swimming, baby. We got holiday coming up in a couple weeks. Trying to jam through some last minute stuff. Stuff and, uh, code freezes tomorrow. So
[00:05:01]
Kalen Jordan: Nice. Literally just as you started talking in the back of my head, I went, are we recording right now? And then I almost
[00:05:15]
Kalen Jordan: I almost went to double check it. And then I remind myself, no, no, stay, stay present. Don't get distracted. We, that's why we did the whole thing in the beginning. We're good to go.
[00:05:25]
Kalen Jordan: Um, nice. So do you do a, you do a proper code freeze?
[00:05:32]
David: I don't know about proper. It's like,
[00:05:34]
David: uh, Hey everyone, we're not going to release any more code unless there's something that's really wrong. And then still doing deployments up until the day before.
[00:06:27]
Kalen Jordan: Yeah, they were, they're kind of an intense, uh, it's, it's like my biggest project I've been working on for a few months and the, um, the, the end, uh, the end client was on the call.
[00:06:40]
Kalen Jordan: And usually I'm talking with, you know, some of the team members client side, but the, the main boss was on the call and we were going through some, some details and, and, you know, they're like, well, why are we talking about this? I thought that we already talked about this a long time ago. And, um,
[00:07:00]
Kalen Jordan: And so I, I seen those sort of dynamics with some other people on previous calls. And I was like, look, I, I don't, not, I don't, I don't take this type of stuff. So I started talking back and then we
[00:07:16]
Kalen Jordan: sort of ended the call. It was crazy, man. It was, it was, it
[00:07:38]
David: Yeah. Some people care a lot and that's good, but
[00:07:42]
David: I feel like even if you care a lot, There's like, there's ways that you can go about it. And if
[00:07:48]
David: you're stressed and you're like making that part of Caitlin's problem, then that's not cool.
[00:07:57]
Kalen Jordan: Yeah. Yeah. I mean, you know, projects get messy, especially the, the bigger they are, the tighter the deadlines, the more people this,
[00:08:04]
Kalen Jordan: the messier they get. And, um, I gotta, yeah, I gotta stay out of these big projects. the problem, the problem is that the big projects are the ones that have good, good amounts of hours.
[00:08:19]
Kalen Jordan: yeah, therein, therein lies the rub.
[00:08:23]
David: Do y'all do like, uh, retrospectives after, I mean, I know you said it's a big project, so maybe you've been working on it for a while, but I get a ton of value out of doing retrospectives. Like. All the time.
[00:08:36]
Kalen Jordan: No, no, we don't do any. We don't have, we don't have time, dude. When you're working through an agency, there's no, there's no time for Richard. That sounds great, that sounds actually awesome though. That sounds incredibly healthy. I'm once again, jealous and borderline infuriated by the balanced and healthy work environment that you're into.
[00:09:00]
David: You know, everything looks great from what is the thing? Grass is always greener.
[00:09:05]
Kalen Jordan: Yeah. But no, that like, so, so do you basically just, you have a project and then after it launches, do you kind of like, have a meeting to talk about it and talk about which things could have gone smoother? Or how does, how do you do that?
[00:09:21]
David: Yeah, we have a, it's pretty formulated. So we started like, we started in our team just doing a retrospective after every sprint, so every two weeks.
[00:09:30]
David: And, uh, we use Nero. I don't know if
[00:09:33]
David: you've them. They, they were advertising for a while.
[00:09:37]
David: we just set up, we have this gigantic board because we've got the 1 board.
[00:09:41]
David: I don't have another bill to pay every month, but,
[00:09:45]
David: um, it's, uh, yeah, we just have 3 sections. What went well, what didn't go well ideas
[00:09:52]
David: for next time at the top. We have, like, how many points we did, how many points we rolled over still working
[00:09:58]
David: on getting to 0 points rolled over, but don't tell anyone that. And then, um. Yeah, we all put our post it's up and talk about it. And then we
[00:10:06]
David: started doing it for, like, uh, we had our private sale, um, about a week ago, and we started doing it for, like, sales and just bring everyone together from different teams to talk about what sucked and didn't suck. And.
[00:10:27]
Kalen Jordan: Okay. I've never actually, you know, I've been out of the game, I was out of the game for a couple of years, but I never, I never really actually, I always hear people making fun of story points, but I've
[00:10:40]
David: we make fun of them all the time. At one point we renamed them to cat points because I think I was
[00:10:46]
David: explaining them to someone and I was like, these could be called like their points, but they could be called anything. It's just a representation of. Like difficulty. And so we decided to call them the cat points for a little while.
[00:10:57]
Kalen Jordan: Nice. Nice. I, um, I, I went through and I listed out a bunch of tasks I have in this one project that I, I, I created my own little scoring system. I was like, not bad. Um, little rough, um, sorta, sorta hard, and then bad. The NetSuite, the NetSuite line item sync was bad.
[00:11:24]
Kalen Jordan: I still, I still, it's funny because I posted about it, I got some feedback, including from this dude.
[00:11:30]
Kalen Jordan: Who's like, uh, and, uh, he's like an integration agency or something like specifically. And he's like, yeah, I've done hundreds of these. And I was like, okay, finally I found the guy that's done, done this. And I started going into the details a little bit. And I was like, so, so you actually synced the line items back?
[00:11:48]
Kalen Jordan: And he's like, Well, no, I'm, you know, NetSuite usually just worries about the finance, financial side of things. And, you know, then you have other things at other places. And I was like, all right, you're, you didn't, you're not doing this madness.
[00:12:00]
David: No, cause I guess you're trying to like fulfill out of NetSuite too, for this project.
[00:12:08]
David: do you know what the, uh, WMS is? Like we, we use, uh, Rfsmart, which has like a nice integration with some PDAs that the people in the distribution center can walk around and like scan a thing
[00:12:23]
David: like not a NetSuite thing, but there's some cool stuff out there for it.
[00:12:28]
Kalen Jordan: Yeah. I don't know what they use actually on the warehouse side, but I think it all makes its way back into NetSuite. Honestly, it's not that complicated. We have to. Remove some line items if they get removed, edit some line items, and that's pretty much it. So, I mean, as long as they don't need to like, edit a line item after it's fulfilled,
[00:12:50]
Kalen Jordan: which I don't think they would need to, I think we should be fine.
[00:12:52]
Kalen Jordan: It just, it seems like it, it doesn't really, doesn't really happen that, that much. Um,
[00:12:59]
David: you going to do the line items with like, uh, some SweetScript stuff?
[00:13:04]
Kalen Jordan: No, I'll probably just, I'll probably just pull down, uh, pull it down. We're using a, um, we're using an, uh, an iPass deal that just pulls down over soap. Um, but which
[00:13:16]
Kalen Jordan: sounds horrible, but I, it pulls it down. I haven't had to deal. Well, there was one thing I had to look at the XML for, but basically it just gives you an object with the entire, uh, the adjacent object and with all the custom fields and everything in there.
[00:13:32]
Kalen Jordan: And then you just work off of that. So I think I'll just like, if a line item is suddenly gone from the payload, then we'll, we'll, that'll mean it got deleted, I think.
[00:13:44]
Kalen Jordan: And then we'll, and then we'll just go ahead and delete it. Um, so we'll say it shouldn't be, shouldn't be, it's not, it's not rocket science.
[00:13:56]
Kalen Jordan: You know, we're not, we're not
[00:13:59]
David: Yeah, it's not rocket science, but there's always something that. you're not thinking about when not sweet.
[00:14:07]
Kalen Jordan: There's always some, some annoying, uh, I'm so sick of even saying the word net suite. Um, In, in, in, in, in better news, we, uh, dude, uh, got a, got a ping from, um, from my friend, uh, bill at over at smile. io. And um, he, he was like, he was like, Hey, I heard the podcast and I really liked it.
[00:14:36]
Kalen Jordan: I was like, cool. And he's like, he said that they want to sponsor. And I was kind of blown away. Um,
[00:14:46]
Kalen Jordan: Yeah, dude, I was like, what? Cause like, we, you know, we've gotten a
[00:14:50]
Kalen Jordan: little bit of feedback. I was like, that's cool, you know, seems like it's going the right direction. But I, I didn't expect that to, that to happen.
[00:14:57]
Kalen Jordan: But, um. He's like, yeah, I just wanted like this type of a thing where it's just like developers talking about development and stuff. And I was like, dude, that's so cool.
[00:15:10]
Kalen Jordan: And um, and then I actually told him. So I told him, I was like, I was like, you know, in the past, I remember having a story. Sponsor, like you, you're always kind of hesitant to say something negative.
[00:15:21]
Kalen Jordan: And I go, I go, like, for example, I mentioned to David, you know, and then David mentioned that, you know, he's, you know, you're looking at smile. io decided to go
[00:15:32]
Kalen Jordan: somewhere else and, and that I wouldn't want to be hesitant about talking about the negatives, you know, because that's exactly the type of thing now
[00:15:41]
Kalen Jordan: I'm, now I'm curious to know why and all that kind of stuff.
[00:15:44]
Kalen Jordan: And you don't want to. Avoid talking about it and he was like no man. That's totally cool Like if there was anything critical i'd love to hear it like it was it was the perfect response to that that I could have like hoped for so
[00:16:05]
Kalen Jordan: Yeah So we're gonna obviously we're gonna obviously we you know, we need to put together a proper financial package I mean, you know we want We want, you know, at least something in the tens of millions, you know, we
[00:16:17]
David: Yeah, how much airtime are you expecting? We've got like, here are the packages that we've for you to choose from.
[00:16:29]
Kalen Jordan: uh, yeah, so that was cool. And actually, uh, I also, um, got a nice little lead from smile. io for, uh, a little integration with some, um, Custom, uh, like a custom points. They have, there's a merchant that has like an NFC, NFC tags, uh, that are in the product or something like that. Like, I
[00:16:55]
Kalen Jordan: I don't totally understand what NFC tags, I'm going to be totally honest, but I think it's like a thing that's in the, in the product.
[00:17:03]
Kalen Jordan: And then they scan it. What, I don't know what they do, but it generates a URL. with a unique code in it. And then we
[00:17:11]
Kalen Jordan: into some, some custom stuff. do you know
[00:17:15]
Kalen Jordan: do you know what, how these NFC tags work?
[00:17:20]
David: Uh, yeah, we tried to do something like that a couple years ago. We had a partnership with Toyota. It was really cool. Uh, it was called, uh, in motion. And, uh, what they did was, uh, try to find a way to make a store. That could be fully put onto the back of a truck and like, taken somewhere else in the city. It's like, so
[00:17:47]
David: It was around, uh, it was around LA for a while and it was really cool. Um, so one of the cool things that we tried to do with that is like, Um, put NFC tags near all of the products. So, uh, if someone was in the store and they wanted to, like, experience some, uh, web thing on their phone and like, I actually don't remember exactly what I was supposed to do on their phone, but we had these NFC tags. And it didn't work great, like everyone's phones respond to NFC tags a little bit differently. And then you've got to have like a miniature app if you want it to do something like for real. Um, but these days we just, we, we have fully embraced QR codes in our retail stores. We, we use QR codes a lot.
[00:18:36]
David: Like if you, if you use something like a URL shortener and then create a QR code from that shortened URL, you can update the destination link like over time if you need to. And so that's
[00:18:49]
David: just, that's been working really well.
[00:19:05]
Kalen Jordan: but I guess they, it's a, it's a, it's a chip and then they, then they got it. Like, can you scan it with a, with a, with a phone or you need a special app to
[00:19:15]
David: need, it depends on if you've got an Android or an iPhone, like iPhones, I think have, like, you have to have some sort of small app or something, but then there's like, A way to get around that. Um, yeah, it's just, uh, QR codes,
[00:19:53]
Kalen Jordan: Oh, cool. Is that just where you, uh, where you like double click on the iPhone and it does the wireless payment?
[00:19:59]
David: Yeah, that's a, that's an NFC thing. And they like, apparently it was hard to get that working on Android. And so they've got it working across both now, which is.
[00:20:10]
Kalen Jordan: I finally started using that like, I don't know, maybe three months ago or something like that. I don't know why it took me so long. I just, now it's my default. I think I didn't have the
[00:20:21]
Kalen Jordan: right credit card linked in my thing or something like that. And then I just finally started using it. And it's, it's weird.
[00:20:28]
Kalen Jordan: Like I have this weird emotional issue when I take a credit card and pay. It's somehow stresses me out.
[00:20:37]
Kalen Jordan: Like I think about. Like that I'm losing money and I'm going to go bankrupt because I really shouldn't be buying this beef jerky right now. But like somehow, somehow with the phone, it just all goes away.
[00:20:52]
Kalen Jordan: It doesn't feel real or something
[00:20:54]
David: Thanks Apple for buying my beef jerky.
[00:20:58]
David: I thought were going say something like you were scared about like card skimmers. Cause I'm definitely scared of like
[00:21:05]
David: every time I go to a gas station and they don't have the NFC tap to pay thing,
[00:21:09]
David: I'm like, is there anything jiggly on this hole that I'm about to stick my card into? So that's like, that's one reason why
[00:21:18]
David: I love using Apple pay is I have, I don't have that anxiety at all. Um, But also the Apple credit card is pretty cool. And if you pay with, um, if you pay with Apple pay, you get like 2 percent back, no matter what it is or something like that. So it's, I'm always just like
[00:21:39]
Kalen Jordan: Nice. I did get one of the Apple cards and then I didn't really end up, cause I think we get 3 percent back on our credit card. So, um, I wanted to use it just cause it felt cool to use the Apple credit card,
[00:21:56]
Kalen Jordan: but I was like, ah, I have one more, you know, thing in my monthly checklist I got to deal with.
[00:22:02]
Kalen Jordan: So I haven't really been using it,
[00:22:05]
David: No, we just like, we both started, my wife and I are both using the Apple card for everything. And then in the app, it shows like how much money did you spend and what are the categories you spent money on? So you don't have to do all of that like afterwards.
[00:22:33]
David: I tried that. It's too much work.
[00:22:35]
Kalen Jordan: It, it really is, dude. I can't stand that app. It's like, and there's so many things that are good. Like, you know, they put them in there for a reason, the way you got to balance things out and shit like that.
[00:22:48]
Kalen Jordan: But it's just miserable. It's just absolutely horrible, but
[00:23:11]
Kalen Jordan: I hate thinking about money. I have this one friend that I was talking to and I, and I was like, man, I basically said that I was like, man, I hate, like I hate looking at the budget. I hate like just thinking about money. And he's like, I love it. Like he sits down, he has a system and he actually enjoys looking at the money, dealing with the money and stuff like that.
[00:23:34]
Kalen Jordan: And I was like, there is something wrong with me. Uh, but,
[00:23:52]
David: I do have this, um, I had been using meant for a while and that was really nice for like tracking, uh, just how much money you have and stuff like that.
[00:24:02]
David: And, and the, like what you're buying. But lately I switched over to something called Kubera.
[00:24:11]
David: It's, um, it's kind of similar in that it, it has like API. Integrations with different banks and stuff like that,
[00:24:19]
David: but it doesn't get at the transaction level. It's more like, um, here's like, here's how much you have here. Here's how much is in your 401k. Here's how much your house is worth. You've paid this much amount on your house and so this is how much equity you have and it's kind of set out as like a really sleek. Uh, spreadsheet, um,
[00:24:42]
David: so it kind of helps, like, understanding, uh, just over time what's happening to things. Um,
[00:24:48]
David: but it's still like hands off. Like I don't want to do anything with this.
[00:24:52]
David: I just want to come look at it like a month or something.
[00:24:55]
Kalen Jordan: Yeah, dude, that, that's one thing with AI that is, I cannot wait until they just crack it. And you, and cause it's like you said, sometimes they're good. Sometimes they're pretty good. They're never like quite totally right. But at some point when they are and everything's perfectly categorized and your taxes are filed for you, like,
[00:25:16]
David: please take the wheel. That is one thing I don't, I don't mind for some reason. Like I'm fine doing taxes. I I've just been using TurboTax.
[00:25:28]
David: and I just like jam through it, answer the questions.
[00:25:32]
Kalen Jordan: Dude, that's, that's awesome. I can't stand taxes. God, dude, let's get on to another topic, man. Just talking about is stressing me out. Um, did, uh, did you, did you want to talk a little bit about the loyalty thing you were looking at with, with smile on the other one? We got to put them to the test to see how comfortable they are with the, with the, uh,
[00:25:58]
David: let's do it. Um, I was thinking I had got to pull up my notes. Um, but one of the big things that, uh, kind of came down to it was, this is so stupid. Uh, so we use attentive and attentive. Is, uh, like an SMS sign up thing. You get, you get some promotion for your first order.
[00:26:24]
David: Um, but when you click away from it, it goes down into a bubble at the bottom of the page.
[00:26:31]
David: And, uh, the big thing was smile was like, everything happens in a bubble. At the bottom of the page,
[00:26:41]
David: didn't want to deal with two bubbles. Yeah.
[00:26:52]
Kalen Jordan: like, I can't remember what it was, but sometimes the chat bubble or some bubble We'll block. I think it was blocking the, the, the Shopify admin bar preview link, you know, when you're doing a preview theme or something,
[00:27:07]
Kalen Jordan: it was, it was blocking exactly what I didn't want to block.
[00:27:11]
Kalen Jordan: I cannot stand those things so much of the time I have
[00:27:15]
David: too. We've got to get rid of these cookie laws too. I'm tired of clicking that
[00:27:19]
David: button every single website. It's somewhere else. Like it's somewhere different on every site
[00:27:25]
Kalen Jordan: it's horrendous. I never did the cookie thing. Like when it came out. And I had commerce here at the time. I'm like, I'm not doing it. I'm not doing it. I'm not putting a cookie thing up. I didn't do it. You know, I don't
[00:27:36]
Kalen Jordan: have it on my website now. I don't believe in
[00:27:40]
Kalen Jordan: yeah. I skated by dude. I'm not,
[00:27:42]
David: Yeah. If you're not, doing like a ton of international business, it's apparently not, that big of a deal, but it's still just a, It's everywhere.
[00:27:55]
David: we were, uh, we were looking at smile and then, um, the other one we were looking at was, um, loyalty lion and, uh, ended up going with loyalty lion. Um, one of the reasons was it seemed a lot more flexible. Um, both of them have an API and you can do stuff with the API. Um, but the, like, we always have very custom landing pages and, like, they got to be beautiful and, uh, high intentionality and all this stuff. And, um, so we started building the loyalty program and just thinking about. How I wanted it to work and it's not out yet.
[00:28:42]
David: like, basically all of the things that come out of the box with the loyalty program, like, buy more, get more, like, the more money you spend, the more points you get.
[00:29:07]
David: no, that's exactly it. We've got one out of the box action, which is referral. You can refer someone to us because that's, that's high intention. Like
[00:29:17]
David: you're, you're bringing more people to our brand, which is like, thank you.
[00:29:21]
David: Um, but then we had to come up with like, right. What's a better way to do a loyalty program?
[00:29:27]
David: That's not just. The more money you spend, the more points you get, and then that lets you spend more money. And that, like, so it's, it was kind of an interesting challenge, but we ended up just having one out of the box action. And then all the rest of the actions that get you, get you, uh, it's not called, it's not called Kuyana Cloud, but that's what I decided to call it. The more, you get more Kuyana clout by, uh, like doing these other special things and, um, yeah, so then I just had to build the loyalty program from scratch, uh, but it's
[00:30:22]
David: you have to submit the action and then you have to wait and then you have to either approve or deny it. Um, but yeah, it's, it's all working for the most part.
[00:30:34]
Kalen Jordan: That's cool. It's so, it's so funny how, um, especially for bigger companies like when you use an app or something like, there's just so many customizations that need to be done. be made. Um, I was, uh, this other project I'm on, we were talking to a rep. Uh, Oh, I was going to ask what you use for your page, your, your landing pages.
[00:31:09]
David: we just use pages and collections and, um, we have custom sections and, uh, uh,
[00:31:16]
David: what's the other word called snippets. And so we, we built out a, like a library of sections and blocks and what
[00:31:23]
David: are the fields that we want or need? And we, that's another one of the things that we talk about, like on a weekly basis, it's like, how did this launch go?
[00:31:30]
David: Cause we have. We have like a seasonal, like big seasonal launches, but then throughout the months, there's always like a new product release, new, like new, this thing, new, this thing. And it's at least every couple of weeks that there's like a big new page. That goes out. And so that's one of the things that we talk about is like, what, what would have been a better options for trying to build this page?
[00:31:55]
David: have, like, some wacky, like, um, completely we, like, images are not structured in a way. Like, we, we spent time making sure that all the images line up well, and everything looks good, no matter what you do. And then we get a design where it's like. Actually, this time we want the images to be like slightly askew from each other, just like, uh, we still have to write some like custom liquid stuff and then we're like, okay, if we have to do that. Another two times, we're going to make a section out of it.
[00:32:30]
Kalen Jordan: Right. Yeah. Now I kind of wish I was just using native native for this project.
[00:32:39]
Kalen Jordan: well, we're looking at replo. Which is one of the popular landing page builders. And um, so we, we get on a call and we're, you know, we need to do this like geo location stuff where we limit the, um, products that show up on the landing pages by the location they're in or that they selected
[00:33:00]
Kalen Jordan: in a state dropdown. And, um, and so they're like, Oh yeah, we did this thing for, You know, this, this big household name brand, uh, website and it does like geolocation type stuff and they're like, yeah, that's like super custom. Da da da da. So like, I was like, cool. Like my client was on the call. Like, I think that pretty much sold him.
[00:33:20]
Kalen Jordan: And then I'm like, cool. Yeah. Like if I could just see some, any documentation, you know, on, on that. And, and, um, and then they're like, uh, oh, you know, since then we're emailing later. And they're like, yeah, well, you know, we don't have documentation on this. Cause it was like a custom thing. And I'm like, no, like I know you don't, you don't have documentation on like that's that site, but I'm saying like document, like anything related to how you guys did that, like, how did you, what are the thing, what are the integration points or whatever?
[00:33:52]
Kalen Jordan: And they're like, Oh, to be honest, we it's like, it's, It's really, we can't just send you anything because it's kind of a mess or something like
[00:34:06]
Kalen Jordan: you're killing me, man. So yeah,
[00:34:15]
David: tell you work or not. I don't need you to sell me. Just give me all of your information. Thank you. I'll let you know if we're going to give you money or not. Goodbye.
[00:34:30]
Kalen Jordan: it's like, I like I'll have clients that want to pull me into call these calls, you know. So, and it's like, it's like I haven't looked at the docs, I haven't even created an account yet and clicked around at all. And you know, they want me to just ask a bunch of smart questions or something like that on the call.
[00:34:48]
Kalen Jordan: And I'm like, you know, you know, and I probably there's some people that are better than me at thinking on their feet, doing those types of things. But I, I like to just, you know, look at the docs and
[00:34:59]
Kalen Jordan: then, you know, email questions over and then at some point maybe do a call or whatever. But, um, Yeah, I keep, I keep getting roped into those types of things.
[00:35:08]
David: Yeah. Those are, I, I always have fun on those things. Cause I'm like, Um. just like the whole time trying to figure out how they're schmoozing us into like believing that, yeah, this is totally something that we can do super easily. And then, okay, well, here's a question about that.
[00:35:33]
Kalen Jordan: Yeah, you're probably more comfortable because you've been doing it for long enough that, uh, you just, you just have fun with it, I guess.
[00:35:42]
David: Maybe. I just have like a lot of baggage around being sold something and then I end up not being able to do it and then I have to explain why I can't do it and then it's
[00:35:55]
Kalen Jordan: Yeah. And like, I figured that like any landing page builder would have a way to pull in a collection of products, you know, some like a dynamic collection of products.
[00:36:07]
Kalen Jordan: And as far as I can tell, you can't do that. Like you, you can pull in You can pull in a native shop. You can pull in a Shopify section, which is cool.
[00:36:18]
Kalen Jordan: But you know, then I mean you might as well be doing it in Shopify.
[00:36:29]
David: it was, but he made a video and that looks like in context, uh, or like, what is it like the, the closest collection, uh, like inference of what, that's going to be awesome. I'm
[00:36:44]
Kalen Jordan: way, Way, I might admit, I was thinking about the indexing, the metafield
[00:36:48]
David: Oh yeah. I want you to tell me about
[00:36:49]
David: that too. Cause I have no idea what a metafield index is.
[00:36:53]
Kalen Jordan: Dude, they're certain, they're, so you couldn't query Um, uh, you could only query on, on tags. So if you, if you needed to search, if you need something to be searchable, you had to stuff it into a tag when we're another metafields, weren't, uh, queryable in the, in the API.
[00:37:09]
Kalen Jordan: It couldn't, you can't filter on a, on a
[00:37:10]
David: Oh yeah. That was like, it was like last week that they, that someone
[00:37:16]
Kalen Jordan: that just roll. I think that just rolled out and I was scoping this project for this one client with a bunch of automotive data. And I was like, yeah, Metafields would be great, but we can't filter on them. And then, uh, I just saw that and I was like, has this, like, cause there was no, there wasn't a timestamp on when it launched.
[00:37:34]
Kalen Jordan: If I was pretty sure it was new, but, and there wasn't a change log entry I could find for it. I was like, has this just been around? And I just didn't know or something like that. But yeah, I think it just, just launched like a,
[00:38:22]
David: to go back and test if it's possible to, uh, I was working on a flow the other day. Where I wanted to use the get variant data action,
[00:38:32]
David: um, we have variants that have, uh, like a release date and I wanted to be able to get a list of variants that have a release date of tomorrow and this flow would like run once a day
[00:38:45]
David: and then, uh, do a bunch of like matrix if I would use a ton, but it doesn't have the ability to change the channels that, um, a product is part of. And, uh, there's, like, a couple of other things, so I wanted to do something around the, the launch date, but it's not possible to query product variance. Based on a metafield. So I have to go back and see if if that's got snuck in too. Yeah.
[00:39:16]
Kalen Jordan: question because I didn't look at that. I just looked at the products and I, I definitely looked at like order and customer metafields. Those are not indexable yet. Um, but that's exactly the type of use case that all of a sudden you can bang out and flow if they're searchable. Um, it, there's so many, I mean, there's, I can't remember all the times I needed had some use case around searching metafields, but what was the, um, what was the, uh, what was the metafield with the nearest collection video deal?
[00:39:57]
David: Shopify released a video that showed how It's like some new updates to the theme editor Where it can intuit Um, like it's never been a great integration between theme editor and metafields, uh, just like shot metafields or like a meta object that's got, um, fields on it. You can never really pull those in well. Well, this has, uh, This lets you, like, select from meta objects that exist in the store, and then it'll start selecting, like, if you've, uh, if you've set it up correctly, and I haven't been able to do it yet, I don't even know if I can, um, it will pre populate all of the values, like, you know how when you click that little, what is it, it's like a pancake, it's like, uh,
[00:40:55]
David: That thing like always kind of worked and this seems like it's, um, it actually works so you can go ahead and click things and it'll work. And then there's a new, like a new setting for sections where you can indicate that it's like a metafield list, uh, or a meta object list, and then you can create a meta object that's got. Uh, like name details, whatever, and it'll just pull in all the fields from that meta object into the block. Uh, but some of them are, like, you can configure at the top level for this, uh, section, what collection we want to use as, like, the data source. And
[00:41:38]
David: then underneath That there are blocks, and the blocks, I think I'm talking about this right, it's been a while since I watched the video. The, you can configure the blocks to pull data from the metafields of the collection, that's like one level up. So you set a collection at the section level, each block like automatically inherits that collection being its context, and it'll just automatically pull all of the data in. It looks
[00:42:08]
David: awesome. I haven't been able to try it yet, so I don't fully understand it, but it sounds cool.
[00:42:13]
Kalen Jordan: I gotta check that video out. That's one of those things that's like exponentially hard to understand a visual.
[00:42:22]
David: was listening to myself explain it and I, was like, I'm doing a
[00:42:26]
Kalen Jordan: I, I think, I, I think, I, I think I actually get it. I just gotta, I just gotta look at it, but yeah, dude, I met objects. You're just going to keep getting so good. I'm in matter fields.
[00:42:36]
Kalen Jordan: It's like I had a nice little use case. Oh. And
[00:42:40]
Kalen Jordan: so, So we, our last episode I forgot to hit record on and, um, and one of the things I think I talked about, I gotta tell, I gotta just say again briefly, and you can pretend that it's all brand new news to you. I think we talked about the, um, the deal with, um, uh, I, I want to do a form for, uh, somebody to fill out as a, as a customer.
[00:43:05]
Kalen Jordan: I don't want to use the, um, native form functionality because it overwrites the customer record, whether
[00:43:11]
Kalen Jordan: they're logged in or not, right? So if they use an email of an existing customer, it'll just overwrite that customer with the data they enter. Um, so
[00:43:20]
Kalen Jordan: what I'm going to do instead is have a little hydrogen endpoint that the form can post to.
[00:43:27]
Kalen Jordan: So, and then that. It will create a meta object for the, for the form entry. Now I can use flows, new meta object trigger, and then in flow I can then say, Hey, if this customer already exists, maybe I don't override it or maybe I do something else. If the customer doesn't exist, go ahead and create the customer record like you normally would.
[00:43:51]
Kalen Jordan: little, nice little finesse use
[00:43:53]
David: And that's a hydrogen thing. What's it like working with that?
[00:43:57]
Kalen Jordan: Well, hydrogen dude, it's just a nice way to do like a little API end point. If there's anything that that's really all I've used it for, I've used it for, uh, I've used it like twice, um, in that scenario because it just gives you, um, a backend where you can do arbitrary API calls and you can proxy him from the front end.
[00:44:22]
Kalen Jordan: Yeah, so you just set, you set it up, you set up Hydrogen, it gives you a URL, um, and it's a remix app, and by default, you know, it's a whole headless store, uh, but then you can just do, and you know, each route is like a JSX file, um, and
[00:44:37]
Kalen Jordan: then you can just, you can either, you can just return JSON, and then it just returns JSON like an API.
[00:44:45]
Kalen Jordan: Which is really, really what I've used it for these last couple of times. And then you can just do whatever admin API calls you want, uh, inside of that. And you can hit it from the front end in a way that, you know, is secure.
[00:45:13]
Kalen Jordan: Nope. Nope. It's an existing store. Yep. Uh, you get one, I think for, I think you get one for free, I think on any plan, I don't even think it's plus only. Um, and you just get a unique URL and then, um, you know, you get an auto generated URL and they're running on CloudFlare. You'd be, you'd be happy to
[00:45:55]
Kalen Jordan: No, it's like a crazy domain. It's like some
[00:45:57]
Kalen Jordan: crazy auto generated, but I think you can override with a custom domain. Um, but so you would normally just use a cloud flare worker for that type of thing. If you needed to create an endpoint and do some backend stuff, you just, is that how you would do it?
[00:46:14]
David: Um, I haven't had to do that for Kuyana, but I did make a stupid side project and I just did it all in Cloudflare and, and that, like, it sounds a lot like the way Cloudflare's,
[00:46:57]
Kalen Jordan: you just install it, you click a button, it gives you a URL, it gives you a link. It gives you the command line things to run, like you literally copy and paste it
[00:47:11]
Kalen Jordan: And it, it even creates the, it'll create the repository for you, if your GitHub is off or
[00:47:17]
Kalen Jordan: It'll create the repository, it'll give you a thing to paste into your terminal, you paste it, it installs all the packages, runs the local thing, you hit localhost 3000, and it's up and running. And
[00:47:31]
David: Thanks for letting me be dumb. Shopify.
[00:47:34]
Kalen Jordan: it's, I know it's like, cause I don't, you know, I, I'm, I don't, it's not like I have a lot of experience deploying that kind of stuff, but it was like surprisingly easy to get up and running.
[00:47:44]
Kalen Jordan: Um, and then, and then you just, if you push to master it, it pulls it in, it deploys it. Um, one thing I hadn't
[00:47:54]
Kalen Jordan: realized on the first one I did is I was trying to see some logs in production because something wasn't working and I wanted to see some logs. And then when you click in there, the first thing you see are these log drains.
[00:48:05]
Kalen Jordan: Which allows you to connect to a third party service to, uh, to send the logs to. So I like created a data dog account and I connected it up. It was a little bit annoying. And then this time around I was about to do that, but I checked with the client first. Cause I was like, I think they have a new relic account.
[00:48:22]
Kalen Jordan: Let me use that instead, blah, blah, blah. And then I posted about it and I was like, how is there not an easier way to just see logs? And turns out there is. You just, I was clicking in the wrong place.
[00:48:32]
David: You got to click a checkbox over here. You're doing like the custom hard way.
[00:48:39]
Kalen Jordan: There wasn't even a checkbox. It was just there. I just did it. You got to click on the, there's like storefront settings. Which takes you into the, that logger and stuff. But if you just click on the deployments, like it shows you a list of every deployment. Just like GitHub,
[00:49:23]
Kalen Jordan: Dude, that's been, that's been a while. We keep sneaking Magento into every single conversation. It's hard, it's like, it's like we can't, we can't avoid it.
[00:49:34]
David: You know, you, you got to remember where you came from.
[00:49:37]
Kalen Jordan: Yeah. I was, so I was, um, thinking about the, I was thinking about this cause, um, you know, I'll try to find, you know, I'm working, I'll be working on some new project and I'm like, okay, where the hell is the snippet that I got to find to whatever, to fix whatever the hell is
[00:49:53]
Kalen Jordan: page. And so inevitably I'm searching for, you know, I'm looking, I'm inspecting, okay, here's a, you know, here's a class that looks unique.
[00:50:02]
Kalen Jordan: I'll search the code base, blah, blah, blah, trial and error. And I was like, Dude, like it'd be cool if there was a theme inspector like Magento used to have. Um, and I asked about that. It doesn't really exist. There's like, there's this one Chrome extension that like does profiling and it like, it itemizes the, the, all the different snippets, um, in a, in like a timeline profile view, which I think
[00:50:27]
Kalen Jordan: is the closest thing to it.
[00:50:29]
Kalen Jordan: I don't even know if it would, if it's possible with the rendering engine. To, like, introspect it and do a theme inspector. I don't even know if that's, like, possible
[00:50:40]
David: Yeah. You, you would have to have like Shopify would have to be the one that does it, I guess, cause it would, it's part of the Ruby
[00:50:48]
David: they got going on, but yeah, I've seen that too. And, and, uh, in Chrome dev tools, there's like a Shopify tab where. You can see how long
[00:50:56]
David: each block takes to render and stuff like that.
[00:51:00]
David: And maybe that's helpful, but also, um, how, how many sections and, and snippets does this project have? Like, usually I can find my way around stuff pretty quickly, just in the S code, like doing a search for a class, like you said, and then, um, going up the render call chain or whatever, but
[00:51:26]
Kalen Jordan: it's cause you got a sane code base you're working out of, dude. You're not working on every fuckin random third party garbage theme that comes your way cause you got to feed your kids.
[00:51:39]
David: Uh, I'm, I'm, I gotta count my blessings here, I guess.
[00:51:44]
Kalen Jordan: Yeah, you gotta let me know when a job opening opens up over there, dude. Jeez. Um
[00:51:50]
David: sell those totes, gotta sell way more totes.
[00:51:55]
Kalen Jordan: You better push those totes, dude, gotta push those loyalty points on those totes.
[00:52:18]
David: I started hearing about this project, I was like, yeah, like, but we're, we're doing points, but no, we're not doing points, so I'm, I'm actually really, really happy about it.
[00:52:28]
Kalen Jordan: yeah. This, um, this one guy follow on Twitter, Phil, something. He, um, he's been posting like different, he's like an email marketing dude, but he's been posting like app ideas that have been pretty interesting. And, um, one thing he posted recently is he was like, he's like, Hey, everybody's building Shopify apps, but Klaviyo is this huge ecosystem on its own.
[00:52:53]
Kalen Jordan: And he was talking about the idea of building Klaviyo apps for certain types of things. And he listed a couple of them out. And one of them was a refer a friend thing and he said exactly the same thing like nobody wants another loyalty program Just do just do a refer a friend and build it like Somehow natively into Klaviyo, which I don't even know what that means exactly To build something as a Klaviyo app
[00:53:56]
Kalen Jordan: Yeah. Yeah, and yeah. And it's funny cause I remember like, God, it must've been eight, 10 years ago. Last time I was in house with a brand and they, they had the same thing. They were like, we don't need a loyalty program. We want to just a nice refer referral program.
[00:54:12]
Kalen Jordan: Um, and I was surprised that that's kind of the same situation today. Um,
[00:54:19]
David: Take the best bit from the loyalty program and do that thing.
[00:54:24]
David: Yeah, I mean, it's, uh, Shopify has got good enough promo engine and like an API to the promo engine. So it's, it's really cool. The, the, the kinds of apps that you can integrate with Shopify that do promo things is, uh, it's pretty wide, but then you got to make sure that they're not doing weird shit, like creating a new top level promo for every referral. So now you've got like a
[00:54:54]
David: bazillion promos in your promo list.
[00:54:59]
Kalen Jordan: Yep. I've seen that one. I've seen that one a time or two.
[00:55:05]
David: We had an app, uh, that created like. 13, 000 single use codes and our discounts. And I was like, Hey, uh, what's going on with these codes? And they're like, Oh, that's a bug. We got to fix that.
[00:55:26]
Kalen Jordan: Oh, the app developer said it was a bug.
[00:55:31]
Kalen Jordan: That's funny. Um, okay. I got to give a shout out. App of the week. Shout out app of the week. Um, plat Mart swatches, uh, which was a color. So I needed to do color swatches for this one client. And I was looking at, Um, they have products that have different colors, right? Not using variants for colors. And so they wanted to link them together with, uh, you know, a swatch.
[00:56:03]
Kalen Jordan: And so I was looking at combined listings initially, because I was like, I think that's what combined listings are for. And it, it was just super, I don't know. I don't know if you've shot touch those. I didn't, I
[00:56:19]
Kalen Jordan: okay, there you go. It's a mess, right? Like I don't get it. Um, yeah, I mean, I mean, it seems, I mean, it seems like exactly what people have been asking for for a long time.
[00:56:32]
Kalen Jordan: I think it's, I think, I'm sure it works. I'm sure if you set it up right, it works, I don't know, but, um, so then somebody mentioned this app, dude's name is Kirill, the founder, and, um, he's on, he's on Twitter and I think he's been doing apps forever and, uh, anyway, so it just works and it just works. It works perfectly.
[00:56:51]
Kalen Jordan: Um, it's like the interface in the app is clean. And so we were talking about the other week, which may or
[00:57:04]
Kalen Jordan: like, it was so good. Um, and anyways, it just works. Um, there was like one thing issue where like the, um, um, It, uh, it was the color swatch was like showing in this one product grid where I didn't want it to show because it was like a recommended products, a grid that was showing on the product page. And I asked them, I asked them about it and you know, I'm expecting they're going to say like, Oh, here's the configuration option or here's what you got to do in liquid or da, da, da, da, nope.
[00:57:42]
Kalen Jordan: They reply and they go, it's fixed. And what, uh, no collab access, never gave them collab access.
[00:57:49]
Kalen Jordan: What he does is he has a CSS metafield that he can modify, uh, to fix, to fix something on your site on the
[00:58:01]
Kalen Jordan: on the fly with no collab, yeah, which I was like, that's so smart, like, um, and, uh, anyway, so I, so I just did the beast.
[00:58:13]
David: that guy that needs to be stopped.
[00:58:15]
Kalen Jordan: Yeah, he's the guy. Yeah, he's the guy. Cause then, cause the thing that I saw there was he's building some other thing that was some fancy
[00:58:26]
Kalen Jordan: Yeah, some crazy look, cool looking thing in Polaris. And I was like, this, this, the guy needs to be stopped. This is, this is getting, this is getting out of hand, dude.
[00:58:58]
David: we have a similar problem where we're like trying to combine like
[00:59:01]
David: when we have, um, it's so dumb. In NetSuite our products with different materials have to have different SKUs. And so they, like, will have 2 or 3 different versions of the same product, uh, in Shopify. One is like Krakow, and one's regular pebbled leather, and we link them together on the PDP, but I would love it if there was a solution to just. Add Krakow as another swatch on another product.
[00:59:32]
Kalen Jordan: I think that's how it works. You create groups and I think you can create arbitrary groups. I don't know how it would work if you were co mingling different groups. I hadn't quite thought about that because in my case it was just like, uh, well, you know, each product just links to its different colors within that one product.
[00:59:55]
Kalen Jordan: And I'm pretty sure it uses metafields and everything, you know, it's all metafields, I think. Um, although I was thinking more about it and it might not be that complicated to just, just do, just do it with metafields and um, in liquid. Like it might, might be
[01:00:33]
David: Yeah, that's how our option links work. you have to.
[01:00:36]
David: add it on each one of the products. Click
[01:00:38]
David: create an option group. It gets weird.
[01:00:42]
Kalen Jordan: Yeah. Gotcha. Okay. We'll have to, we'll have to scope that out at some point.
[01:00:49]
David: Well, that'll be, uh, that'll be a large, uh, what was the worst one? Uh, that's a, that's a, that's a big job. I don't remember what your,
[01:01:21]
David: Like you said, they, they must get some bennies from answering questions. Whoever
[01:01:27]
David: gets in there gets marked the solution. Yeah.
[01:01:29]
Kalen Jordan: know. It's, uh, funny because I talked to, uh, to Liam. He, he, uh, talked to me about them as they were getting ready to launch them. And, um, he, uh, Mention. He mentioned them. He's like, yeah. So like, what do you, what do you think? And, and at the time I was like, dude, to be honest, because at the time I was doing a lot of stuff on the forums.
[01:01:52]
Kalen Jordan: I haven't been on the forums for, for a hot minute, but I was replying to the forums all the time as kind of like a lead generation thing.
[01:02:00]
Kalen Jordan: Um, and I kind of had a system down for doing it. You know, I've been building up, you know, Point, not point, you know, but like reputation by answering questions and getting solutions and blah, blah, blah, blah, blah.
[01:02:12]
Kalen Jordan: And so what he asked me about, I was like to, you know, to be honest, like I, I'd rather not have another system to deal with than like, you know, and I'm kind of mostly wanting like to be in front of merchants, you know, to get leads.
[01:02:27]
Kalen Jordan: As I'm responding to stuff. So it was like, to be honest, like I don't really want like some other form to deal with.
[01:02:35]
Kalen Jordan: Um, but now that it's launched and I'm just, you know, selfishly using it to get questions answered and they're
[01:02:41]
Kalen Jordan: getting answered so fast, dude, this is amazing.
[01:02:46]
Kalen Jordan: I'm so glad they did this. like, on the other forums, like, this is why I'm saying Paul Nooch is, like, the man, because he replies to so, so many flow questions on the forums, and I think, like, having PMs that are responsive on forums and stuff is, like, so huge, and it seems to be sort of rare.
[01:03:09]
David: it's great. He's answered a couple of my questions already on there. And, uh, like one of them was an annoying, like flow should have this feature. And he was just like, I agree, but we have a roadmap. It's like, cool solution. Thank you, sir. For your eyes on this,
[01:03:29]
Kalen Jordan: Yeah, yeah, I don't know if it's specific to flow. I know that every time a new feature is announced. You get a lot of people like asking, well, what about this? And what
[01:03:39]
Kalen Jordan: about that? Like there's no like celebration of the feature. It's
[01:03:44]
Kalen Jordan: And we need this and we need this, but I feel like somehow with flow, like every time there's an announcement that I'm kind of excited about, I feel like it's nothing but like, and we need this too.
[01:04:43]
David: I'm the palest person in the whole world. Gotta have that dark theme.
[01:04:49]
Kalen Jordan: Nice. I have dark theme on my, on, on, uh, visual studio. And that's pretty much it. Everything else, I like the white background. Even though it's probably causing
[01:05:10]
Kalen Jordan: I'm blind in one eye. No big deal.
[01:05:14]
David: dark mode for me. Is, uh, is Riverside in dark mode for you right now?
[01:05:18]
Kalen Jordan: Oh yeah, Riverside. Yeah, I guess. But, you know, but I never think of that as dark mud. I just think of that as Riverside's like, um,
[01:05:45]
David: It's fine. That's one of the things that I think we need to spend time on next year, those. Uh. Putting some love into that. We just have like some small amount of boosting and like keyword help,
[01:06:00]
David: like that. But one of the things that I really dislike is all of our products, uh, come in from NetSuite with black as the first option.
[01:06:09]
David: So that's the default. And every time you do a search, the default color is the, is the one that comes up if you don't include a color in your search term. And so it just shows up with all Black results, and I would love for there to be some more variation there, like some way to set face out values. That's probably what we'll end up doing is creating a default face out metafield.
[01:06:34]
David: On products and then use that in, uh, in search results.
[01:06:43]
Kalen Jordan: And just display that in liquid. Just pull that meta field.
[01:06:47]
David: Yeah. The hard thing is though, that you, you, you don't necessarily know if they searched for a particular color and the liquid. So I have to figure that out.
[01:07:05]
Kalen Jordan: yeah, I'll be fine. I haven't really like done. It's not like I've deployed search for a bunch of clients or anything, but you know, I'll see questions about like, you know, little gaps that need to be filled, like what you're talking about. And so that was always my impression was that like bigger stores tend to use some kind of third party search.
[01:07:26]
Kalen Jordan: And the native one was. Pretty limited, but
[01:07:30]
David: It is limited, but it's got some good stuff. Like it's got the basic, um, like it, it also helps you define filters. So if you're
[01:07:39]
David: on a collection page and you're, you're, you're putting filters in there, like a, a color filter.
[01:07:44]
David: There's, uh, there's functionality for creating color families, which is
[01:07:50]
David: usually, like, one of the things that doesn't exist in a base search, uh, or filtering mechanism in these stores. Um, but we, like, we definitely have 500 different blues or whatever, and so it has the ability, and it's also pretty smart to, like, kind of guess what, what color this thing should be, uh, if it's not in a color group yet. It