Meeting Title: Brainforge Dev Environments Setup Discussion Date: 2026-01-16 Meeting participants: Casie Aviles, Samuel Roberts


WEBVTT

1 00:01:07.370 00:01:08.310 Casie Aviles: Hey, Sam.

2 00:01:11.990 00:01:12.680 Samuel Roberts: Hey.

3 00:01:13.270 00:01:15.800 Samuel Roberts: Sorry for the delay there, I didn’t see your message for a minute.

4 00:01:15.800 00:01:19.050 Casie Aviles: Oh, yeah, no problem. I was in a stand-up earlier, so…

5 00:01:20.040 00:01:25.620 Samuel Roberts: I figured, yeah. I just wanted to talk through, because I’ve been kind of debating some of this stuff for the dev environments.

6 00:01:25.880 00:01:26.470 Casie Aviles: Sure.

7 00:01:27.290 00:01:30.300 Samuel Roberts: And I kind of needed another brain to bounce some stuff off of, because I’ve been…

8 00:01:30.920 00:01:35.989 Samuel Roberts: And I kind of wanted to make sure I understood the requirements, because I… I think…

9 00:01:36.170 00:01:41.139 Samuel Roberts: Well, let me explain my issue first, and then we can get to yours, because I think the issue that I was thinking about

10 00:01:41.310 00:01:48.619 Samuel Roberts: was, right now, we have production, or we will have production. That’ll be easy. Everything will be there, it’ll be production, it’ll be on its own.

11 00:01:49.120 00:01:51.830 Samuel Roberts: Staging will basically mirror production.

12 00:01:52.110 00:01:56.489 Samuel Roberts: But we’ll be able to push new changes to that. That’ll also have all its own services.

13 00:01:57.010 00:02:02.820 Samuel Roberts: Okay. So, what we have right now is also the SAM test, which I’ll just make a dev environment.

14 00:02:03.900 00:02:06.439 Samuel Roberts: There’s a couple issues with the dev environment.

15 00:02:07.730 00:02:13.329 Samuel Roberts: one of them, I think I mentioned, the OAuth, we’ll just have to make it a standard URL so that you can actually get into it.

16 00:02:15.180 00:02:21.010 Samuel Roberts: But if we’re gonna just be spinning these up every time, because you can spin up the PR environments just like on Heroku.

17 00:02:22.730 00:02:24.890 Samuel Roberts: It also spins up a new database.

18 00:02:25.470 00:02:26.169 Samuel Roberts: and new MC

19 00:02:27.660 00:02:36.579 Samuel Roberts: which we don’t really need one, and the new database is then empty, which means the MCP servers don’t work, and all the keys that we’re gonna need are not going to be there.

20 00:02:37.690 00:02:39.130 Casie Aviles: I see, I see.

21 00:02:39.130 00:02:43.950 Samuel Roberts: So, I’m trying to figure out… Do we want to just… like…

22 00:02:45.210 00:02:55.369 Samuel Roberts: replicate staging in and point to that? Do we want to just keep a dev database going, and every once in a while we have to re-sync it to staging if we have to wipe it for some bad migration or something?

23 00:02:55.590 00:03:01.440 Samuel Roberts: Or, do we want to just figure out a good way to seed the database with good test data?

24 00:03:02.410 00:03:04.529 Samuel Roberts: And then we can do PR environments.

25 00:03:06.870 00:03:08.070 Casie Aviles: The problem?

26 00:03:08.090 00:03:13.490 Samuel Roberts: with the seating is that there’s a bunch of, API keys and stuff, and so we still have to, like.

27 00:03:15.040 00:03:17.169 Samuel Roberts: There’ll be a lot more work to do there, right?

28 00:03:17.510 00:03:22.100 Samuel Roberts: I think so, and then we also have to keep those protected, so they have to be in environment variables anyway.

29 00:03:22.470 00:03:24.299 Samuel Roberts: It’s a… it’s a mess. So I’m thinking…

30 00:03:24.300 00:03:25.469 Casie Aviles: I see, yeah.

31 00:03:25.470 00:03:30.510 Samuel Roberts: We might want to just duplicate Staging when we need to.

32 00:03:30.710 00:03:32.520 Samuel Roberts: And I gotta figure that out.

33 00:03:33.600 00:03:37.010 Casie Aviles: Yeah, that’s kind of what I’m leaning towards, just…

34 00:03:37.010 00:03:37.760 Samuel Roberts: Yeah.

35 00:03:37.760 00:03:42.309 Casie Aviles: make a copy of staging if everything we need is already there, right? So…

36 00:03:42.310 00:03:52.659 Samuel Roberts: I think that’s the best way to do it for now. It might make the PR environments a little weird, or what we do is we have the staging database copied into a dev database.

37 00:03:52.770 00:04:00.159 Samuel Roberts: And then for PRs, we just point to that dev database and only spin up the front end and back-end as needed, and not the database.

38 00:04:01.290 00:04:08.250 Samuel Roberts: Same thing then applies to the bucket, though, which is why I wanted to chat with you, because I wanted to see how… I’m not sure how the bucket plays in.

39 00:04:09.560 00:04:10.340 Casie Aviles: Yeah.

40 00:04:10.530 00:04:12.559 Samuel Roberts: There will be a production bucket, right?

41 00:04:13.450 00:04:15.989 Samuel Roberts: There will probably be also the staging bucket.

42 00:04:17.100 00:04:23.960 Samuel Roberts: And then we need a dev bucket, I guess, that can also just… it’s not as important to keep it in sync, because it’ll just be files, but…

43 00:04:23.960 00:04:24.620 Casie Aviles: Yeah.

44 00:04:25.540 00:04:30.450 Samuel Roberts: I would say for that, we’re fine to just spin it up when we need to.

45 00:04:31.740 00:04:33.709 Casie Aviles: Okay, okay. So…

46 00:04:33.710 00:04:40.339 Samuel Roberts: the keys in the database are the real issue. We need to make sure to keep those somewhere we can access them, otherwise nothing works for testing.

47 00:04:42.280 00:04:48.029 Casie Aviles: I see, yeah. I’m not, like, I’m not too… super familiar with railway yet.

48 00:04:48.290 00:04:55.599 Samuel Roberts: Yeah, no, no, you’re fine, you’re fine. I just, I need to, like I said, I just wanted to talk it through to make sure I understood. So I think what we can do then is,

49 00:04:55.990 00:05:02.399 Samuel Roberts: for now, use the SAM test environment.

50 00:05:04.080 00:05:05.170 Casie Aviles: Yeah, that will become.

51 00:05:05.750 00:05:06.860 Samuel Roberts: I’m sorry, go ahead.

52 00:05:06.860 00:05:09.060 Casie Aviles: Yeah, I can share my screen so I can also.

53 00:05:09.060 00:05:09.470 Samuel Roberts: Yeah, yeah.

54 00:05:09.470 00:05:11.030 Casie Aviles: like a visual…

55 00:05:11.360 00:05:18.529 Samuel Roberts: Perfect, yeah. Because I think the SAM test is already set up so that the URL it generates is valid for OAuth.

56 00:05:19.500 00:05:20.230 Casie Aviles: Okay.

57 00:05:20.510 00:05:25.820 Samuel Roberts: So what I would say is, we’ll add a bucket to this environment.

58 00:05:26.800 00:05:31.589 Casie Aviles: And then… yeah, I haven’t done this yet. I did it just to see what it did, but it just creates a bucket.

59 00:05:31.590 00:05:43.110 Samuel Roberts: And then, I think what we’re gonna wanna do is point… To a different, a different… Branch, basically.

60 00:05:44.770 00:05:48.460 Casie Aviles: Okay, let’s… let me go to… to stitch…

61 00:05:53.250 00:05:57.439 Casie Aviles: It’s… which branch are we currently… Looking at.

62 00:05:57.440 00:06:02.149 Samuel Roberts: Well, this is… this is the other thing, this is probably why I’ve been thinking about this, so I want to clean it up so that we have production.

63 00:06:02.260 00:06:07.940 Samuel Roberts: staging, And then, I guess, a dev we can bounce in and out of?

64 00:06:09.350 00:06:11.090 Casie Aviles: And just push things to.

65 00:06:11.240 00:06:15.580 Samuel Roberts: So, right now, I think it is… What is here?

66 00:06:15.910 00:06:21.730 Samuel Roberts: staging sand… Develop, I think, is the one that is on… .

67 00:06:22.610 00:06:23.220 Casie Aviles: Okay.

68 00:06:23.510 00:06:31.959 Samuel Roberts: So, I think what you probably want to do is sync that up to… like, staging, I guess?

69 00:06:32.890 00:06:42.209 Samuel Roberts: And then push your stuff to develop, and then that should deploy to that Heroku. Or no, sorry, that Railway SAM test, which I will rename Dev, probably, at some point, but…

70 00:06:42.770 00:06:46.259 Casie Aviles: Okay, because I have, like, a separate branch here.

71 00:06:46.260 00:06:52.799 Samuel Roberts: Yeah, this is the problem. I like the separate branches, but deploying that’s gonna be a pain right now because of the database stuff.

72 00:06:53.700 00:06:57.520 Casie Aviles: Yeah, yeah, I wasn’t too sure how that worked as well.

73 00:06:57.520 00:07:06.959 Samuel Roberts: Like, it… so basically what’s going on right now, I don’t know how much of the code you’ve dug into at all besides this, but basically, we have these MCP servers. Did I show you this already? I don’t remember.

74 00:07:07.930 00:07:09.060 Casie Aviles: There’s the MCP.

75 00:07:09.060 00:07:13.430 Samuel Roberts: servers and the connections, and that’s where we store the credentials, right?

76 00:07:14.780 00:07:15.570 Samuel Roberts: That’s right, we can talk.

77 00:07:15.570 00:07:17.280 Casie Aviles: He mentioned something, yeah.

78 00:07:17.280 00:07:21.500 Samuel Roberts: Yeah, so the issue is that, like, without anything in the database.

79 00:07:22.130 00:07:24.439 Samuel Roberts: The tool won’t work at all, you know?

80 00:07:24.660 00:07:28.699 Casie Aviles: Yeah, right now I’m just running… front end, so…

81 00:07:28.700 00:07:29.530 Samuel Roberts: Okay.

82 00:07:29.870 00:07:35.469 Casie Aviles: I would just… I mean, for local, I would just go to… I would just do this.

83 00:07:36.050 00:07:41.360 Samuel Roberts: That’s perfect, yeah. But, like, where is it getting the keys for using, like… are you… have you hit the Shopify stuff yet?

84 00:07:42.480 00:07:47.539 Casie Aviles: No, that’s why it’s actually getting from, like, yeah.

85 00:07:47.540 00:07:53.620 Samuel Roberts: Okay, that’s fine for now, yeah. That’s where we gotta add… so that’s why we need to get it up on the… what I would say…

86 00:07:57.530 00:08:05.119 Samuel Roberts: I would say… Is your branch… how in sync is… your branch is not in sync with anything, right?

87 00:08:05.610 00:08:09.330 Samuel Roberts: Oh, where are you? You are…

88 00:08:10.040 00:08:15.850 Samuel Roberts: 5 behind Main, but that doesn’t help us. That’s not what we want. Can you do a,

89 00:08:16.050 00:08:19.690 Samuel Roberts: I don’t really want to do a PR, because I like it on its own branch, though, you know?

90 00:08:21.910 00:08:27.370 Casie Aviles: I think what I did was I rebased it to… staging.

91 00:08:27.780 00:08:29.369 Samuel Roberts: Oh, really? Okay, that’s good.

92 00:08:30.260 00:08:31.609 Samuel Roberts: Yeah. Okay. But…

93 00:08:31.750 00:08:38.030 Casie Aviles: I think I have… do I… I think I have to do that again, right? Because this was, like, 2 days ago, I think, when I did.

94 00:08:38.030 00:08:40.270 Samuel Roberts: Let me, let me check, hold on.

95 00:08:40.480 00:08:42.250 Samuel Roberts: Yeah, let me share my screen real quick.

96 00:08:42.400 00:08:43.020 Casie Aviles: Oh, wait.

97 00:08:43.740 00:08:51.510 Samuel Roberts: Cause I think… What I like to do is use…

98 00:08:52.290 00:08:57.029 Samuel Roberts: this little interface and cursor. I don’t know if you use GitGraph at all?

99 00:08:57.340 00:09:00.039 Casie Aviles: Oh, yeah, I haven’t tried this one at all.

100 00:09:00.040 00:09:10.250 Samuel Roberts: Yeah, so I tend to use the version control stuff over here. It’s a little confusing right now, because I have multiple open, but the Stitch platform, I’m looking at it here, so I can… if I just refresh this…

101 00:09:10.370 00:09:12.960 Samuel Roberts: I’ll see staging is here.

102 00:09:14.090 00:09:16.379 Samuel Roberts: And then you’re down here.

103 00:09:17.430 00:09:27.600 Samuel Roberts: And so I think, yeah, it looks like you came off develop here. I don’t know what the rebasing might have done, because I don’t think that shows up here as well, but… yeah, basically, I would take staging

104 00:09:28.590 00:09:33.649 Samuel Roberts: Yeah, rebase on top of staging again. Or merge, whatever you feel comfortable with, so…

105 00:09:34.190 00:09:39.209 Casie Aviles: So if I merge it, then it’s going to overwrite what’s in staging, right?

106 00:09:39.620 00:09:42.149 Samuel Roberts: I would say no, merge staging into yours.

107 00:09:42.350 00:09:43.570 Casie Aviles: Oh, okay, okay, yeah.

108 00:09:43.570 00:09:45.140 Samuel Roberts: So get yours up to sync.

109 00:09:45.270 00:09:46.490 Samuel Roberts: And then…

110 00:09:48.330 00:09:49.160 Casie Aviles: Yes, let’s dep…

111 00:09:49.490 00:09:52.080 Samuel Roberts: Deploy it, and point it to the…

112 00:09:52.680 00:09:56.069 Samuel Roberts: That’s what we’ll do. Okay. No, because you can’t log in then, still, damn it.

113 00:10:01.960 00:10:03.060 Casie Aviles: We ought to make…

114 00:10:03.060 00:10:04.299 Samuel Roberts: Get a little bit of air. Go ahead.

115 00:10:04.310 00:10:09.510 Casie Aviles: We’re only able to log in, right, with the staging app, the one that Fitness.

116 00:10:09.510 00:10:16.280 Samuel Roberts: Staging and dev. I added that URL when we were testing it out, but I just don’t want to have to keep adding URLs every time we do a PR, you know?

117 00:10:16.280 00:10:17.990 Casie Aviles: I see, yeah.

118 00:10:18.590 00:10:23.950 Samuel Roberts: So, maybe I need to add a thing in Google, but… I would say…

119 00:10:27.800 00:10:31.500 Samuel Roberts: Oh, hold on. Let me try some in real quick. You’re seeing cursor still, right?

120 00:10:32.010 00:10:33.240 Casie Aviles: Yes, yeah.

121 00:10:33.240 00:10:37.800 Samuel Roberts: Okay, let me, let me stop and share railway real quick, so we can talk it through.

122 00:10:38.950 00:10:49.859 Samuel Roberts: Okay, so here’s… oops, this one. Okay, so here’s Railway, and so in SAM test, front end is here, what is this little warning?

123 00:10:52.140 00:10:57.210 Samuel Roberts: I don’t know what the warning is. Deployment… oh, it’s an old one. Okay, that’s fine. How do I clear that?

124 00:10:59.250 00:11:07.180 Samuel Roberts: Whatever. Okay, so what I’m thinking is… Maybe we just… go… here…

125 00:11:09.270 00:11:12.590 Samuel Roberts: And change the branch that we’re pointing to for this one, for right now.

126 00:11:13.710 00:11:14.929 Casie Aviles: Hmm, okay.

127 00:11:15.690 00:11:21.500 Samuel Roberts: So… if we point this to yours after you merged to staging, I think…

128 00:11:21.840 00:11:23.590 Samuel Roberts: Because you’re only doing stuff with the front end.

129 00:11:23.830 00:11:26.100 Casie Aviles: Yeah, it’s all in the front end for now.

130 00:11:26.640 00:11:29.920 Samuel Roberts: Okay. Yeah, then we can just point the front end to this, and we’ll just test there.

131 00:11:32.170 00:11:32.790 Casie Aviles: Okay.

132 00:11:33.190 00:11:35.419 Samuel Roberts: So I would say, yeah, get up to speed with…

133 00:11:38.630 00:11:39.970 Samuel Roberts: Beijing.

134 00:11:42.700 00:11:47.279 Samuel Roberts: And then we’ll flip this switch, rebuild the front end, and you should be able to use…

135 00:11:47.770 00:11:51.169 Samuel Roberts: Frontend.sam… or frontend dasham test for now.

136 00:11:52.020 00:11:52.710 Casie Aviles: Okay.

137 00:11:53.010 00:11:54.419 Casie Aviles: Yeah, that makes sense.

138 00:11:54.660 00:11:58.459 Samuel Roberts: Okay, I think this will work for now, but I don’t think this is a good long-term solution.

139 00:12:00.390 00:12:01.910 Samuel Roberts: Hmm, yeah, I mean…

140 00:12:01.910 00:12:08.329 Casie Aviles: Go ahead. Yeah, I just wanted to actually tie it into whatever work is already there, because…

141 00:12:08.330 00:12:16.640 Samuel Roberts: Yeah, I think this is the best way to do that, to just get it tested, get the API keys working in Shopify, and then we can merge into staging and test it there, too.

142 00:12:17.390 00:12:17.810 Casie Aviles: Okay.

143 00:12:17.810 00:12:20.319 Samuel Roberts: But I definitely want to get it up so that we can all see it.

144 00:12:20.430 00:12:23.190 Samuel Roberts: use it before pushing it to staging, you know what I mean?

145 00:12:23.390 00:12:26.759 Samuel Roberts: I want… I like the progression from, like, staging to production.

146 00:12:27.020 00:12:30.719 Samuel Roberts: But I don’t just want to put stuff in staging until, like, anyone else has seen it, you know what I mean?

147 00:12:30.720 00:12:32.339 Casie Aviles: Yeah, that’s true, that’s true.

148 00:12:32.340 00:12:36.880 Samuel Roberts: So that’s why I like the PR, but, like, it spun up this PR environment the other day.

149 00:12:37.880 00:12:41.009 Samuel Roberts: And it was just… like, this database is just…

150 00:12:42.930 00:12:43.630 Casie Aviles: Yeah…

151 00:12:43.630 00:12:51.980 Samuel Roberts: It’s got… I duplicated it, so it’s pointing to the right ones, but the actual, connections are empty.

152 00:12:53.330 00:12:56.980 Samuel Roberts: So, like, that’s not helpful for us testing, so…

153 00:12:57.100 00:13:04.870 Samuel Roberts: Maybe we do need to just put in a seed thing at some point, so that the PRs at least have, like, the Newton Golf or whatever they’re using for testing.

154 00:13:05.380 00:13:06.600 Casie Aviles: Yeah, okay.

155 00:13:06.750 00:13:11.429 Samuel Roberts: Maybe I’ll set that up. But for now, I wanted to just get this in a good spot.

156 00:13:11.930 00:13:19.110 Samuel Roberts: for us to get this out. So I would say that’s the plan here. Sync to staging.

157 00:13:20.010 00:13:22.319 Samuel Roberts: And then flip the…

158 00:13:22.760 00:13:31.490 Samuel Roberts: SAM test, which I guess I can rename now. Let me just rename it while we’re doing it right here, because there’s no reason to keep that. We’ll just call this Dev, or yeah, we’ll call it dev for now.

159 00:13:32.340 00:13:37.550 Samuel Roberts: And then, if I go back to here, I’ll close this… so yeah, it’s now dev, this is what we’ll keep.

160 00:13:37.710 00:13:49.210 Samuel Roberts: And then dev has the… oops, the front-end URL here should stay the same for now. Eventually, we’ll clean that up and add the right thing to Google, where it’ll be, like, dev.alilo or something. But…

161 00:13:50.670 00:13:55.830 Samuel Roberts: That seems like the best way to do it. If you run into issues, Let me know.

162 00:13:56.060 00:13:58.209 Samuel Roberts: You can hop back on. Oh, yep!

163 00:13:58.210 00:13:59.779 Casie Aviles: I got cut off. Sorry.

164 00:13:59.780 00:14:02.699 Samuel Roberts: Oh, no! Okay, I don’t know when you… when the last thing you heard was.

165 00:14:04.210 00:14:06.240 Casie Aviles: I think the last one was…

166 00:14:06.520 00:14:09.419 Casie Aviles: For, like, when we were renaming it to the…

167 00:14:09.790 00:14:14.029 Samuel Roberts: Okay, yeah, so it’s renamed to dev, all I said was the URL’s still good, it didn’t change that.

168 00:14:14.190 00:14:14.730 Casie Aviles: Okay.

169 00:14:14.730 00:14:16.990 Samuel Roberts: So I would say…

170 00:14:17.370 00:14:21.650 Samuel Roberts: Sync your branch to staging, like merge or rebase or whatever you want to do.

171 00:14:21.680 00:14:22.690 Casie Aviles: Okay.

172 00:14:22.950 00:14:32.859 Samuel Roberts: So that everything should be basically the same as it is here, maybe a little different. I don’t know where develop is in this, actually, now that I say that. It’s probably way back, isn’t it?

173 00:14:33.990 00:14:34.920 Samuel Roberts: Yeah.

174 00:14:37.510 00:14:39.800 Samuel Roberts: But let’s not worry about that. Just think the staging.

175 00:14:40.630 00:14:42.540 Casie Aviles: And then push… Which it…

176 00:14:42.540 00:14:52.009 Samuel Roberts: Or then flip… switch it here, and then… and then let me know, and we can all test and click around and get the bucket working and everything, and then get the keys working from Shopify, and then…

177 00:14:52.830 00:14:57.399 Samuel Roberts: We can push it into staging, and then we can kind of just iterate from there, probably, if we need.

178 00:14:58.200 00:15:01.889 Casie Aviles: Okay, so, yeah, that part is clear.

179 00:15:01.890 00:15:02.280 Samuel Roberts: Okay.

180 00:15:02.280 00:15:07.459 Casie Aviles: I think I have just some questions for what I have right now before I do that.

181 00:15:08.190 00:15:09.090 Samuel Roberts: Sure, yeah.

182 00:15:10.360 00:15:12.490 Casie Aviles: Let me go and reshare.

183 00:15:12.870 00:15:13.490 Samuel Roberts: Yeah.

184 00:15:13.490 00:15:19.460 Casie Aviles: So, yeah, like I mentioned, like, I was just running npm run dev on just the front end.

185 00:15:19.600 00:15:20.290 Casie Aviles: So I’m not…

186 00:15:20.290 00:15:20.690 Samuel Roberts: Yes.

187 00:15:20.690 00:15:25.319 Casie Aviles: So, how it looks, like, to me right now is, it’s this, but there’s no, like…

188 00:15:25.790 00:15:26.470 Samuel Roberts: Yeah.

189 00:15:26.470 00:15:30.060 Casie Aviles: And… and I don’t see, like, the other…

190 00:15:30.450 00:15:34.250 Casie Aviles: Things here in the sidebar as well, and…

191 00:15:34.490 00:15:36.680 Samuel Roberts: I think this was what you were…

192 00:15:36.680 00:15:39.419 Casie Aviles: Yeah, okay, yeah.

193 00:15:39.420 00:15:47.989 Samuel Roberts: Okay, yeah, so I would say, there’s a couple, like, do you want to run it locally and get that all working, or do you want to just push it up and see?

194 00:15:49.230 00:16:00.680 Casie Aviles: I guess, yeah, that’s also kind of my question. What’s the best way, like, for me to digest? Should I just do it locally first, make sure it’s running locally, and then…

195 00:16:01.030 00:16:02.149 Samuel Roberts: Yeah.

196 00:16:02.400 00:16:03.860 Casie Aviles: So…

197 00:16:03.990 00:16:12.260 Samuel Roberts: You know, we’re encountering another problem I was already debating, like, internally a little bit, and I brought this up with Pranav at one point. It’s kind of a pain to run this whole thing locally, because it takes.

198 00:16:12.260 00:16:13.170 Casie Aviles: Yeah.

199 00:16:13.170 00:16:17.620 Samuel Roberts: A front end, a back end, a database, and 4 MCP servers to get everything going.

200 00:16:17.790 00:16:18.430 Casie Aviles: Yeah…

201 00:16:18.430 00:16:19.160 Samuel Roberts: So…

202 00:16:19.160 00:16:19.540 Casie Aviles: Okay.

203 00:16:19.540 00:16:23.600 Samuel Roberts: The thought was… MCP servers aren’t gonna change a lot.

204 00:16:24.150 00:16:27.830 Casie Aviles: So, we should just have those in our environment variables.

205 00:16:27.830 00:16:31.680 Samuel Roberts: Or in our database, or locally, whatever it is for dev.

206 00:16:31.980 00:16:37.320 Samuel Roberts: I’m thinking for you right now, the easiest thing to do is to just set… since you’re only really

207 00:16:37.960 00:16:40.950 Samuel Roberts: No, you’re gonna need the backend, because you’re gonna need to decrypt the…

208 00:16:41.300 00:16:44.910 Samuel Roberts: Keys, right? Yeah. Okay. So you’ll have to run the backend.

209 00:16:45.190 00:16:48.349 Samuel Roberts: Which shouldn’t be a problem, that’s pretty…

210 00:16:48.640 00:16:54.160 Samuel Roberts: pretty easy. I think it’s just, instead of npm run dev, it’s npm run start.

211 00:16:54.360 00:16:55.350 Samuel Roberts: I think.

212 00:16:56.870 00:17:01.470 Casie Aviles: Okay, so that means I have to run both the front end and the back end?

213 00:17:01.470 00:17:05.250 Samuel Roberts: Yeah, for now, yeah, so just go in there and go into backend.

214 00:17:05.970 00:17:15.459 Samuel Roberts: I’m thinking… this is what I was like, we gotta figure out a better way to do this, because it’s annoying. Like, I want, like, one command to do everything, or something, maybe Docker, I don’t know.

215 00:17:15.609 00:17:18.849 Samuel Roberts: But there’s only a few of us, so I don’t want to overcomplicate it either.

216 00:17:18.970 00:17:22.770 Samuel Roberts: But here’s what I… okay, so then what we gotta do here is make an env,

217 00:17:23.060 00:17:29.159 Samuel Roberts: And I think for the environment, you should just point to the database on Railway for now, rather than run your own Postgres.

218 00:17:29.810 00:17:31.310 Casie Aviles: I see, yeah, okay.

219 00:17:31.310 00:17:36.239 Samuel Roberts: I think that’s the easiest thing for you right now, and that might be the easiest thing for us moving forward in general.

220 00:17:37.580 00:17:41.879 Samuel Roberts: So let me see real quick what I have in my end for backend.

221 00:17:43.430 00:17:48.350 Samuel Roberts: because if you’re pointing to the backend, the MCPs won’t work, though, will it?

222 00:17:50.920 00:17:52.029 Samuel Roberts: Give me one sec.

223 00:17:55.610 00:17:59.490 Samuel Roberts: Okay, I think I know what to do. So, for… for the dev.

224 00:18:00.490 00:18:12.250 Samuel Roberts: Let me find my backend and… Okay, so I have…

225 00:18:15.830 00:18:19.699 Samuel Roberts: Basically, what I have is the front-end URL, which is just localhost3000.

226 00:18:20.250 00:18:22.260 Casie Aviles: I have a better off secret.

227 00:18:23.200 00:18:31.279 Samuel Roberts: I have a database URL, which I’ve been changing a little bit, and then I have the MCP encryption, the port, the Google Ads developer token.

228 00:18:31.570 00:18:36.620 Samuel Roberts: Don’t know if I need any more, but… the Meta app ID… okay, let me share this with you.

229 00:18:37.810 00:18:38.390 Casie Aviles: Sure.

230 00:18:39.430 00:18:45.669 Samuel Roberts: And then I think the idea here will be to just… oh, yeah, alright, let me,

231 00:18:46.270 00:18:52.309 Samuel Roberts: what’s the thing called? Like, what’s the thing for sharing without 1Password? Because I don’t think we really need to put this 1Password, like…

232 00:18:52.590 00:18:54.369 Samuel Roberts: One time secret.

233 00:18:55.310 00:18:57.270 Samuel Roberts: Is that what it is? That’s what it is.

234 00:19:01.000 00:19:03.950 Casie Aviles: I have… I only use one pass for sure.

235 00:19:03.950 00:19:08.269 Samuel Roberts: I’ve been using that a bunch, but this is just the easiest way to send stuff, I think, so if I send this in the chat real quick…

236 00:19:08.360 00:19:10.619 Casie Aviles: Okay. That’s not what I wanted to do. Hold on, I wanna…

237 00:19:11.310 00:19:13.749 Samuel Roberts: Shit, what did it do? It made… create a link…

238 00:19:14.710 00:19:21.020 Samuel Roberts: Copy the link, I clicked the wrong button. Alright, so this link should have the… just put… drop this into your .end and backend for now.

239 00:19:22.730 00:19:23.330 Casie Aviles: Okay.

240 00:19:27.400 00:19:29.170 Samuel Roberts: And then what you should do…

241 00:19:31.230 00:19:36.429 Samuel Roberts: the way I’ve been doing it right now, for just some testing, is I have 3 different database URLs there.

242 00:19:37.910 00:19:39.499 Casie Aviles: Yeah, I can… yeah, I see it.

243 00:19:39.750 00:19:44.960 Samuel Roberts: So I think I labeled them. The top one is just my local Postgres, that’s what I was using initially.

244 00:19:45.170 00:19:48.689 Samuel Roberts: I think if you comment that one, uncomment the dev remote.

245 00:19:50.400 00:19:52.040 Samuel Roberts: And then run the backend thing.

246 00:19:52.040 00:19:52.840 Casie Aviles: I don’t know.

247 00:19:52.840 00:19:55.049 Samuel Roberts: It’s the second one, I think.

248 00:19:56.050 00:19:59.460 Casie Aviles: This one… Okay.

249 00:19:59.460 00:20:06.610 Samuel Roberts: Yeah, I’m just seeing the… yeah, okay, here we go. So yeah, so now, try that running, yeah.

250 00:20:09.570 00:20:18.420 Samuel Roberts: And then it should, fail to load Prisma wired data. Go back over? Oh, it can’t be envocal, it has to be just env.

251 00:20:18.610 00:20:20.000 Casie Aviles: Oh, okay.

252 00:20:20.000 00:20:26.800 Samuel Roberts: Yeah, I guess, because we’re using Nest.js, which I think only Nest.js handles the .local.

253 00:20:27.250 00:20:31.380 Samuel Roberts: That was annoying the other day, when I ran into that problem, same problem. I was like, what’s going on here?

254 00:20:32.350 00:20:36.440 Casie Aviles: Yeah, because I had… I’m using Enveloco for the front end.

255 00:20:36.440 00:20:40.220 Samuel Roberts: That’s what I was using, too. I don’t know why it doesn’t support it. It’s really annoying.

256 00:20:40.830 00:20:44.949 Samuel Roberts: Okay, so now this’ll just output a bunch of stuff that it set up the routes and everything.

257 00:20:45.120 00:20:48.999 Samuel Roberts: It’s a little bit of an overkill system, the way we’re doing it.

258 00:20:49.250 00:20:53.320 Samuel Roberts: I wasn’t sure if we needed the backend initially, Surf thought we did, but…

259 00:20:53.840 00:20:57.219 Samuel Roberts: I kind of like it, because it handles a lot of the stuff that I…

260 00:20:57.740 00:21:03.180 Samuel Roberts: it’s good, I just… I don’t know it as well. Okay, so now what I would do is,

261 00:21:04.470 00:21:08.289 Samuel Roberts: So you… are you… you’re not authenticated, then, if you were just running the front end?

262 00:21:09.410 00:21:13.099 Casie Aviles: Yeah, I wasn’t, I think I’m going directly to this.

263 00:21:13.350 00:21:18.079 Samuel Roberts: Yeah, okay, so then go to… just get rid of the dashboard and image generation, and just go to localhost and see what happens.

264 00:21:18.890 00:21:19.790 Casie Aviles: Okay…

265 00:21:20.220 00:21:23.690 Samuel Roberts: And then hopefully we get a login screen. Okay, now continue with Google real quick.

266 00:21:24.240 00:21:28.509 Samuel Roberts: this should just let you in with your Brainforge email, I guess.

267 00:21:31.930 00:21:34.499 Casie Aviles: Hmm… yeah, this is something I…

268 00:21:34.640 00:21:38.350 Samuel Roberts: Yeah, no, this is good, this is good, we gotta, we gotta figure this out. So then go to the…

269 00:21:38.470 00:21:41.329 Samuel Roberts: the terminal in cursor.

270 00:21:42.130 00:21:42.790 Casie Aviles: Oh, see what we’re.

271 00:21:42.790 00:21:46.269 Samuel Roberts: Let’s see in here real quick. Okay, so there’s some errors here.

272 00:21:47.080 00:21:52.830 Samuel Roberts: That’s the Slack stuff, that’s fine. That’s still… I think he’s still working on that stuff. Oh, you got an NPM install.

273 00:21:54.540 00:21:55.070 Casie Aviles: Okay…

274 00:21:55.070 00:21:56.059 Samuel Roberts: the back end.

275 00:22:01.990 00:22:08.040 Samuel Roberts: So this is doing all the authentication stuff, this is gonna do a bunch of the Slack stuff, this is gonna do…

276 00:22:08.480 00:22:15.969 Samuel Roberts: It actually is proxying the messages from the LLM so that they save to the database, even if, like, the browser goes down or something.

277 00:22:20.650 00:22:24.020 Samuel Roberts: It might just take a second, sometimes it’s not the fastest to start up.

278 00:22:24.530 00:22:25.160 Casie Aviles: Okay.

279 00:22:25.380 00:22:27.799 Samuel Roberts: It should have a bunch of outputs once it’s going.

280 00:22:32.490 00:22:35.939 Samuel Roberts: There you go, okay, so now it should take a second to…

281 00:22:39.310 00:22:42.460 Samuel Roberts: Alright, yeah, try… Refreshing.

282 00:22:48.780 00:22:50.170 Casie Aviles: Oh, okay, nice.

283 00:22:50.170 00:22:52.949 Samuel Roberts: Cool, okay. So now this will let you in, and this is what…

284 00:22:53.350 00:22:59.619 Samuel Roberts: Yeah, perfect. Okay, great. That’s… whew, okay. So now, assuming this goes in right.

285 00:22:59.780 00:23:04.750 Casie Aviles: You should now be in… okay, so here are the brands, that all works, and then you click Generator.

286 00:23:05.120 00:23:08.670 Samuel Roberts: So now, if you click Generator, does that still go? Perfect, okay.

287 00:23:10.910 00:23:11.480 Casie Aviles: Yeah.

288 00:23:12.120 00:23:14.270 Samuel Roberts: Cool, and so now what we gotta do is figure out

289 00:23:14.780 00:23:17.620 Samuel Roberts: Pulling this from the right brand, right?

290 00:23:18.400 00:23:19.910 Casie Aviles: I think…

291 00:23:19.910 00:23:25.549 Samuel Roberts: Now you can do that, because now you have the backend to add the encrypt and pass that, or whatever.

292 00:23:26.660 00:23:27.250 Casie Aviles: Okay.

293 00:23:27.870 00:23:32.390 Samuel Roberts: Were you using the API for Next.js at all on the front end?

294 00:23:35.290 00:23:37.480 Casie Aviles: I don’t recall.

295 00:23:37.950 00:23:38.790 Samuel Roberts: Okay.

296 00:23:39.060 00:23:40.670 Casie Aviles: I think, yeah, there are.

297 00:23:40.670 00:23:45.180 Samuel Roberts: Okay. Okay, that’s fine. Yeah, so the question is, you might wanna…

298 00:23:45.700 00:23:50.619 Samuel Roberts: This is, this is, like, a architecture debate, kind of how we want to do it best.

299 00:23:51.130 00:23:53.240 Samuel Roberts: Because there’s the API for the front end.

300 00:23:53.510 00:23:57.830 Samuel Roberts: And then there’s also the API for the backend, and I think sometimes we just proxy it right to the backend.

301 00:23:59.550 00:24:05.269 Samuel Roberts: But I think you’re fine to do this, the only issue is passing the… The key is around.

302 00:24:07.300 00:24:08.000 Casie Aviles: Okay.

303 00:24:08.400 00:24:18.400 Samuel Roberts: So… for, like, wherever you’re using the Supabase… not Superbase, on my Shopify, keys, and URL, right?

304 00:24:19.930 00:24:25.249 Samuel Roberts: You’ll have to decrypt that the way it’s doing it on the backend, and use that.

305 00:24:25.700 00:24:26.460 Samuel Roberts: Does that…

306 00:24:27.590 00:24:32.839 Casie Aviles: Okay, so where… where do I get that again?

307 00:24:32.840 00:24:40.679 Samuel Roberts: Yeah, let me, let me show you. Okay, so where are you using Shopify Access Token? Can you just find that in the files? Like, where is that being called? It’s probably in the API folder or something.

308 00:24:41.230 00:24:42.710 Casie Aviles: In the backend, right?

309 00:24:43.040 00:24:43.630 Casie Aviles: Correct.

310 00:24:43.630 00:24:46.500 Samuel Roberts: Well, that’s gonna be in the API of the front end, right?

311 00:24:47.080 00:24:48.580 Casie Aviles: Oh, you mean the one we’re using right now.

312 00:24:48.580 00:24:51.640 Samuel Roberts: Where are you using it? I want to see where that’s being used, yeah.

313 00:24:56.110 00:24:56.810 Casie Aviles: window.

314 00:24:57.470 00:25:00.029 Casie Aviles: I’m just gonna ask.

315 00:25:00.030 00:25:05.940 Samuel Roberts: That’s fine. I would just do a search for Shopify Access Token, is what I would do. Like a Ctrl-Shift-F or whatever.

316 00:25:07.100 00:25:08.420 Casie Aviles: You know what?

317 00:25:08.420 00:25:10.540 Samuel Roberts: Just, like, take… yeah.

318 00:25:11.000 00:25:13.070 Samuel Roberts: I’ll make sure to do it, yeah, there you go.

319 00:25:19.180 00:25:20.679 Samuel Roberts: Oh, it’s got the underscore.

320 00:25:22.080 00:25:24.119 Samuel Roberts: Oh, it just doesn’t matter, she’ll find it either way.

321 00:25:25.340 00:25:34.890 Samuel Roberts: Okay, cool. So now, it’s an API, it’s in dashboard, add… okay. Looks like the API is where it’s calling it from the process, so that’s good.

322 00:25:36.080 00:25:41.609 Samuel Roberts: MCP servers, that’s fine, ignore that. Okay, yeah, I think this route.

323 00:25:43.310 00:25:43.860 Casie Aviles: This one.

324 00:25:44.100 00:25:45.250 Samuel Roberts: Yeah.

325 00:25:48.050 00:25:53.910 Samuel Roberts: So, instead of this right here, you’re gonna have to do… let me find the file that it’s in here.

326 00:25:57.660 00:26:04.249 Samuel Roberts: I mean, you might just be able to ask Cursor to do it, that might… but here’s the thing. The backend is what talks to the database, right?

327 00:26:05.250 00:26:07.570 Samuel Roberts: This API can’t talk to the database right now.

328 00:26:08.130 00:26:19.510 Samuel Roberts: So what’s happening in a lot of the cases is the… front-end API just talks to… the…

329 00:26:19.660 00:26:24.440 Samuel Roberts: It just kind of proxies itself to the backend sometimes.

330 00:26:25.970 00:26:27.210 Casie Aviles: So, like…

331 00:26:27.210 00:26:31.230 Samuel Roberts: I’m just trying to think of… it’s a little… it’s a little… Overkill.

332 00:26:31.510 00:26:38.149 Samuel Roberts: Like, here, let me show you my… let me just show you real quick here.

333 00:26:39.060 00:26:39.550 Casie Aviles: Okay.

334 00:26:39.550 00:26:44.320 Samuel Roberts: Actually, you can just open up.

335 00:26:45.310 00:26:53.510 Samuel Roberts: like, look… oh, wait, I… you might not… I don’t wanna… yeah, go into, front-end source app API.

336 00:26:56.740 00:27:00.139 Casie Aviles: Front-end source, API…

337 00:27:00.140 00:27:05.060 Samuel Roberts: Yep, and then just look at, bots, for example.

338 00:27:06.590 00:27:07.599 Samuel Roberts: And then route.

339 00:27:07.860 00:27:11.799 Samuel Roberts: So, this is doing… this has a proxy to backend function, which I think…

340 00:27:11.930 00:27:16.279 Samuel Roberts: might need to get cleaned up a little bit, because I feel like a lot of them have this proxy to backend function.

341 00:27:16.420 00:27:17.990 Samuel Roberts: But that’s a whole other, you know…

342 00:27:18.150 00:27:19.660 Casie Aviles: Hannah Worms right now.

343 00:27:19.900 00:27:28.450 Samuel Roberts: But, like, it’s just proxying the request to the backend, which… Is…

344 00:27:28.720 00:27:35.249 Samuel Roberts: maybe not important? I don’t know, I… this is… it’s… this is just how it was set up, and kind of how we’re running with it, but…

345 00:27:35.460 00:27:41.570 Samuel Roberts: You could do something similar, and then on the backend, you would match these functions.

346 00:27:43.050 00:27:48.959 Casie Aviles: I see, so I have to, like, update this route here, and then the backend as well.

347 00:27:49.610 00:27:56.289 Samuel Roberts: Yeah, but you could probably have Cursor do that if you just point it to that. Like, explain you want to…

348 00:27:56.870 00:28:05.830 Samuel Roberts: You know, you want to pull the Shopify keys from these encrypted credentials.

349 00:28:06.670 00:28:12.670 Samuel Roberts: And you use that instead of the environment variables on a given brand or bot.

350 00:28:13.740 00:28:19.620 Samuel Roberts: And then… it might be able to just do that for you, I don’t know.

351 00:28:20.390 00:28:27.109 Casie Aviles: I’ll ask her, sir, to do it. I think I just need, like, you know, direction on where I should go, and I think.

352 00:28:27.110 00:28:33.720 Samuel Roberts: Yeah, I think… I think this is basically how we’re doing it right now. I think there could be a time when we move away from this.

353 00:28:34.560 00:28:35.050 Casie Aviles: Okay.

354 00:28:35.050 00:28:36.750 Samuel Roberts: But for now, I think it’s fine.

355 00:28:37.220 00:28:41.089 Samuel Roberts: If it becomes a bottleneck, that’s an issue, but I don’t want to over-optimize, you know?

356 00:28:41.420 00:28:42.690 Casie Aviles: Okay.

357 00:28:42.690 00:28:50.579 Samuel Roberts: And yeah, that should be it for there. So I would just say try to get that running locally with this Shopify, and then you can push it and store it to a bucket.

358 00:28:51.930 00:28:52.840 Samuel Roberts: - okay.

359 00:28:52.840 00:28:53.380 Casie Aviles: Great.

360 00:28:54.470 00:29:01.159 Samuel Roberts: And then, yeah, anything happening on the API could also happen on the backend to, like, save things in case there’s a browser problem, but…

361 00:29:01.670 00:29:03.750 Samuel Roberts: We can also deal with that later, so…

362 00:29:05.360 00:29:06.470 Casie Aviles: Okay, cool. I think…

363 00:29:06.470 00:29:08.640 Samuel Roberts: Does this give you enough to run with, or is that…

364 00:29:10.110 00:29:17.610 Casie Aviles: Yeah, I think that’s… that’s helpful. So, I guess I’m just going to reiterate if I… if I got it.

365 00:29:17.610 00:29:19.489 Samuel Roberts: So I just need to…

366 00:29:19.730 00:29:28.050 Casie Aviles: get the… route of, front-end connect… kind of communicating with the back end, right? That’s kind of…

367 00:29:28.860 00:29:32.779 Samuel Roberts: Yeah, so, like, if you go into, where’s the…

368 00:29:33.470 00:29:35.960 Samuel Roberts: API generate image, like, where is that?

369 00:29:36.540 00:29:38.879 Samuel Roberts: Yeah, like, show me what’s in there real quick.

370 00:29:39.240 00:29:41.069 Casie Aviles: API generated image.

371 00:29:42.330 00:29:46.250 Samuel Roberts: Yeah, so… Basically, some of this stuff…

372 00:29:46.570 00:29:49.779 Samuel Roberts: I don’t know exactly how it’s working,

373 00:29:50.610 00:29:55.449 Samuel Roberts: But, like, some of this logic could theoretically go into the backend repo.

374 00:29:56.250 00:29:57.060 Casie Aviles: Okay.

375 00:29:57.410 00:30:00.939 Samuel Roberts: And then we could just send it from the back end to the front end.

376 00:30:02.140 00:30:03.420 Casie Aviles: Hmm, okay, yeah.

377 00:30:03.420 00:30:09.339 Samuel Roberts: It’s not… it’s not… if it’s doing it in the front end, it’s not that big a deal, but to save it, we probably want it to go through the back end.

378 00:30:11.140 00:30:14.629 Casie Aviles: I see. You mean to change the generated images?

379 00:30:14.920 00:30:17.930 Samuel Roberts: Yeah, and then loading them and everything,

380 00:30:18.820 00:30:23.660 Samuel Roberts: Like, so it’s storing it locally right now, once it loads it, or makes the image?

381 00:30:24.230 00:30:27.040 Casie Aviles: Yeah, it is in a local storage for now.

382 00:30:27.420 00:30:30.149 Samuel Roberts: Okay, yeah, so I think that… basically the,

383 00:30:31.940 00:30:36.339 Samuel Roberts: the keys for Shopify should stay on the backend?

384 00:30:36.880 00:30:41.279 Samuel Roberts: And then saving the files to the bucket should probably stay in the backend.

385 00:30:43.160 00:30:47.960 Samuel Roberts: The actual, like, generation and stuff, I think is probably fine where it is.

386 00:30:49.850 00:30:50.700 Samuel Roberts: Okay.

387 00:30:51.420 00:31:00.530 Samuel Roberts: And we just have to point it to the bucket as well, right? Yeah, once we figure that out, yeah, once you get that working the way with Shopify and stuff, we’ll point it to the bucket to save.

388 00:31:01.530 00:31:02.120 Casie Aviles: opening.

389 00:31:02.350 00:31:06.880 Samuel Roberts: In fact, you might not need to do it to the backend, but I think it would just keep it a little cleaner.

390 00:31:08.280 00:31:09.070 Casie Aviles: Yeah.

391 00:31:09.200 00:31:09.920 Casie Aviles: Okay.

392 00:31:10.280 00:31:17.149 Samuel Roberts: Like, and it’s a little weird, because we say front-end, but then we have this whole API folder that is technically never exposed to the

393 00:31:17.470 00:31:19.069 Samuel Roberts: The front end, you know?

394 00:31:20.270 00:31:21.200 Casie Aviles: Yeah…

395 00:31:21.200 00:31:22.589 Samuel Roberts: Like, that all runs in the…

396 00:31:22.800 00:31:24.990 Samuel Roberts: back end of the Next.js app.

397 00:31:25.130 00:31:27.839 Samuel Roberts: But it’s separate from the backend of the…

398 00:31:28.040 00:31:33.839 Samuel Roberts: Part of the reason we have the nest is because we can do cron jobs and stuff like that for, like, the reports and things.

399 00:31:34.460 00:31:40.230 Samuel Roberts: So it’s important to have, but it’s kind of a coin toss sometimes, what needs to go where.

400 00:31:41.300 00:31:46.919 Samuel Roberts: And so far, we’ve been kind of defaulting to the back end, so… but we can move stuff later if we need, you know?

401 00:31:47.250 00:31:48.780 Casie Aviles: I think it’s fine as it is.

402 00:31:49.280 00:31:51.610 Casie Aviles: So, yeah, I’ll just ask her, sir.

403 00:31:51.770 00:31:54.650 Casie Aviles: To help with that, I think, yeah.

404 00:31:55.280 00:32:00.759 Samuel Roberts: And then, yeah, the only other thing is, yeah, making sure it’s pulling from the right bot for whatever

405 00:32:01.100 00:32:02.350 Samuel Roberts: brand it’s on.

406 00:32:03.400 00:32:04.880 Casie Aviles: Okay. Yeah.

407 00:32:04.880 00:32:09.959 Samuel Roberts: Which, I think that’s… that might be a little bit of the UI to make sure it shows up, like, the, settings and stuff.

408 00:32:11.600 00:32:16.090 Samuel Roberts: Just to make sure it’s per bot, but… I don’t know exactly how they want that, because they wanted it…

409 00:32:16.280 00:32:19.839 Samuel Roberts: her bot, right, so it knows what Shopify to pull from.

410 00:32:20.610 00:32:25.350 Casie Aviles: Yeah, I think… one of the brands would be Newton Golf, right? And…

411 00:32:25.350 00:32:27.069 Samuel Roberts: Yeah, I think Test Brand might be it.

412 00:32:27.840 00:32:31.649 Casie Aviles: Once we select let’s say Newton Golf, then…

413 00:32:31.880 00:32:35.929 Casie Aviles: It should also pull, you know, these same…

414 00:32:36.760 00:32:40.789 Samuel Roberts: Perfect. Okay. Yeah, I would say work on that, and then once that’s working, and, like.

415 00:32:41.060 00:32:42.490 Samuel Roberts: It’s passing the right.

416 00:32:42.740 00:32:46.180 Samuel Roberts: token and fetching from Shopify and everything.

417 00:32:46.730 00:32:55.729 Samuel Roberts: Will… push that… And set the bucket up. Or actually, we’ll… maybe what we can do…

418 00:32:55.930 00:33:04.009 Samuel Roberts: is create the bucket in the dev environment, and then use its public URL, kind of like how we’re using the database right now.

419 00:33:06.350 00:33:13.220 Samuel Roberts: And then… Once we push it live, we’ll just point it to the right bucket.

420 00:33:13.960 00:33:14.650 Casie Aviles: Okay.

421 00:33:16.220 00:33:21.670 Samuel Roberts: So, I would say, yeah, plan of attack, get the keys working, Get it?

422 00:33:21.960 00:33:26.220 Samuel Roberts: Communicating with the backend, get it all tied together so it can deploy.

423 00:33:27.510 00:33:31.119 Samuel Roberts: And then we’ll update the bucket… make the bucket.

424 00:33:31.310 00:33:38.390 Samuel Roberts: Figure out how to do that so that it saves to the bucket instead of the… Local storage.

425 00:33:38.390 00:33:39.110 Casie Aviles: Luckily.

426 00:33:39.450 00:33:45.240 Samuel Roberts: And then… but do that… do that locally, too. Just point it to the… because, like, when you create a buck… let’s create a bucket right now, that should be easy.

427 00:33:45.690 00:33:50.620 Samuel Roberts: Because then we can get the URL. So if we click the bucket,

428 00:33:51.580 00:33:54.570 Samuel Roberts: It’s gonna go… that’s probably fine.

429 00:33:55.160 00:33:59.600 Samuel Roberts: Credentials… alright, yeah, just, you probably have to hit details real quick.

430 00:33:59.860 00:34:01.639 Casie Aviles: What’s the other thing here?

431 00:34:02.310 00:34:07.810 Samuel Roberts: region… Okay, that’s fine, yeah, just deploy that for now, it’s on dev, I don’t really mind too much.

432 00:34:08.190 00:34:12.049 Samuel Roberts: And then, once it’s deployed, hopefully you’ll get a…

433 00:34:12.320 00:34:14.429 Samuel Roberts: Credentials that we can add to the…

434 00:34:17.170 00:34:21.690 Samuel Roberts: Yeah, so this is… so use this to communicate with it locally from the backend.

435 00:34:21.960 00:34:25.900 Samuel Roberts: running on your machine. So whatever end variables have to go there.

436 00:34:28.159 00:34:32.999 Samuel Roberts: I don’t know exactly. I am not so used to, like, spinning up these buckets yet, but,

437 00:34:34.780 00:34:36.440 Samuel Roberts: What is it? Hold on, go up for a second.

438 00:34:36.830 00:34:38.150 Casie Aviles: Oh, what is…

439 00:34:38.610 00:34:41.109 Samuel Roberts: What does that add to… add to service? Yeah, click that.

440 00:34:43.090 00:34:49.949 Samuel Roberts: So yeah, so this is basically… this would automatically give us the… Variables that we need.

441 00:34:50.670 00:34:51.480 Samuel Roberts: Right?

442 00:34:52.630 00:34:55.560 Samuel Roberts: But we can point it to specifically the backend, like, here.

443 00:34:58.010 00:35:05.930 Samuel Roberts: Right, so if you click the backend, what this is going to do is put all these variables into that backend environment. So you’re… what you should do…

444 00:35:06.240 00:35:09.309 Samuel Roberts: Whatever way you’re gonna connect. Actually, click that again up here.

445 00:35:10.910 00:35:12.580 Samuel Roberts: Custom barn direct statement.

446 00:35:14.290 00:35:17.910 Samuel Roberts: Yeah, I think AWS SDK is probably the best way we’re gonna do that.

447 00:35:18.530 00:35:23.699 Samuel Roberts: And then, don’t worry about adding them right now, but these variables, whatever this list is here.

448 00:35:25.270 00:35:31.410 Samuel Roberts: Put those into your .env in the… Backend running on your machine.

449 00:35:31.810 00:35:32.590 Samuel Roberts: Right.

450 00:35:33.290 00:35:34.000 Casie Aviles: Okay.

451 00:35:34.390 00:35:37.720 Samuel Roberts: And then, you’ll just connect to the bucket to test everything out.

452 00:35:37.940 00:35:39.930 Samuel Roberts: And then when we deploy.

453 00:35:40.050 00:35:44.359 Samuel Roberts: the back end on Railway will just already be communicating, because you’ll click that button.

454 00:35:48.970 00:35:50.329 Samuel Roberts: You’re talking about here, yeah.

455 00:35:50.700 00:35:51.740 Casie Aviles: Oh, yeah, okay.

456 00:35:52.150 00:35:58.600 Samuel Roberts: So I would just say, yeah, put all those in, And then… Yeah.

457 00:36:04.340 00:36:10.830 Samuel Roberts: And then, actually, click add variables here, because that’s fine for now. You’re not gonna be able to copy them there, unfortunately, so… you’re gonna have to copy them from here.

458 00:36:13.300 00:36:19.240 Samuel Roberts: So just copy those into the ends, and then, yeah.

459 00:36:22.980 00:36:24.080 Casie Aviles: Book it.

460 00:36:27.400 00:36:28.440 Samuel Roberts: Yeah, cool.

461 00:36:30.160 00:36:35.469 Samuel Roberts: So now, yeah, so now you’ll just connect to that bucket, figure out how to do all the saving, do all that.

462 00:36:37.120 00:36:41.420 Samuel Roberts: And then hopefully when we deploy to dev, it’ll just work, right?

463 00:36:41.620 00:36:45.249 Samuel Roberts: Because all the keys will be there, automatically through railway.

464 00:36:45.800 00:36:49.670 Samuel Roberts: And then we’ll add a bucket in staging, do the same thing, but for now, we’re good.

465 00:36:51.750 00:36:57.620 Samuel Roberts: Okay, yeah, that should be good. You should have everything you need now to run front and back-end locally, and test against dev.

466 00:36:58.640 00:37:01.149 Casie Aviles: Yeah, yeah, that’s helpful. Yeah, that’s fair.

467 00:37:01.150 00:37:05.639 Samuel Roberts: Yeah, the only things that… the only things that won’t work is if you try to use the MCP servers.

468 00:37:05.880 00:37:09.029 Casie Aviles: Yeah, I don’t think I need to use them for now, right?

469 00:37:09.030 00:37:12.189 Samuel Roberts: No, I don’t think so, but what we can do is,

470 00:37:13.110 00:37:15.029 Samuel Roberts: If you go back to Railway real quick…

471 00:37:15.330 00:37:17.549 Samuel Roberts: Actually, let me show you real quick, it might be easier.

472 00:37:17.760 00:37:18.750 Casie Aviles: Okay.

473 00:37:18.960 00:37:22.959 Samuel Roberts: And I just want to explain, make sure my thought process here makes sense.

474 00:37:23.340 00:37:30.930 Samuel Roberts: Shoot, where did my… Oh, wait, we’re… everything’s moving around, I have too many virtual desktops. Okay.

475 00:37:31.180 00:37:37.870 Samuel Roberts: I’m gonna share… so in Railway here, in dev, we’ll say…

476 00:37:42.930 00:37:48.479 Samuel Roberts: Okay, we haven’t deployed… that’s fine. Okay, but I want to say, so, like, the database here… how’s this not showing? I don’t know.

477 00:37:49.100 00:37:55.540 Samuel Roberts: So the database here, these MCP servers, Are using this .internal.

478 00:37:57.760 00:38:03.800 Samuel Roberts: Because railway has, I don’t know why it’s not showing me anything here.

479 00:38:08.580 00:38:12.099 Samuel Roberts: Basically, let’s go to the staging real quick and see if that works.

480 00:38:12.860 00:38:18.760 Casie Aviles: I refreshed, I just reloaded when it was like this to me earlier.

481 00:38:19.140 00:38:20.250 Samuel Roberts: Okay.

482 00:38:20.660 00:38:22.640 Casie Aviles: Let’s see… It’s still the same.

483 00:38:22.810 00:38:23.650 Casie Aviles: Oh, there you go.

484 00:38:23.650 00:38:27.170 Samuel Roberts: Okay, so yes, like, if I click on the Stitch API,

485 00:38:27.360 00:38:33.009 Samuel Roberts: for the Google Ads API, and I go to the variables, so these are the ones that we set.

486 00:38:33.210 00:38:41.879 Samuel Roberts: And then it automatically sets a whole bunch of these. So, like, if you want to access this publicly, you can go to this URL, right?

487 00:38:42.130 00:38:42.910 Casie Aviles: Hmm.

488 00:38:43.330 00:38:45.310 Samuel Roberts: But it also has this internal one.

489 00:38:45.850 00:38:51.470 Samuel Roberts: Which is, like, the networking in railway, so it doesn’t have to, like, go out to the internet and come back.

490 00:38:52.390 00:38:52.840 Casie Aviles: Okay.

491 00:38:52.840 00:38:59.180 Samuel Roberts: What we can do, probably for dev, for our purposes, is point it to all of these ones, so it’ll work on our machine still.

492 00:39:01.580 00:39:04.329 Samuel Roberts: Because if I look here, so, like, this stitch… what is it?

493 00:39:04.950 00:39:09.890 Samuel Roberts: Up.railway.app instead of… railway.internal.

494 00:39:10.080 00:39:18.290 Samuel Roberts: If I come back to here… We can just overwrite These to not be .internal.

495 00:39:20.450 00:39:21.599 Samuel Roberts: And then…

496 00:39:22.300 00:39:27.790 Samuel Roberts: it’ll work from our computers, so we can still test everything locally. I think that’s the best way to do it. Okay.

497 00:39:28.370 00:39:35.200 Samuel Roberts: I think this helped me. I hope it helped you. But I don’t know if that makes sense just now, what I was explaining, but I think it will work.

498 00:39:37.200 00:39:38.620 Casie Aviles: Okay, yeah.

499 00:39:38.620 00:39:43.370 Samuel Roberts: For now, don’t worry about the MCPs, I’m just… I’m just excited that I think this will work, so…

500 00:39:43.920 00:39:47.489 Samuel Roberts: you should be good to call Shopify, store in the buckets.

501 00:39:47.980 00:39:51.870 Samuel Roberts: All that. So if you have any… if you had any roadblocks with the decryption or anything, let me know.

502 00:39:54.470 00:39:57.240 Casie Aviles: Okay, yeah, yeah. Thank you, thank you.

503 00:39:57.700 00:39:58.460 Casie Aviles: I’ll just ask.

504 00:39:58.460 00:39:58.780 Samuel Roberts: tool.

505 00:39:59.120 00:40:01.350 Casie Aviles: Questions, if I have any more.

506 00:40:01.890 00:40:05.989 Samuel Roberts: Totally, yeah. No, this is… this is good. This is… we’re sorting out a lot of the nitty-gritty

507 00:40:06.130 00:40:13.460 Samuel Roberts: That we’re gonna have to keep us moving forward with this client, so, we’re doing it… I think we’re doing it the right way, so it’s just a little annoying.

508 00:40:14.040 00:40:14.690 Casie Aviles: Okay.

509 00:40:15.000 00:40:16.400 Samuel Roberts: Alright, thank you so much, Casey.

510 00:40:16.440 00:40:18.129 Casie Aviles: Thank you as well, Sam. Thank you.

511 00:40:18.130 00:40:19.850 Samuel Roberts: Yeah, ping me if you need anything.

512 00:40:20.330 00:40:21.389 Casie Aviles: Okay, bye-bye.

513 00:40:21.390 00:40:22.480 Samuel Roberts: Alrighty, bye.