Kalen and David talk shop—what it even means to be a “programmer,” juggling alter-egos like IT Dave, and trying (badly) to self-promote. They drift from Halloween costumes to token-pushing AI workflows, Claude vs Codex, and Shopify Minis experiments. Mixed in are sharp takes on ecommerce—concierge emails, product description tests, checkout tweaks, and Shopify QL—plus a little SaaS and A/B-testing frustration. Just two devs thinking out loud and trying to make the work a little smarter.
01:13:00
Wrapping up: Minis, optimism, and candy plans
Transcript
[00:00:00]
Kalen: I tell people I'm a programmer, you know, because, I don't know, it's just, it's the same thing. It's just like, yeah, we've somehow, there's a, somehow a more fashionable word for it, but it's the same thing.
[00:00:10]
David: I don't know what to tell people I do these days. Like, yeah, I guess I could say I'm a programmer. I don't know.
[00:00:19]
Kalen: If they ask what you do, just tell 'em at work. They call me it, Dave, there you go. That should do the trick. Or
[00:00:25]
David: just pick random. Usually I'm in e-commerce or I sell women's handbags. That sounds so weird.
[00:00:42]
Kalen: This episode is brought to you by smile.io. The loyalty platform trusted by thousands of the fastest growing Shopify Plus businesses to increase repeat purchases, reward VIPs, and build lasting customer relationships. Smile helps businesses become more profitable while discounting their products less.
[00:01:04]
You gotta be careful with the discounts. You don't want to push too hard on the discount pedal. If you're ready to turn transactional sales into lifetime customers, start building a more profitable business with smile.io today.
[00:01:22]
Read it. I'll just retweet. Oh, no, no, no, no. I'm gonna delete it. I'm gonna delete it. I'm gonna delete it. You have to tweet it. You need the credit. Don't delete it. Shit,
[00:01:38]
Kalen: Plus if I can be so honest, you're barely carrying, uh, what's the word?
[00:01:43]
Carrying your own weight when it comes to the podcast promotion.
[00:01:47]
David: I know. I should just promote more. I, I gotta get, gotta get in there.
[00:01:52]
Kalen: I need you to step up, dude. I need you to step up and, and take ownership because, you know, all, all of the sales reps on our team have to, uh, have quotas. So we're, you're ex expect your manager to reach out with, uh, with, with a quota, because Oh
[00:02:38]
David: Any, no more. Like anytime I have something to say, it's not flowery at all. It's just, I don't know. I don't know how to explain it. I feel like,
[00:02:48]
Kalen: I feel like you actually have generally have like pretty elegant ways of explaining things. I feel like I just like blab and I feel like you're more
[00:04:05]
Kalen: Do people ever call you Dave and do you just backhand them if they do?
[00:04:10]
David: Sometimes they call me Dave. I never backhand, but I do have a consistent alternate persona.
[00:04:18]
And anytime, like anytime I need an alternate persona, it's crazy. Dave. It's like a word and then Dave like, uh, if I need to sell something on Etsy or something like that, it's like, it's like Sales Dave, or like, that's the, that's when I need to be someone different, you know?
[00:04:38]
Kalen: Okay. Dude, I didn't know I had a whole functionality to unlock new personas for you on demand.
[00:04:49]
Speaker 3: branch, unique URLs. Mm-hmm. That you can just spin up. Yep. Effortlessly. Dude,
[00:04:55]
David: we got a day to Dave. We got an it Dave. I actually have like a recurring calendar event every morning at 10:30 AM that's called it Dave. No, that's when I do my like, does anyone need a computer right now?
[00:05:10]
Does anyone need to get into Dropbox or whatever?
[00:05:15]
Kalen: Nice. See dude, you're just like, effortlessly cool. That's what I
[00:05:20]
Speaker 3: like putting it Dave, on a weekly calendar rotation is just like, it's just cool, dude. I don't know how else to say it.
[00:05:32]
Kalen: Oh man. What you been jamming out on lately?
[00:05:36]
David: I have been trying to get Codex in all the places to try it out. Uh oh. Dang. My boss was like, we gotta pump the token numbers on this A IU.
[00:05:53]
Kalen: so I was onto something when I was talking about performance metrics. I didn't realize
[00:05:58]
David: Yeah, the tokens, that's where it's at. I took a screenshot last night. We just crossed over a million tokens this year. Nowhere near or close enough to get a, to get a trophy. But
[00:06:10]
Speaker 3: you just, oh yeah. 'cause they showed the leaderboards.
[00:06:13]
They launched the leaderboards. The token leaderboards. That's hilarious.
[00:06:18]
David: I'm missing out on a ton of tokens 'cause I was using Claude code for a long time, but now that I got Codex running, those will pump.
[00:06:27]
Kalen: You just, you just are blasting it with like nine gigs of log data
[00:06:32]
and just being like, can you figure stuff out about our traffic patterns?
[00:06:38]
David: That's what I've been doing to Claude. But also like all of the tokens that we use currently with the chat, G-P-T-A-P-I are like literally I'm using GPT vision, so it's all images tokens, right. So I'm just sending a ton of images for alt text generation. I gotta figure something else out.
[00:06:57]
That's a really cool one. Alt text. Is that working well? Like does it feel like the alt text is like noticeably better?
[00:07:04]
David: Oh yeah, it's really good. It's, uh, it was the sheet that I set up like a year and a half ago and it's just a Google sheet and it like, puts in the alt text into the A column and then someone can go in and be like, yep, that looks good.
[00:07:17]
Right and send it off. And then you just rerun
[00:07:20]
Speaker 3: it on a loop against the same like 300 points. Oh
[00:07:23]
David: yeah. And you have it zero optimization.
[00:07:28]
Kalen: You have it, you have it run continuously and compare the new version
[00:07:31]
Speaker 3: to the last version and ask it which one's better and just keep running it. We're gaming the system tomorrow.
[00:07:38]
24 hours. Hours a day. Nice. It's funny, it's like, it's like, Hey, let's use more
[00:07:44]
Kalen: tokens. And you, you do that and then the boss is like, I saw you were using more tokens. Nice job. Nice job Dave. And then you're
[00:08:49]
Kalen: Yeah. Okay. So since nobody listens to this podcast, even though we did hit a weekly, an all time weekly high, um, yeah, we're getting there.
[00:08:58]
Uh, but it's kind of nice to like not, 'cause once you know, product managers are listening to shit, you have to be more like mindful in that. But. We'll get there eventually, but no. Anyways, watch out. I got a little bit of feedback from the team. I, I basically just asked a couple questions like, oh, is this a good idea?
[00:09:18]
Blah, blah, blah. I asked about one idea and then. The first idea was a mystery box idea, which I literally just got from chat GPT. 'cause it's like, like these minis are so new. I don't really have like an intuition. I usually like to have like some intuition for what I'm building or Right. Is something just kind of occurs to you, you know?
[00:09:37]
But I'm like, okay, I've always wanted to get into one of these new app surfaces at like just the right time and then just skyrocket to success.
[00:09:45]
I'm like, okay, here's my chance. So, but I didn't really have an idea. And, and they're like a different thing. They're weird. They're not like apps. You can in theory tie them in with apps, although it's a little bit weird as to how you would do it.
[00:09:59]
But they're really different 'cause they're really, there's no merchant install. The end customer kind of clicks a little off screen and it shares some of their buying preferences with you. And then you're off to the races. You can query products across all of Shopify. And so I was kind of trying to figure.
[00:10:17]
Things out. So I kind of mentioned the mystery box idea. They were like, yeah, sounds good. And then I was like, cool, let me go figure out what a mystery box idea means. And so I think I asked you for some feedback. I DMed a couple people. I, I'm looking on YouTube and there's a lot of mystery boxes where you literally, it's a mystery until the thing arrives at your door, which I guess makes it kind of fun or whatever.
[00:10:45]
And then you were telling me about the labu boos where like you get the reveal on the, once you complete the purchase, which also seems fun.
[00:10:54]
David: Well, you can choose, you can either reveal it at checkout or get a mystery box that you, when it comes to you. Nice. Right.
[00:11:03]
David: cool. Yeah. And so then, yeah, the, the way that the like post checkout one works is if you like, it can kind of track which ones you've gotten and then you get like points towards like something, I don't know, I only ever did one, but
[00:11:18]
David: It's kinda like an extra little game situation.
[00:11:21]
Kalen: Oh, cool. So it sounds like they've really somehow like unlocked some game dynamics. So then I kind of got some feedback on that, and then the feedback was kind of like, well, you want things to happen in app and obviously within the shop minis you don't have any control over the post purchase shop app page.
[00:11:40]
So it's like more like, Hey, make it a fun little daily habit, viral or whatever, feedback loop type of a thing. So based on that feedback, I was like, the swipe idea just kind of occurred to me. And then I was like, oh, I like this idea. Like, it seems it's a little bit, whatever. It's a little lame, but like it could work.
[00:11:59]
So I'm like spending a shit load of time on it the last few days. And then they kind of, sort of gave me a little bit of a heads up that like this Tinder idea has been attempted like 10 different times at the hackathon and none of them were approved. Ah. So, so I'm like, I'm like, wait, why I don't get it.
[00:12:21]
You'll, but the UX guidelines do have some details on there that I think I'm gonna try to adapt my idea to a little bit. Like, they want like daily habits where like there's a thing that, there's like an action you can sort of like complete in a day. So that like, as opposed to like a never ending scroll, like there's like more of a gamified, like do X things today.
[00:12:49]
Kalen: Type of a thing. So I think I'm gonna submit it anyways and just try to put some of that stuff in there. Um, can
[00:12:55]
David: you build in, like push notifications for your app? Mini
[00:13:01]
Kalen: shopping? It has, I think it has these things called updates that you can send, which I haven't looked at too much, but I think they're like, almost like posts like,
[00:13:13]
David: that as a merchant, but I wasn't sure if you could do it as like a, a shop mini or is it right? Is it that the shop mini gets installed by the merchant and they can set that stuff up? No,
[00:13:25]
Kalen: so it does not get installed by the merchant, which you, it's weird. I kept thinking that was the case. It just gets the user just off.
[00:13:34]
It's just there and there's no app ID for it or anything like that. Does the user
[00:13:41]
Kalen: Yeah, they basically click on it and then it pops a little off screen. It's, it's not exactly an in installation, but you know, it's like a, I guess technically, you know, it's just like a, a little off and then they get into it.
[00:13:54]
Yeah. So I was like, I was trying to figure out like, like where did this idea come from? Like, does this idea exist in Amazon? I'm like, no, I don't think so. But apparently it's actually sort of similar to like WeChat, which is that app in China that's like massive. It's like
[00:14:14]
Like you can pay your rent with it. You can like pay for anything in the entire country with it type of thing. And they have all these mini apps. They actually, they're actually called mini programs when I looked it up, which is kind of, which is kind of funny. Always make probably sounds better
[00:14:31]
Kalen: Yeah, probably. Yeah, yeah, yeah. I always make fun of my boy Colby, shout out to Colby because he says programs sometimes and I'm like, they're not called programs anymore. But I think it's off. But I, I tell people I'm a programmer, you know, because, I don't know, it's just, it's the same thing. It's just like, yeah, we've somehow, there's somehow a more fashionable word for it, but it's the same thing.
[00:14:53]
David: I don't know what to tell people I do these days. Like I guess I could say I'm a programmer. I don't know.
[00:15:02]
Kalen: If they ask what you do, just tell 'em at work. They call me it Dave. There
[00:15:18]
I was actually looking at your site a little bit 'cause I was. I was doing some stuff with like product content generation, uhhuh, and I was doing it for this one site, this one client. And, 'cause basically I'm looking at their, their product descriptions and they're pretty small and I was like pretty sure that like, it's not good.
[00:15:38]
I know some people have smaller descriptions intentionally and stuff like that, but I was trying to figure out if it was just that they just don't have a very like, thorough content process. Mm-hmm. And so I looked at some other like high-end furniture sites and they did have sort of like more kind of SEO friendly type descriptions, but they were also like quality, like it didn't feel like a cheesy, you know, spammy Yeah.
[00:16:01]
Like description. So then I was working on some prompt stuff to generate them and I was like, oh yeah, let me look at your site too. 'cause you also, you also have like a super like luxury premium type site and your descriptions are insanely short.
[00:16:17]
Kalen: At least the couple products I looked at. But I think it feels like it's the right thing to do because your whole thing is like minimalist fewer things, but better things or whatever.
[00:16:29]
Um, yeah, no, I did a whole like, chat gbt. I was like, pull this side in and talk to me about their brand voice and their like tone and they're like, and it explained those things. I was like, oh yeah, I remember David talking about that stuff. Like fewer things but better things.
[00:16:45]
David: Yeah. I love how good the bots are at pulling out the fewer, better thing.
[00:16:49]
'cause that's definitely one of the big things. And it's on our like brand pages, so I guess they, they scraped all that stuff, but yeah, we, we've done a lot of testing around descriptions, like, not necessarily testing shorter and longer ones, but we know mm-hmm. Like for us, our creative is like really strong and that's what sells the product.
[00:17:06]
Like we know the more time people spend on the site or like if they started their session on the homepage, which is super creative heavy, that they'll, they're more likely to purchase. Like text is kind of not that important 'cause people just don't really read it. Yeah. But at the same time, we've tried putting that description in different places on, on the PDP and it always performs best, like being up in that kind of top spot.
[00:17:30]
Kalen: it really does look really good and really like crisp and it's like, it's so short. It's almost like written well, like I read a couple of 'em and it just, it's just this nice kind of unique, like kind of flowery, flowery or not flowery, but it's easy to digest just from blinking at it, you know, because you're like, and the product shots are so nice, you're kind of focused on them.
[00:17:52]
And then it's like easy to absorb. I was trying to tell myself that it was Underoptimized, but then I was like, ah, I don't think it is. I think it's kind of perfect, but, but if you haven't tested it and you're always needing to come up with testing ideas, I would submit that it would be worth the test.
[00:18:10]
David: Yeah, I agree. Maybe what the test would be is like, okay, here's our current product description. Here's all the rest of the data about this product, including all of the below the fold content. And then based on all of that content, make the description a little bit longer and then ab test that, that would be cool.
[00:18:29]
Kalen: Do you know what would be interesting to test too is 'cause you don't want to, you don't want it to take up a whole bunch of like vertical real estate is have, uh, some kind of indicator that you can click like a, a little expander joby to see the full description. Oh yeah. We tried that too, and it failed.
[00:18:44]
Did it really? Yeah. Wait, but so you tried it with your existing product descriptions? Just existing? Yeah,
[00:18:51]
David: because some of them are longer and so we, we cut it off to like a few lines or something like that. I think we might have only done that on mobile. Yeah.
[00:19:06]
Do you remember how like strong the test results were? Like statistically, what was it like? Uh,
[00:19:13]
David: I don't, it was a while ago and I bet our like testing stuff is much better now. So like there's a couple tests that were like, we should retest that because it's been a while. You know.
[00:19:23]
Kalen: Gotta retest it. Gotta retest it.
[00:19:25]
David: Um, I'm really focused on checkout testing right now, which has been pretty cool. Oh,
[00:19:31]
Kalen: nice. Yeah. I think you, I know you mentioned a couple of your tests, but I don't remember what the checkout test was.
[00:19:37]
David: It was just a little bit of like messaging in checkout. But I met with this company pretty damn quick that I've heard from a couple people actually.
[00:19:47]
David: our Shopify rep mentioned it. 'cause I had mentioned something about checkout. They seem really interesting. There was a, A post today where, man, back on like forgetting everyone's names. It's the worst. It is the worst.
[00:20:03]
Kalen: It's okay. Just call them person a
[00:20:11]
David: Yeah. He tweeted something about PDQ and what's really interesting is like something I really wanted to test in checkout was whether or not three step or one step checkout converts better.
[00:20:24]
David: And what he was saying that PDQ is doing is they're swapping their checkout setting once an hour between those two.
[00:20:32]
And so like, it's not a before and after, but it's also not like a perfect AB test where it's like exact same time. Mm-hmm. But it's kind of somewhere in the middle and you can, like, that's what you have to do. But I, I was really interested in that because I think that's a really interesting way to kind of get through that limit.
[00:20:50]
You know, like you can't really ab test and check out on some of these big things, but
[00:21:08]
Kalen: so what is pretty damn quick do,
[00:21:10]
David: oh, they do a bunch of stuff. You should check out their site. They have like a little bit of everything. They've got like the post-purchase shipping page, they've got. Checkout AB testing. They've got this tool called Checkout Pulse. I'm like, why am I selling this product right now?
[00:21:26]
Because I'm, you just told me you didn't know how to sell stuff. Proceeds to sell stuff. It's uh, this thing called Checkout Pulse, which shows you like a bunch of metrics about dropped carts and like cart size bands and information about that and app errors that checkout has been seeing.
[00:21:52]
Kalen: So it's an app with a bunch of different features.
[00:21:55]
David: Yeah, and I, I think like the main thing is they just consume all of the data from checkout and come up with interesting tests to run. Dang. That's smart dude.
[00:22:05]
Kalen: That's cool. It'd be funny if you did a test where you put like a goofy message in checkout, like where you just said, if you don't.
[00:22:12]
Finish checkout, I'm gonna find you or something. Something
[00:22:16]
Speaker 3: like borderline creepy. I'll suggest that.
[00:22:21]
Kalen: dude. There's this tool called CC Sessions that Stewart Revo Stewart tweeted about. It sort of adds this framework on top of Claude Code where like, it's a little hard to describe, but it ties into Claude itself.
[00:22:37]
So like when you install it, then you do you type kickstart and it, like you're talking to Claude, but it's taking you through an onboarding flow of how to configure this thing. And it has this, it, it enforces this workflow where like anytime you're working on a task, it creates a markdown file for the task and then it'll create a context manifest for the task.
[00:23:02]
So it basically like, it basically pre Cashs all the context that Claude would've had to spend a whole bunch of time building up. And it basically caches it into the task file so that like the task can kind of stand on its own. Um, that's awesome.
[00:23:19]
Kalen: need that dude. And it does several other things. It's a little tiny bit over complicated perhaps, but I probably just need to think more about it.
[00:23:29]
But the way that the onboarding flow takes you through and the way that the guy's written it, I think his name's Toast or something like that. It's freaking hilarious. Like really it was just the funnest, like onboarding flow.
[00:23:45]
David: I gotta try it. Does it only work with cloud code?
[00:23:47]
Kalen: Yeah. You're like, dude, I got tokens to push, man.
[00:23:53]
I can't be screwing around. I can't be screwing around with cloud code.
[00:23:57]
David: Oh dude, I, I miss cloud code. I've been trying Codex and, and Codex works really good. NVS code, but outside of that mm-hmm. I was like, just trying to do some of the similar stuff. Like I, I literally went to the same repository that I've been working on with Claude Code and I was like
[00:24:13]
David: Read my Claude MD file to get up to speed and then tell me how many repeat purchasers we had last week. 'cause I like, that's where I've got, like, I'm in that sweet spot with Claude Code right now where I can just go back into my session and ask it something and it knows where to go to get all this stuff.
[00:24:29]
I love that. And I, I want that, like, I need to capture that somehow because mm-hmm. Eventually I want other people besides me to be using this like Claude code, right. Set up with all this context, but I have no idea. How I'm gonna protect the context to not like get overloaded over time. How do I make sure that everyone who comes in gets like their own set of like context for when they're talking to this thing?
[00:24:52]
And I just like, I'm kind of lost on where to go for that next. Huh. Why would each
[00:24:57]
Kalen: like user need its own context versus let's say one set of context for how to grab analytics and stuff?
[00:25:04]
David: Because the way I'm thinking about it is while someone's using this CLA code session, like I feel like I would want.
[00:25:12]
Claude to somehow take snapshots of the, the questions that people are asking and like save that sequel somewhere so that over time it could become something that's like a canned report or be adjusted over time.
[00:25:40]
David: Does it start from scratch every time? Or are you able to like load in context from. Previous sessions where you've gotten it to where you like it. So
[00:25:49]
Kalen: I think the Claude SDK or the headless SDK, honestly I don't quite understand how it loads context.
[00:25:56]
I was kind of confused about that. So when I did it, I actually wrapped an actual command line with a file system. So it just worked exactly the same way as a file system so that you could just write to a cloud MD file. You could like have them per subdirectory, so you could have like different types of queries within certain sub directories with their own clot MD files or with examples.
[00:26:24]
And then you could just set it up so that like if a user used something that was a new query or something, it could just write that to a cloud MD file. Um, I see. Um, but that feels a, a little wacky,
[00:26:39]
David: I guess that's the way you're supposed to do it, but like basically what I want to do is. I'm talking to Claude Code.
[00:26:46]
I feel like I've got a point where like, you know how the, like it's basically reinforcement learning while you're running through this set of like this conversation. Mm-hmm. That's all reinforcement learning within this window that you have, and I want to branch that and just make sure that every person that comes in starts from like some particular branch there.
[00:27:07]
David: because there's loss when you're like, okay, take everything you've learned from this conversation and put it into Cloud md. There's gonna be a ton of loss of, of context, and I just want it to be the exact thing that I'm interacting with right now, but available to more people. Yeah. Maybe, maybe Sessions does that, maybe that's what that's for.
[00:27:26]
Kalen: Sort of, but it's also very geared towards tasks and it's very geared towards like finishing a task and then marking it done. Hmm. And then it actually saves it in a done folder. I don't even exactly know how it tells Claude to avoid looking at it 'cause that would be confusing, but I'm not sure. But the whole concept of like creating a task, markdown file and then creating the context manifest of like the exact context needed for that specific task is kind of awesome.
[00:27:58]
And like I looked at one for an actual task I did and it created like 19 pages of like the exact context from all the specific code snippets related to that specific thing. So I was like, that's cool. Yeah. That's the right way to do it. I don't, I get, but, but if you want multiple people using your same session, it feels like it would have to be a web interface.
[00:28:22]
Although maybe the Claude Web interface could be used for that. I think it basically creates separate containers for each prompt. Just like Codex, just like the web codex. I just got access, I think it just came out a week or so ago, the Claude um, web version.
[00:28:39]
David: Oh, really? I haven't tried that yet.
[00:28:41]
Kalen: Yeah. It's basically just like Codex with like less features.
[00:28:44]
Like I spent a half hour trying to figure out how to get it to branch off of my staging branch instead of Master, and I couldn't figure it out. I'm like, I don't think they have that feature yet.
[00:28:55]
David: Yeah. The cloud thing is weird. I, I started with Codex, I started in cloud and then I was like, why am I doing this?
[00:29:00]
'cause like, you give it a repository that it should be kind of looking at. Mm-hmm. But every time you ask it a question, it like recreates the whole container from scratch every time you ask it something. Right. And it took like at least 10 minutes every time to answer a question that I had. So I just switched over to local and was talking to it from within vs code and it was way faster.
[00:29:21]
'cause it didn't need to, like it's using my machine as the sandbox.
[00:29:25]
Kalen: Right, right, right. Yeah, you gotta have a real asynchronous workflow for those things, which I'd like to figure that out. I mean, it's like the obvious use case is like you have some little bug that's not too complicated and you just want to trust it to fix it, and you don't.
[00:29:40]
You just wanna write one sentence and then be confident it'll be fixed and then Yeah, completely stop thinking about it,
[00:29:47]
David: like with a test scenario that it can go run the test and be like, did I, did I fix it yet? No. Okay. Try again.
[00:29:53]
Kalen: Yeah, I agree. Exactly. Like if you had a, a really nice system set up and you have a SAS app and you got like all sorts of random little annoying bugs coming in, like that seems like it'd be magical for that.
[00:30:08]
Kalen: in, in instead of like, like for me to squash like 20 bugs that are all like, not too complicated, but just the context switching would take me like days, but it could probably knock them all out like in like literally an hour. And then, you know, and if you have, if you already have a good unit test suite you've invested in, or even integration tests, then it's like you might not even need a person to blanket.
[00:30:35]
The actual testing it themselves, they might just mm-hmm. Look at the results and that'd be awesome to do stuff like that.
[00:30:42]
David: I was trying to work on multiple things last night because I feel like you have to be able to do that with these agents. Exactly. And it was within VS code and I had two different CLA sessions going and they're both making changes to the same code base and I'm like, ah, this is why get work.
[00:31:05]
Speaker 3: gonna have to set up work trees next. Dude, work tree's confused the crap outta me.
[00:31:10]
Kalen: But what's the project that you're doing it for? Does it have a database or?
[00:31:14]
David: It's our DBT stuff. So like, oh, right. Like I was asking it the way that I did this rewrite for the Shopify data from Tran, did I do that the right way?
[00:31:23]
And it was like, no, you could do it a different way. So it started just, it just started working through that. And then on another one I was like, okay, I need to update all these NetSuite things to NetSuite two. Mm-hmm. And it started doing that, and now I've just got one big diff nice. So that's, that's something.
[00:31:38]
Kalen: So it's not like writing to it to the schema or anything like that?
[00:31:42]
David: No, I do, I should have it, like, I should put that as part of its testing as like just run A-A-D-B-T select after you've made this code change and see what, see how the tables changed and, and BigQuery that's probably the next step too.
[00:31:54]
But you are changing tables. It changes the code that defines the tables, but I haven't asked it to run. A
[00:32:02]
David: Okay. Okay. Okay. But that would be the next step. Like, okay, now run DBT refresh and tell me where this table ended up.
[00:32:08]
Kalen: Okay. Yeah. 'cause if you have a database like that, that you're writing to, then using Git work Trees is gonna still be a little bit of a nightmare.
[00:32:16]
David: True. But I, I care less about the database. It sounds weird, but I, I care less about what changes are happening in the database than I do the code because you can just rerun, like it's easy to update the database uhhuh, like, it's not data that's being run off of for like delivering e-commerce. It's Oh, okay.
[00:32:35]
Okay. It's more like these tables get refreshed every 12 hours and they're, they're what's behind our flash report or whatever, you know, so it's okay if something breaks for a little bit, so they won't
[00:32:55]
David: yeah, yeah, yeah. Okay. But then my problem is like, I wanna have a clean commit of each one of those changes versus both those changes going into one commit. Oh yeah. Gotcha. Like one task is working on Shopify tables.
[00:33:05]
One task is working on NetSuite tables. They're updating different tables within BigQuery, but it's all the same code base locally. And I need to be able to split those apart.
[00:33:14]
Kalen: Yeah. For the commits, something I've been doing, I wanna do a better job of it, but it's not, I don't think it's too hard. It's like, let's say you just did those both in the same session, and if you only cared about the commits, then you could tell it to commit.
[00:33:28]
Like, okay, go ahead and commit the first thing. Mm-hmm. Or even if you have two separate sessions running, you could tell each session like, okay, commit only these changes. Yeah. Especially if there are different files. And then you tell the other one, commit only these, and then they'll like stage the correct files and like only commit their things to.
[00:33:48]
David: Totally. I, I, I bet that works. I'm just, I'm like obsessive about looking at get diffs and feeling clean. Oh, okay. Like I gotta like, okay, I see all these diffs code X, but let me go over here to my terminal and actually read the diff. That would be committed.
[00:34:03]
Kalen: Right, right. Yeah. Sometimes I get more like I care a lot about having a really nice GI history.
[00:34:13]
I don't know. I guess like if I'm taking more, like if the overall state of the project is like pretty high quality, then it's like you want even your diffs to be high quality. But then a lot of the time I'm just like, okay, it really doesn't matter that much. Yeah. Like
[00:34:28]
Kalen: As long as it's working, I dunno.
[00:34:30]
But like it is nice to be able to go through your commit history if you're looking for something, and to be able to actually find something just from the commit messages. Especially if you have to go back like 20 commits ago or something,
[00:34:43]
David: which I like almost never do. But I still, yeah, I know, but also I feel like, um, have you ever, have you ever heard of the Bomber Peak?
[00:34:54]
Speaker 3: Yes. That sounds familiar. You know,
[00:34:57]
David: like the optimal amount of beer that you should drink to be good at programming is like 2.5, right? Something like that. Alright. I feel like the same thing exists for working with agents. Like if you're, like, if it's getting really late at night and I'm like super tired, I care a lot less about what's going on and I just keep going and I just keep asking questions and it's doing things versus like, but it's in the middle of the day.
[00:35:21]
I'm like, okay, what exactly did you just do? Shouldn't keep going. Right. And I gotta stop. I feel I gotta break out of that. Right.
[00:35:29]
Kalen: So basically, I think I operate at somewhere closer to the two and a half beers just regularly.
[00:35:43]
I'm a little more, uh, forgiving with, uh, with things, but, oh man, I was trying to just switch a stupid modal over from the previous Polaris modal to the at bridge modal or the web component modal. The web component modal is like, which I don't know, I couldn't get it to work. So then I, I did the average modal, which I think is fine, but it was like it was taking way too long.
[00:36:09]
I hate when it does that, just like failing over and over again to, to get it right. It was causing weird bugs like the modal would open and then if you tried to close it and open again, it wouldn't open a second time. And then it, it wasn't using some on close handler and then like it wasn't showing at all for a while because it was like, I don't know.
[00:36:28]
And then I guess web components are not compatible with certain other stuff inside of them. It was very confusing, dude. I think I finally got it working.
[00:36:38]
David: What is your like human in the loop part of that? You have it make a change and then you go test it yourself.
[00:36:43]
Kalen: Yeah, yeah. I've tried to get a playwright testing things more.
[00:36:50]
I could swear I got it to test a Shopify embedded app and it just found the iframe, 'cause embedded apps were inside of an iframe and it just found it, it went inside of it, it clicked different elements. It was just magical. And the last time I used it, it could not get inside the iframe weird. So I was like, this sucks.
[00:37:12]
David: I wonder if Ghost Inspector is, is nicer for that. What is Ghost Inspector? That's what I use for smoke testing. Anytime we push a commit and open a pr, it runs through like, okay, go to this product, add monogramming, add it to the cart, check that when the cart slider opens, the monogramming is there, click the gift box, does the gift box get added?
[00:37:37]
And it's just like a small suite of things.
[00:37:40]
David: But I, I wonder if you could like force Claude code to go run a ghost inspector test and then see where it broke in the output and then understand like, oh, I can't close the modal and reopen it, so I'm gonna fix that.
[00:37:52]
Kalen: Yeah. Have you ever used it inside the admin, inside the Shopify admin, the ghost inspector?
[00:37:58]
David: No, I haven't, but it's, it's just a, it does whatever, so you can, I, I guess you would have to code it to be able to log into the admin. Yeah. Which means maybe that's weird, but you could also just have it like type in your username and password. Yeah.
[00:38:11]
Kalen: Through it. I actually, I have playwright open it and then I just log in by myself with my own, uh, whatever key, and then I just tell it to keep going.
[00:38:20]
But it just Gotcha. I know getting into iframes is tricky and sometimes it's like completely blocked. I think depending on the cross origin policy. I don't know. Oh, maybe, but it could not get into that sucker. Dude, it was
[00:38:34]
David: so annoying. Get rid of cores. It was a mistake. Do you think so?
[00:38:42]
David: I'm sure it's actually like very helpful.
[00:38:45]
Kalen: Yeah, that's what I figured. It's a web dumps pain. Yeah. No, I know. Cookie banners on the other hand, should Oh, yeah. Have never been rid of, invented, get rid of them. But that's more of a political thing than a technological thing. That's right. It's political, obviously. Do you know that reference by the way?
[00:39:02]
That's a movie test. Nacho Libre. Oh, eats political, obviously. Yeah. My whole family, my sister-in-law. Like if we say that one phrase, everybody starts laughing. Everybody knows exactly what you mean.
[00:39:16]
David: Even though Nacho Libre was played by a gringo. A what?
[00:39:23]
Kalen: A what man, he did so good though, dude. He was, I haven't seen that movie.
[00:39:29]
I need to So good. And my life's Mexican. And she's like, he seems so Mexican. Like it's crazy. How could he, I don't know how he did it, dude, because he's literally speaking English with a, with a fake accent. But it just, and the movie just feels so realistic. It's such a, it's such a weird movie. I've probably watched it like 25 times.
[00:39:53]
It's like we've watched it so many times. Do you have movies like that that you've watched, like a bajillion times,
[00:40:01]
David: K-Pop, demon Hunters? No, I, I probably haven't watched that 20 times, but I, I kind of don't like watching the same thing over and over again. I want something new.
[00:40:10]
Speaker 3: Yeah. Yeah. It's almost like somebody who wears the same Halloween costume every day.
[00:40:46]
Kalen: I totally want to do that. I've seen videos where they just do that videos and I'm like, I've seen YouTube videos where they just do things. I've seen you. Yeah, I've seen YouTube videos where they go, this is what you should do. This is what I do. It seems like it's gonna be weird, but it's really not.
[00:41:05]
It's really great. People like it, you'll like it, blah, blah, blah. And I'm like, I should really do that. But then I'm like, yeah, no, I don't want to be a psychopath. I'm already enough of a psychopath as it is.
[00:41:16]
David: Well, it's nicer during the winter because that's just your undershirt, and then you can add variation with the hoodie.
[00:41:23]
Kalen: Got it, got it. See, you're, you're, you're pretty advanced with this. I can tell.
[00:41:29]
Kalen: You got some advanced game did, speaking of my sister-in-law, so, so she's sort of between, in between jobs and, um, she actually worked with me back in the day at a previous job. I got her a job there. She did qa, it was a software agency.
[00:41:45]
I was a project manager there actually. Uh, it was just before I got into Magento. And, um,
[00:41:52]
Kalen: Yeah, so she was good. She was like very detail oriented for qa and then she did like accounting and other stuff. And ultimately, honestly, the job was like, sort of like stressful. Like I quit too. Like I think she ended up leaving it after I left.
[00:42:06]
Like it was just a high stress environment. It was like, you know, it was just, I don't know. But after that she sort of got into more like retail work for a while and then I think she's kind of putting feelers out, man. She's really good with fashion, like very good. Like has very, like she's sold. I don't know if you've heard about like Depop.
[00:42:27]
But there's these secondhand marketplaces that are really popular, like one's called Depop, one's called something else. Mm-hmm. And you know how thrifting and stuff is like super trendy. So it's kinda like that. It's kinda like reselling thrifty stuff for like more of a premium price. And she's done that and she's like, sold, sold some stuff, and she's like super into skincare.
[00:42:48]
Anyways, I think it'd be so cool if I could sort of like refer her to like a brand, you know, to do like, I don't know, like admin stuff or I just feel like she'd be perfect for it and it'd be cool for her to have like a, a better, you know, like a cool tech job versus, you know, retail stuff. But she's super, um, detail
[00:43:09]
That would be good for her. Yeah. We, yeah, we just hired a, a content manager type person and they're, yeah, they're like the Shopify admin. Build the collections and the pages. Right. Make everything looks
[00:43:20]
Kalen: good. Right. That seems like there's gotta be a ton of brands that hire that type of a role. And I, I'd imagine it's the type of thing where you could do some different things.
[00:43:32]
You have some admin work and, and if you have really good taste with fashion and like, you understand the, the brand, like the demographic of the brand type of a thing, I feel like, yeah, there would be things you could get involved with on that side of things, or even just chime in on something. I don't know, like totally, it seems like the perfect thing to where you could get in there and just like grow a career, do some interesting stuff, contribute in different ways, you know?
[00:43:59]
David: Like get into the merchandising side of things. Like the way that we do it is like there's a bunch of work that goes into figuring out how the product is messaged and like which colors we're launching with, and then mm-hmm. At the end of the line it's like, okay, we got all this stuff, now we need to build it on the site.
[00:44:14]
Mm-hmm. But yeah, you can totally imagine like creeping upward into that, like, what's happening before it gets to me. Mm-hmm.
[00:44:32]
But, um, I noticed that Sao is hiring a customer support. Sao is, I don't know if you remember them. They're an email, email app. Chris Geis, he worked in, um, Magento. I knew him from, you must have known him. I forget what company he worked at. I, I, I gotta pull this up, this is gonna bother me. But basically Chris, G-E-I-S-S, he worked at, oh, he worked at Bronto.
[00:44:59]
Okay. He was a product manager at Bronto. Oh. Before that he was IBM. That's crazy. Oh shit. Before that he worked at the NSA years.
[00:45:12]
Kalen: I just noticed that Anyways, I remember seeing him at like an event like, uh, it must have been the fir maybe it was the first gadget pre-party I went to, and he was there and he gave a talk and I saw him and, and just like kind of, we both recognized each other.
[00:45:27]
He just gave me a, a warm smile. I was like, Hey man, and just a real friendly dude. And Segundo is a, is a super native to Shopify email app. It's like Klaviyo, but it's like embedded. It's like super native.
[00:45:40]
Kalen: I saw they were hiring like a customer support, so I like replied and I was like, can customer support?
[00:45:46]
I was like, I'm into it. And they're in like North Carolina and it was like onsite North Carolina and I was like, can customer support reps code stuff all day and not talk to customers because if so, I'm interested.
[00:46:02]
Speaker 3: And he was like, for you? Sure.
[00:46:05]
Kalen: But I think I would literally move to North Carolina for a job like that. Seems like a cool place to live.
[00:46:12]
David: Yeah. You'd be close to the beach. It might be cold most of the time, but
[00:46:18]
David: dude. Like super close to Florida and super close to like New York and stuff if you want to do that.
[00:46:24]
Kalen: Yeah. It seems like it'd be pretty out there. I've, I've never been to North Carolina or South Carolina. I really wanna, I really want to go to both. So that's,
[00:46:33]
Kalen: Yeah. So that's the move man. That's the next move, dude. Move to North Carolina. No, but like, I think if I was my sister-in-law, I would literally just move to North Carolina for a job.
[00:46:41]
Like, versus like, but you know, shit, you know, I mean, she has her, you know, other stuff going on, but like stuff going on. Partner, but husband. Husband. So, but other than that, I would totally do that, man. Freaking be a cool move. Okay, moving on. Moving on. What was I gonna say? I have so many things on the list.
[00:47:05]
What got so many things on the list? So, oh, I didn't send you a screenshot on my list. Ha. Flying blind in the dark, so, okay. Something I've noticed in Claude is that if you previously, if it, even if it tried to read, let's say like a dot e NV file that had secrets in it, like an API secret or key or something.
[00:47:31]
It would like complain loudly. It would be like, Hey man, I'm not allowed to read this file, or it would like ask for a confirmation or triple confirm. I just remember it was super paranoid and definitely a hundred percent for sure. If I accidentally pasted a key into the chat, like for example, a dev API key, that doesn't really matter.
[00:47:52]
Mm-hmm. It would definitely be like, do not, whoa, do not share any secrets with me. It is not, it was like, alert, alert. This is not secure.
[00:48:07]
And like, so the other day I'm like casually pasting a key into the chat. You know, it's like a tech, it was like a dev API key, obviously. Yeah. I would never do it with a production credential, obviously. Clearly pro most, most likely, but I realized it hasn't complained about that weeks. It definitely will routinely read files with secrets in them, not mention anything.
[00:48:36]
And then when I pasted it in, it didn't mention anything 'cause I was telling it to configure something via the CLI. So it just ran the command. It got to work, it saved the secret to GitHub actions. So
[00:48:50]
Kalen: the GitHub, using the GitHub, CLI and everything. And then I, it occurred to me, because they're all super, you know, we got to do everything right, like we have privacy, you know, dah, dah, dah, dah.
[00:49:03]
They must have realized that they have no choice but to figure out how to take responsibility. For never leaking private keys. I'm almost certain of it. And so it kind of makes sense, dude. Like your agent has access to a lot of stuff. It's gonna have to learn how to put guardrails up on certain things.
[00:49:27]
So that's interesting. I'm pretty sure it's, it's, they probably
[00:49:31]
David: were like, we have way too many log entries of people sharing their keys with Claude. We're just gonna turn this setting off.
[00:49:37]
Kalen: That's what I'm saying, like they must have seen the usage in the wild. In mean like, guys, we have to solve for this.
[00:49:44]
Like, you know, this is gonna be dumb asses sharing all sorts of stuff. Just look at how many things are committed to GitHub. And then the thing has access to your file system. And I'm telling you, it reads my files without me asking it to, without me giving explicit permission. It reads my shit, dude.
[00:50:08]
David: So it's already, and we're, we're gonna be there eventually.
[00:50:11]
Like, we're like every, it's gonna know all this stuff. Just gotta be secure. Yeah.
[00:50:15]
Kalen: So just everybody relax. Okay. I don't want to just share all your data. I don't want to get any reader emails, reader phone call complaints that this is an insecure practice. Okay? Particularly any clients who may be listening to the podcast because it's fine.
[00:50:34]
Everybody relax, everything's fine. It's not a big, everything's fine. Also, this was just a comedic bit. Obviously. I didn't actually do any of that. I just thought it would be good content for the podcast. We rehearsed that ahead of time. This is entertainment only. This podcast is for entertainment only.
[00:50:51]
You should not be getting any information whatsoever from this podcast.
[00:50:57]
David: Oh dude, I played find the Shopify PM earlier this week and it worked.
[00:51:04]
Kalen: I a hundred percent thought you were about to tell me about a video game.
[00:51:17]
David: and, uh, they helped me. I was like, uh, I was trying to figure out how to report on demand in the Shopify analytics platform because we're running this like, private sale right now. And the thing that was irking me is when you look at like the daily sales report mm-hmm.
[00:51:33]
It always includes refunds. Mm-hmm. Which are like, that has nothing to do with today's sales. Like, I don't care how many refunds we have from orders from 30 days ago. I wanna know how much revenue we made today. And yeah, she helped me figure it out. It was like, I, I was just being dumb. You can totally, like, in sql, you know how you can like, do math on a couple different columns and then name it something so like
[00:51:58]
David: A minus B as, mm-hmm. C. Uh, you can do that in Shopify, QL, and Nice. So that's what I did and it's awesome. And now everybody is like, oh yeah, let's use this new report that actually does the thing we needed to did. I just
[00:52:14]
Kalen: realized that like the fact that Shopify QL API came out or was announced, or I don't, I can't remember.
[00:52:22]
I should probably be building an app with that dude. Shopify ql.
[00:52:26]
David: Oh, are there like interesting hooks for that?
[00:52:28]
Kalen: Well, I think, uh, I gotta look this up now. I think that they released API access to Shopify ql. I think we talked about it one time. I had this whole rant on like, because they deprecated it, they had access, they deprecated it or something.
[00:52:47]
Then they re-added it. I don't know when they added it, but I had this whole rant on it.
[00:52:52]
David: But I don't know. Do you feel like, I trying to think of like, what, what would, what would be added in there because. It's pretty like it does what it does and you can't Right. Go outside of that.
[00:53:03]
David: Um, and I imagine you're probably not gonna like add syntax into Shopify ql.
[00:53:09]
It would just be more like you're using Shopify ql potentially like limiting it to things that pertain to your app specifically or something like that.
[00:53:19]
Kalen: Yeah. Now that you mention it, probably the only move there is if you have an app that does something other than analytics. It's like now you can pull in analytics data specific type thing.
[00:53:33]
David: it. 'cause like in checkout blocks there's this little widget at the top that shows like. 400 views of this block, and so maybe that's how it's getting that is through Shopify ql. Oh, right,
[00:53:46]
Kalen: right, right, right, right, right, right. Dude, I had this really cool talk with this dude who was interested in the email AI app idea, and we were kind of jamming out on it.
[00:53:57]
He's over in Denmark, but he's, he's done, he's, he's worked brand side a lot and he has like an agency. We were talking about trying to figure out a way to send basically all the data about a customer to a prompt so that you could just like figure out which product would be best to recommend to like mm-hmm.
[00:54:19]
Each individual customer, one, one-to-one. And then just email them that like at the right time based on also like looking at the timing of their other data, order data, whatever. So just like instead of like creating flows and sending emails and blah, blah blah, just literally have the AI go, which email does each individual customer need at which time?
[00:54:46]
And just send it to them automatically. Just, you just turn the thing on and that's it. That's all you have to do. Which I thought was a cool idea, but getting the visit data is a bit of a hassle. Like it would be so cool if you could fet, 'cause you mentioned having the view data on checkout blocks. Mm-hmm.
[00:55:08]
And I don't think it's possible to fetch any analytics data in that sense. Any page view type data, like from Shopify.
[00:55:19]
David: Before you send the email? Like not, not not in, yeah, in like not click data for the email or like view the page from this email? Yeah. Before that. Yeah.
[00:55:29]
Kalen: Yeah. Like historical data. So the best you can do is create a pixel and then capture it going forward and save it yourself in your own database.
[00:55:37]
Right. Which is gonna be, have to be a huge database, but it'd be like, I think they're storing it. They're probably, I don't know if they're storing an aggregate or not, but that'd be so cool if you could just grab it and just do stuff with it.
[00:55:49]
David: Yeah, I agree though. I think it is in aggregate and Shopify would probably never expose which person it was that visited this page five times.
[00:55:58]
David: But you might be like. You could do it based off of the customer's purchase history.
[00:56:04]
Kalen: Yeah. Purchase history is pretty decent. But as we were talking about, it's like you really want the view data too. Yeah. Especially if you're gonna try to create some magical prompt that's gonna be like very high quality.
[00:56:16]
Mm-hmm. You would absolutely want the view data, so you'd be better off just capturing it going forward. Yeah. But it'd be so cool if you could just capture a historical out of the box.
[00:56:25]
David: Yeah. That's how they all do it is, we might have talked about this at some point, but we used ltv, AI to do that exact thing.
[00:56:32]
David: And yeah, it was kind of cool. It had like dynamic pieces in the email and it felt like it was a person who was emailing you instead of like, they're very text heavy, you know? Mm-hmm. So it's not like a really branded thing. It's like a concierge. Mm-hmm. And that worked well,
[00:56:46]
Kalen: dude, that's the other thing that's a freaking great idea, is literally just.
[00:56:51]
Write an email to each person, like a personal email with a product recommendation. And I know everybody's getting AI spam, like everybody's getting AI B2B SaaS pitches and stuff like that, which are super annoying. But if you're a customer and you are already expecting to get emails from the brand you haven't opted out yet.
[00:57:12]
If it could send you, like, have the person have a name? My name's Brenda and I. Yep. And, and hey, I just, I know you really like this, uh, leather bag line and I just saw this and I just wanna let you know, I think it would go really well with your blank, you know, your pants. Yep. Whatever that you bought or it'll match.
[00:57:35]
And just an actual like individual, like it legitimately feels like it came from a person that feels like it'd be super powerful.
[00:57:44]
David: Yeah. Those are some of our best performing emails. And we, uh. We still do something like it. The AI's not in the loop, but the emails that are like a person sending you something, like a recommendation.
[00:57:57]
David: The problem is though, if you're acting like it's a one-on-one thing, then you're also gonna make need to make sure that you respond to every reply. Oh. Like as a concierge, continuing the conversation, you know?
[00:58:10]
Kalen: Yeah. But that's the thing. If you get those replies, that's gotta be money in the bank. I mean, totally.
[00:58:16]
That's gotta be purchase intent. I mean, a percentage of it is just gonna churn and they're, you're gonna have a little bit more customer support burden, but I feel like that customer support burden is gonna pay for itself like a high value hundred times over. Yeah. Mm-hmm.
[00:58:30]
David: Especially if you have a specific model that's like, okay, this email that I'm getting came from a reply.
[00:58:36]
Make sure I read what the reply is in response to, and then like continue the conversation versus starting from scratch and being like, hello. Thank you for reaching out, blah, blah, blah, blah, blah. You know? Yeah,
[00:58:47]
Kalen: totally, totally. That feels like it'd be cool. Wait, so this LTV thing, it basically calculates like the ideal product for a given customer, and then you insert it as like a dynamic variable into an email template.
[00:59:06]
Kalen: like the content of the email was also generated individually?
[00:59:10]
David: Yeah. Like, or just the product? It varies a little bit differently because like you could inject product links, but then the rest of the canned text would be kind of weird, right? It would be like, like based on what the product is that you're linking to that, you're probably gonna put some surrounding text around it.
[00:59:25]
A bit different than if it was some other thing. Like if you, if you're suggesting a key chain for your tote versus like a pouch for your tote and you, you talk about them a little bit differently.
[00:59:35]
Kalen: Right, right, right. Totally. Okay. So the whole email content images, product shots, and the actual text content is all actually one-to-one.
[00:59:43]
David: The way that they do it is no images. It's more links because it needs to feel like it's someone who's,
[00:59:49]
Kalen: oh, reaching out like someone wrote it. Oh, so it's literally the exact thing I was talking about. Yeah. And it works really well.
[00:59:58]
Speaker 3: Yeah. I guess Kaylin's getting back into the email game, that's what it sounded like to me.
[01:00:06]
Kalen: I honestly have not had any interest whatsoever in email. And also it just feels like it's gotten so sophisticated that I'm like, there's nothing I could do anyways. But I've, I've been starting to feel it, dude. I've been starting to feel itch and also I've been like, dude, I don't wanna deal with like, having to deal with that scale and all those privacy issues, whatever.
[01:00:28]
But yeah, there's really good tools now. Deliverability, well, yeah, deliverability and also like having really good queuing systems for sending like large emails. Mm-hmm. Like. But I think that you just use Amazon SES. I think that all that stuff is just, maybe
[01:00:57]
Kalen: for sure. Yeah, a little bit. Uh, well, I know the 10 years ago version of the problem space, but. That would be kind of cool. I mean, and that LTV thing's probably not cheap, right?
[01:01:09]
David: No, I don't think it was cheap. We stopped working with them a while ago, but we, we kind of like, pretend like we still have it. What is that? What is that? It's not as AI heavy anymore, but it, we still do the, like, feels like it's a, someone wrote you a note. Oh, and what's the delta between those?
[01:01:53]
Kalen: Yeah, yeah. Yeah. That totally makes sense. The text heavy ones in general would work, so would you Yeah, I haven't looked at
[01:01:59]
David: old versus new on the, on the text ones.
[01:02:02]
Kalen: Yeah. So if you could press a button and just enable those one-to-ones, would you wanna do
[01:02:07]
David: it? I can't remember why we stopped using LTV.
[01:02:11]
I'll have to ask. There was probably some like professional services thing or something that, that wasn't working. Huh? Okay.
[01:02:19]
Kalen: Yeah, I'd be curious. 'cause that also, the nice thing about that is it, it feels like it's something you can plug in on top of whatever you're already doing. I mean,
[01:02:28]
David: yeah, especially if you can also gather like, like how does this brand communicate?
[01:02:33]
You know, and like feed that into the dude, the context for each
[01:02:36]
Kalen: dude. I was GP ting that up today and it was so cool. Like, like at first IG ptd the content, right? The product descriptions for this other client. Mm-hmm. And. They like were longer and they had bullet points. So I was like, okay, that's an improvement.
[01:02:53]
You know, and I just had to wire up all the app interface stuff and the prompting stuff. Mm-hmm. Then today I was like, okay, let me think more about the actual quality of the content versus just it has bullet points versus it doesn't, and I was sending it GPT and IT and GPT was finding some good things.
[01:03:10]
It was like, well it's using this repetitively, it's using, 'cause I put some keywords in for branding, like work these keywords in, but work them in naturally. And it was like, well it's a little too repetitive. So like kept refining, refining the prompt and then it just got better and better like. I think that type of stuff, like brand voice type stuff is like, it's so good at it, dude.
[01:03:34]
It was identifying stuff about, it came up with 10 different variables. It was like brand voice level of complexity of sentences, like 10th grade level reading level, basically. Like it had warmth level. It came up with warmth level because like you could have a tone that's like formal, but I did a few iterations and it was like, well, this brand actually has a, a formal tone, but a warm formal tone versus like a neutral formal, a cold, formal tone would be like legal or accounting that's cold, formal, warm, formal is like different.
[01:04:12]
And I'm like, like I literally was learning stuff, dude. Like I was reading it and I, and I'm like trying to figure out if it's. Being smart or if it's gonna do some dumb stuff, that'll be obvious for me to recognize and I'm reading the way, it's breaking down the components of like style and I'm just learning shit.
[01:04:29]
I'm like, oh yeah, no, that totally makes sense.
[01:04:32]
David: That's so cool. Just like, like you're working on something but you're learning something completely different about like just from interacting with the ai. I
[01:04:41]
Kalen: love that so much. Like when you learn stuff,
[01:04:44]
David: you know what's cool about this? Yeah. This idea with the product descriptions is the tokens are cheap.
[01:04:51]
What if for every product you generated like 10 different descriptions and the GPT was like, here's how these descriptions differ. This one is a little more this. This one's a little more that. Like this one's FOMO oriented. This one is like more explaining the features and then your app also AB tests, those.
[01:05:12]
And tells the, uh, the customer or the, the merchant, like this one's perform outperforming all the other ones and like it's cheap. Oh, that's a, just do a ton of them and try out 20, try out whatever. Yeah. Um, and then you can publish the one that won or something like that. Yeah.
[01:05:29]
Kalen: That's the type of thing where like, 'cause you know how you're always talking about how you're trying to find things to AB test and it's like hard 'cause it's like, mm-hmm Okay, we've already tested this, you know, it's gonna take all this manual work to like instrument a test and all this content has to be generated, blah, blah blah.
[01:05:45]
But it's like, this is the type of thing that LLMs enable is that you can be like, okay, try 10 different of these tones. Or like, go pick 10 different like copywriting. Like there's another thing it showed me, there's certain formats to product descriptions. So some start with like. The brand story and then like how to information or like, I forget the words that it used, but there's structure, a product copy, like your guys' site has materials, story was one of the elements of the product descriptions, or it was one of the elements of the brand or something like that.
[01:06:26]
But it's 'cause like you guys like talking about like the origin of your materials and stuff like that, right? Mm-hmm. Like, like basically the manufacturing stack that it's like ethical throughout the, um, ethical sourcing that you guys talk about, that kind of stuff, right?
[01:06:40]
David: Yeah. And we, we even have a page dedicated to like, here's a picture of our vendors that we've to work with for a long time, right?
[01:06:47]
Kalen: Right, right, right, right, right, right, right. Yeah. So there's like certain structures, certain, like there it's like five different structures of like, you know, and then you have the call to action at the bottom or whatever. So there's just like all these specific things. It's crazy. So you could just test like 30 different things like that, that are all content related, that there's no way in the world anybody would've ever tested that before ai.
[01:07:10]
David: Yeah. I, I feel like there's a lot of like open up the accessibility to testing things. 'cause we should be able to, like, we should test more and any merchants that aren't testing, like you should, you should test things. But the barrier to entry is like, okay, how am I gonna come up with, like, how do I instrument the test?
[01:07:29]
What should I test? So yeah, just like install my kalin descriptions app and we will, we'll optimize your descriptions automatically.
[01:07:40]
Kalen: cool because you could do the AB test, I think within your own app too. Yeah. So then, right, because you could just capture the visit data and then just literally have them click a button, go through, do three different tones, style, whatever versions AB test them and show 'em a result.
[01:08:02]
David: Mm-hmm. Yeah. You'd have to have like some sort of script that you drop in that does like the identification of the customer, puts them into a group, makes sure that the groups are all the same size over time. So like there's some complexity there. But that's also why like a lot of merchants don't test, 'cause all that stuff is kind of hard.
[01:08:23]
David: And the AV testing apps that are out there are kind of expensive.
[01:08:25]
Kalen: Yeah, dude. But then the thought that I had is that you might have conflicts with other AB testing apps. Like if they have another app that's testing something, then you wouldn't want to like test it on top of that. Um, sure. But they, I, I mean they could just whatever, but it reminded me, I had this one client where like I pushed something live and doing front end work.
[01:08:47]
I've been doing front end work for them for like six months or something like that. Then I pushed something live one day and then they're like, oh, this broke this AB testing tool that we have. And I was like, oh, I didn't even know about it. I was like, oh, sorry about that. We like fixed it. And then they were like, we're like, Hey, can we set up a call to talk with like the vendor guy from the AB testing company?
[01:09:07]
'cause they actually designed the tests too. They like create the test and run them for you. I was like, oh, hey, can we set up a call? I was like, oh, yeah, yeah, sounds good. So we had a call and then he's like, he wanted me to send every single pull request that I would do to him for approval before, before like deploying anything at all to the site, like forever going forward.
[01:09:31]
David: a, first of all, the merchant should be involved to some degree about what's a, it sounds like. Yeah. Uh, I just, I just went into like a shenanigans. I gotta, I gotta fix something here. Wait, this isn't, this isn't me. Um, that's
[01:09:48]
Kalen: shenanigans. Dig that just don shenanigans dude.
[01:09:53]
David: But I was like, dude, why would they ask you to update something that's currently being tested?
[01:09:59]
Kalen: Well, but that's the thing. I mean, that part I understand because there's one hand's not talking to the other hand. Yeah, exactly. That's, you know what I mean? That's where like therein lies the rub. I'm like, dude, I'm not gonna for a SaaS vendor to tell me to review all my shit through them, and like he doesn't know my code.
[01:10:19]
Like even if he's, even if he's a decent, like even if he's a, even if he's a decent developer, this dude's just gonna read all my
[01:10:31]
David: flip it by and be like, tell me everything that you're testing right now and I'll make sure not to mess it up.
[01:10:36]
Kalen: Exactly. Yeah, no, what I said, what I said is like, let me see where your tests are, something like that.
[01:10:44]
And then I'll do the checking, like, don't, don't worry about all that. And then their app, I go, oh, I try to go into their app and test something out, and I go, can I, let's say there's two AB tests. Can I click into the A or the B to preview what that test looks like? Which I would imagine is a fairly common thing.
[01:11:06]
Very typical. Very typical, right? Yeah. Yeah. And they didn't even have the ability to do that. They're like, oh, you could, they're like, I, I'm not sure how to do that. And, and, and then they came back three days later and they're like, you can go into your cookie settings and enter this like
[01:11:23]
Find our cookie some bullshit, find our cookie and figure out some fucking formula. I'm like, dude, what are you, what are you on right now, dude? Give me a fucking preview button.
[01:11:37]
David: Yeah, come on. Usually the way that that works with our ab B testing is like you just get a special peram to put on the end of the URL and that forces you into.
[01:11:45]
Kalen: Yeah, that's what I actually tested is I just grabbed the ID from the, from the AB test thing for the id and I tried, you know, pumping it in, but
[01:11:55]
Yeah, it's funny, once you get comfortable with like your job or whatever, like everybody just loves trashing SaaS vendors. Like once you feel comfortable enough that you don't have to pretend to be nice.
[01:12:09]
Yeah, people love trashing SaaS vendors and it used to kill me 'cause that was my first thing. I was a, I worked as a SaaS vendor and I remember it feeling so hard to get any respect at all. I was like, damn. I was like, I thought SaaS was cool like 10 years ago when I built my own little sas. Like SAS was cool and now it's, people just enjoy trashing you.
[01:12:34]
It's like, but now I get in on, I get on the action now.
[01:12:41]
David: Now you're on on the, on the good side.
[01:12:44]
Kalen: Yeah. Because like I'm doing freelance work. Like I don't need, like I don't need to sell an app to anybody. I don't need to promote some app because of some bullshit partner agreement I have. So like, yeah,
[01:12:58]
12 year contract that you're in, like delivering value? Exactly. Like once you're delivering value daily, that's kind of where it's like, okay, I'm okay here at the moment. Yeah, it's you that has the problem.
[01:13:09]
Kalen: Yeah. I will say with the minis, I started out super optimistic and I was like trying to like get in touch with the team and stuff like that.
[01:13:19]
And I was saying like it has the best developer experience ever and stuff like that. And then lately I've been like so frustrated and I've been like wanting to say all kinds of negative stuff, but then I haven't really said it because I'm like, okay, I have to be nice, you know? But that's Shopify native, you know?
[01:13:37]
That's it. It's not a, it's not an app. Can't really, can't really bite the hand that feeds. Alright broski. Good stuff man. Do me a favor and have yourself a good frigging Halloween dude 'cause
[01:13:49]
David: Oh yeah. I'm gonna eat so much candy tonight.
[01:13:52]
Kalen: I'm gonna be having a good old time buddy.