Bobby Palmieri: more Rick Rouse. Hey, how are you? Samuel Roberts: Good, how are you guys? Uttam Kumaran: Hey, guys. zacfromson: Happening? How’s the week been? Uttam Kumaran: It’s been good! Sam’s been out, though. Samuel Roberts: , I’ve been… I was traveling the week before, and I don’t know if it was just getting run down or whatever, but my immune system took a dive, and I got something yesterday and the day before, I’m on the mend, but zacfromson: , I hear ya, everyone’s sick now. Samuel Roberts: And , , the tennis, , it’s… ugh. Every year. I’m surprised when it happens, but I’m , oh , . Uttam Kumaran: Cool, , … for this meeting, and I don’t know, Sam, if you want to ping Surf, I want to go through two things. Samuel Roberts: Good timing. Uttam Kumaran: , the two, , initial phases of, , what we’re doing here is, one. , , figuring out what is salvageable and bringing it into, , a new environment that is deployed, hosted, and, , has security and keys, that is, . what we allocated that first, , chunk for. The second phase is to build out the revenue forecasting. And , , , the way we’ve been working, , the last week or is, , we have all the existing code, we’ve spun up Railway. now, we are working on, setting up auth, and then getting it all hosted on Railway. I , , in talking to the team today, and what I mentioned. , Zach and Bobby initially, it’s , I don’t think it’s gonna take 4 weeks, but we definitely, again, , under-promise, over-deliver, we’ll be able to get the hosting stuff done first. The goal of this, , hosting part is that we need a… we need a developed environment that’s reliable for us to push code and test and , , get stuff out. And that is really what the first phase is. The second phase, and, , would love to spend time talking about that today is… is talking about building the product. And , this may be a little bit different than how, , the other team did it, but My background is in building, , software, and starting with a clear product requirements document, that both gets accepted by, , y’all, the stakeholders, as as by the technical team, allows us to just, , make we’re on the same page. The lovely thing here, , which is rare that we don’t get for other clients, is , Bobby, , the work that you did, which is spin up stuff in Replit beforehand that we can use as a really, , guiding North Star. Typically, a big part of doing product requirements is, having to, . do mock-ups and UI and wireframes, we’ve… we’re able to skip past a lot of that. , in speaking with Zach. His question is, , should we keep doing stuff in Replit? Should we, , move to cursor or something that? , for me, the feedback I gave was nothing that I… I don’t want to do anything that limits the speed at which we can ship things. And , for us, it’s very, very helpful, and important that you guys keep doing prototypes and building things that you’re , , this is in the direction we want to go. our team’s job is to take that and make that all the endpoints are plugged in, all the API keys worked, and we’re able to scale it to all the clients and the team. … that’s, , , , a great way for our team to work. There is ways for us to help configure Replit that it’s using the frameworks, and it makes it easier for us to move that to our deployed environment, but that is something we’ll also, , figure out over the next month. Maybe I’ll just pause there before diving into this PRD. Is that, … Roughly makes sense. Bobby Palmieri: , that… that sounds great. Let me… let me just share… and I have to hop, unfortunately, at the 30-minute mark to a call that I’m… Way less excited about than this call, … zacfromson: I can stay on longer with you guys, but , I’ll let Bobby render the meetings while you have them. Bobby Palmieri: the biggest thing that, , just as we’ve been , , playing around more with Replit and on and forth, , one thing that I want to, , chat through, and this dashboard now looks different, just because I was fucking around with it, excuse the colors and whatnot, but , , essentially, , what we’re… trying to build is an agency operating system, ? , as we think about, , the different tools, , , up here, there would be a drop-down to get us to other clients, but once you’re in this client database, , all of this is ingesting the data and, , API keys for that specific client. , , that the daily and monthly forecasting prototype that we have is, , essentially what we’re… what we’re looking for. Zach had shared… , this with you guys. I had built out… A different version of it that Works quite , where it pulls in the Shopify API. that it loads all of the products, you don’t have to, , upload the reference images. , across the board, … Maybe this isn’t the version that has it? you can sync from Shopify, and it would pull in that perspective, but the goal is, is that that would, , essentially pull in here once you’re on that client, that the team has been cranking away with this. we want to , , make that we can integrate this, but , the end goal is, is that, , , the team can click a drop-down somewhere over here, go to whatever brand, and then all of these tools, , will continue to build out. We’ll start with, , having the MCP, and then forecasting. we’ll layer in, , this tool, and on and forth. But, , that’s where we’re hoping to get to. , we have a variety of other, . , spreadsheets that we use that, , are a P&L or a contribution calculator that, , , we want to continue to add to, that everything for the brand lives in one spot and has, , a settings page and on and forth for that. zacfromson: And I know one thing you guys noted, too, is, , what language is this in? Bobby was tracking, and all this is being built out in React. , you can get the water. Samuel Roberts: chat on the side, and it was… that was… Uttam Kumaran: , we’ll talk about… we’ll talk about that today as . Surfield Thomas: Can I steal the thunder a little bit? Bobby can see some of the stuff, I’ll show you guys a little bit of it. We saw originally the Replit stuff, we took that. And, we are building out, , a framework that looks that for you guys. I’m just gonna do a slight demo of it, because we’re gonna get it up and running, For you guys in a little bit. But primarily… talking to the same tune. if you can see, , what I have from my screen, we are, , building a base-level repo, that could , , allow you to build that exact schematic on the stuff that we’re working on, and then I’ll just show you, . Once you sign in, and, , it’s Google Auth, sign in, that stuff, it lands you in a space that looks very similar to what you just showed us in Replit, and it’s all in React. as you can see here, left handle bar, then you have your main screens there. You can switch out the sides stuff, we’re already building that container for you. , , our styling is working with your Replit styling, it should land nicely. And then you’re gonna get interesting things, being able to see, , how your… your employees are using the system, because it’s going to come with things full session replay, event management, all kinds of stuff, you’re gonna get a lot of data on that, too. Bobby Palmieri: , the thing that we’re seeing is, , I saw, , a Twitter demo on this, , Nano Banana studio, and, , just built it in Replit, passed it to the team. Team’s been cranking with it, and, . we’ve sent probably 5 clients things, and , holy shit, , what are you guys using to do this? It’s just a nano-banana wrapper. However, … We have given the team endless objectives to use it, and, , they just don’t until it’s in a sexy UI wrapper. , we just want to continue to build these tools and have it, , live in one place. , just figuring that out, and then, , , , having some things that, , hey. we push this, it pulls in the Shopify API that’s already being used for the MCP, that, , the products load, on and forth, … I know we’re aligned, and I’m not saying anything groundbreaking, but just figured I’ve been out for 2 weeks, changing diapers, I figured I would, just chime in and make we’re aligned on all that. Uttam Kumaran: And one piece on that surf, I also want to see, and it’s something for us to figure out is how can we make their Replit environment where Bobby and Zach are messing around as close to what we will be building, that they can prototype new features, and then we can… we can try to drag that, get that back into the system, ? Because what we don’t want to do is have the everything start from, , new UI, new frameworks, things that. , one thing we want to explore this month is, , how do we get Replit somehow matched up with the system we’re building, that when you go in and you’re , , I want to add this new feature, it can prototype that fairly accurately. It gets us, , 60% of the way there, versus the current stuff may only be, , 20 to 30% of the way there. Does that make sense? Samuel Roberts: There’s probably a way to even connect, , the GitHub to. Uttam Kumaran: You can connect to the repo, , I saw that. Samuel Roberts: there might be a way that you can use it based on the way we’re using cursor, but… In the Replit interface. Definitely worth exploring, because once we get that stood up completely, then you can prototype these things in a Live environment, and see how they play with other tools. Uttam Kumaran: , today, let’s just go through, while we still have, Bobby here, this document. , really, this is gonna be, , the Bible for this part of the product, which is the revenue forecasting engine. We will similarly have these for every, , core area. As we’re learning from your brain about the fact that this is more of a platform, and that there are, , modules for revenue forecasting, which may be a mix of tools, analyses, but additionally, the platform has as login, as, , the nav. , it is a… it is a real product, ? If you think about, , the Google Docs product, there will… and within Google, there will be product requirements around the top bar, how to share work, … we’re not gonna go, , overkill, but at least for the core features, in order for our team to be successful, I want to wrap these. Sirf and Sam and folks, I don’t… I don’t worry about them making the best decisions product-wise on navs, logins, share, that’s, , that… that’s not for us to… I’m not too worried about that. for the the way I want to tackle, , this conversation is just, , what do we want in each phase milestone? And this is where it’s going to be a back and forth, which is, , for me, a proof of concept is, , something within, , 2 weeks. ? , , if we were to think about when we kick off working on forecasting, what are the things we want to see to be able to inform whether we can accomplish what’s stated in the MVP and in, , the V1? And for us, a couple of things that I wrote down for us to discuss is, one, being able to ingest Shopify data, being able to run that data through, , Python, being able to calculate retention rates, being able to, , backtest it. backtesting really means, . we want to start to look at whether our cohort analysis is accurate, and then comparing what we predicted versus actuals. And what, really, this proof of concept means is, , this is what a user should be able to do, and these are what the parts of the thing are gonna be. This doesn’t have much on, , UI, It’s more of, , proving that we can ingest, we can run stuff through Python for data, then we can show it on the front end. And we’re , The deployment and the setup of the codebase in a way where we can accomplish that. Is there anything here that’s , , , we… I want to test out other sources, or… , , does that make sense? Is there anything else we should add or remove from, , proof of concept? Bobby Palmieri: The only thing… and I don’t know if this is, , on… On this bullet point, or somewhere else. Uttam Kumaran: The only thing that sticks out to me that is super important is, I’d say probably 50% of our brands have. Bobby Palmieri: subscription, ? And that LTV is, , very different, … the Python script needs to be able to ingest subscriber data. and then calculate LTV based on that. , for instance, we have an electrolyte brand , for the first 6 months of the year, 20% of their new customers were subscription. We made some changes, now it’s closer to 75%. The script needs to be able to take that and say, hey, this cohort, , is gonna be… it’s gonna react this way. As , it’s more about… Uttam Kumaran: Are all Shopify subscriptions, or would that… , recharge would flow under Shopify? Bobby Palmieri: It’s all gonna… , at this point, Shopify all… , it all pulls in. , we have Stay, Recharge, Skio, but they all pull in as, , a… A subscription tag on Shopify. Uttam Kumaran: Anything surf? Sam, that’s … way, that’s, , way out of scope, , what do you guys think? Bobby Palmieri: Do you want me to do, , just a quick screen share on the prototype, just to walk… walkthrough. Uttam Kumaran: , , we… … a bunch of us looked through the loom, but , let’s go through it again real quick. Bobby Palmieri: , cool. just real quick… , across… , across the board, , just high level. , we need a way to… and I can also do a loom of what Orca is doing as . But essentially, we need a way to create a forecast, either for next 3 months, next 12 months. Next 6 months, or next calendar year. How do we want to look at revenue? Is it flat? Does it grow? , what are we basing this target off? And then when you create one, it looks this, ? you have new and returning. totals. The return section here, that’s what’s pulling in from Python, ? We can edit it, but it should give us a baseline of, , hey, this is what this should be. Should give us a baseline of some metrics here, just based on, , , historicals, and then a total. And then, once you make something active, that’s what pulls into the daily forecast. Now, we can adjust these. there needs to be some logic, , down the line, we can figure out how this all works. I know that there’s probably some, . A little bit of complexity in terms of, , hey, if we change the goal mid-month, does that also update in this forecast, ? And what happens once January has passed? How does that pull in, , the actuals? And then update the return, ? if we miss our new customer number for January. February is going to have to decrease, ? that can be somewhat of a future conversation, but I do think that it’s probably closer to MVP than it is future state. And then, once we have, , our revenue goal. Have a way to do it, , by channel as . Uttam Kumaran: to say, hey, we think we’re gonna come revenue, ad spend, new customer revenue, total MER. Bobby Palmieri: How are we tracking on a daily basis to that? What does that look for… , for us to hit our goal. say, hey, if you want to spend, , if our goal is 128K in spend, for the rest of the month, we need to spend $7,500, ? And then, how are we tracking to that variance? And you can adjust… These numbers, if you think, , hey, we’re gonna have a sale this period, this can go up to 7,000, or whatever the case may be. Uttam Kumaran: In that situation, it should persist, , in the back end, and then, , , my… Bobby Palmieri: And , , we’re trying to figure out, , what that… looks , ? there is some logic that’s a little bit more complex, and. Work with you guys to figure out what’s… current state versus future state, but , ideally, , if I come in and update this to be 7000, ? It… it updates. here as , based on the forecast, and changes this forecast. And then we have it by channel, ? … , different metrics by channel, and on and forth. This one, I am way less worried about. Which is, , , comparing to forecasts, which we are doing. Uttam Kumaran: , that was my next question, is, , how interested are you? Because a lot of what I’ve… some of what I’ve written about is, , forecasts versus actuals, and, . , it is important for the model, the Python model, but how important is it for the UI? Bobby Palmieri: For what, last year and last month? not… not important. I do think, , down the line, we do want to get to a point where I can say, hey, how are we pacing against last year by day? Or last month, ? Because that’s, , Zach and I are just having some conversations about, , what are the insights that we’re given to clients? But for MVP, I would just avoid last month, last year, as part of this. It’s just against forecast. I’m not there. zacfromson: One other just high-level thing that I don’t know has been discussed. And , Bobby, we need to talk this more, is , how are we sharing this with clients? , does this become PDF downloads that we need a feature on to deploy to the client? Do we have clients added to the workspace where they can only review this? Uttam Kumaran: I don’t know if we’ve talked about that, but I know we’re gonna need to get client visibility on that. Samuel Roberts: I was gonna ask that as , because… oh, sorry, go ahead. Uttam Kumaran: , go ahead, Sam. Samuel Roberts: I was just gonna say, I remember you mentioning, , account management was living on another place, and that was already something I was thinking about here, and I was curious if it was gonna be fully internal or external, I was lingering about as . Bobby Palmieri: Zach, for MVP now, , just screenshots. zacfromson: . Are… are sufficient. Bobby Palmieri: efficient, and then, , I would love to get clients access to this moving forward, but for MVP, I just want the inter… zacfromson: We’re gonna need to test out a few brands, pick out some bugs, get this thing working. We can always just pull it up on a call or send them screenshots for now. I’m fine with that, cool. I’m where I was at. I just want to make that expectation’s set for now. Uttam Kumaran: for Sam and Surf, , one, we’re gonna have to think about, , where we’re storing data, and maybe we can talk a little bit about, , on the technical side, we have to think about, , what… of course, front-end, back-end, I need to… we need to understand where we’re going to host this, , cohorting. , for you guys to think about anything that ends up as a, , a cell, or anything that ends up as an Excel is going to be data frames coming out of, , something in Python. I don’t know, , ideally, this is in, , a notebook or something, but I’ll let you guys think about how to do this. I wouldn’t buy… , I would bias more towards being able to pass in data, get things out, and display it for the proof of concept. Bobby Palmieri: , that was my… That was my one question, and honestly, I’ve just been scanning this as we’ve chatted, but… Uttam Kumaran: If we look at… Bobby Palmieri: , on their scope, you have data ingestion pipeline, and then it’s, , connect to existing MCPs. This is not a technical. speaking, but… We probably want a data warehouse for. ? … , I don’t think the exact… Surfield Thomas: Very technical of you. Uttam Kumaran: That is very technical. Bobby Palmieri: I don’t know what the fuck that means, but I can… Uttam Kumaran: , there’s two, there’s two methods here, , we will definitely need to store this data in, , some type of in-memory or actual data warehouse. You can think, , Snowflake, BigQuery. those sorts. Additionally, though, if there is need to do, , point lookups. of, , IDs or information, we may not need to look through raw data. We could connect directly to, , their APIs. , if you’re pulling, , a Facebook, , ad account ID, pulling that from the data warehouse, is… this comes with a lot of limitations. The data warehouse will totally be used for computing the analytics. I just… it’s a good thing to note. I don’t think we’ve made a decision yet on what, , the… , the data warehouse piece is. Bobby Palmieri: , let me share my screen real quick, as . Orco gave us, , access to… , , it’s the Google Sheet that honestly runs the tool. just for context, , this is, , , in their app, this is… This is the UI, just in spreadsheet form, and then, , if you make a change here, it updates in the app. But they also have… , the database URL? And… , they’re just dropping all their data. in here, my guess is this is BigQuery. Uttam Kumaran: This is what we will move to, Data Warehouse. , any logic that’s currently happening in Google Sheets will move to Python. And any storage of raw data will pull dynamically into a data warehouse. Bobby Palmieri: I don’t want to promise data warehouse, because it may look differently than, . Uttam Kumaran: there’s a bunch of different ways we can do this. , it may be an in-memory database, it may be still in our Postgres, or we may leverage something BigQuery, but something for us to think about, . , we’ll pull Shopify, and then we’ll also As we add more sources, that’s where they’ll all go. , as long as the… we’re pulling the same consistent sources and they have the same schema, then we will apply, , combining Shopify and Klaviyo the same way every time. , looking at subscription data from Shopify. , this is also where it’s going to be important to have, , some configuration. , what tools… what types of analysis we’re running, this is Sam and Cerf, when we start to port over the stuff into Python to understand, , what inputs you guys need to pick the models to run. Bobby Palmieri: And then on that note. , I know we’re building the forecasting tool, and we have, , the MCP now, but We probably need, … a settings page to input all the API keys and connectors. , as we build out, , the Nano Banana, , part, you don’t have to re-input the Shopify API key, it will just pull from that workspace, ? Uttam Kumaran: , that’s our… that is already the… how we’re building it. , any what we call, , environment variable or secret management, we will… for the… probably for the proof of concept in MVP, we will just… handle that in the backend, and then as we scale this to clients, and then more users, we will create an admin panel. any of the common configuration that needs to happen at a user, client, or, , an integration level, there’ll be, , an administrative panel for. , things that, we can totally spec out, but I lump admin panel, I don’t know, , what else? Admin panel, login, , nav… Hosting, caching. Deployment, all in, , … Devops… , let’s just drive towards best practice. Surfield Thomas: , agreed. , that’s why we built, , a framework around it, a lot of the hard stuff, especially when you talk on the DevOps side. Uttam Kumaran: That’s just gonna be simplified, and then it’s really gonna be around rapid development and prototyping. Surfield Thomas: But I agree, everything that you just said, I’m hitting the nail on the head. Uttam Kumaran: that I… , we can… the other thing to look in this document is, , and this is where I… I just go a little bit overboard, but this is for CERF and Sam to think about, which is, , what the… what the endpoints you’re going to make available are. Ideally, as we start to build more things, as part of this, , Stitch platform, you don’t want to have to rewrite APIs. , for example, if you want to build something that leverages the same APIs for another type of forecasting or financial analysis tool. we don’t have to rewrite these. , that’s our hope, is that when we write these endpoints, they’re in a way where they can get reused for other products, ? this is the type of stuff that we want to get in back into Replit, because when you’re in Replit, we want the Replit prototype to also understand that these exist. Because then it will help you build the tool in a way, because we’ll have specs for each of these. , , that’s it there. I’ll let… sorry, if you guys can tell me what that stack ends up being, but we talked about that this morning. the other piece, is if you just… if we had any, , SLAs for, , data freshness, , are you guys doing anything, , same day, or is it all, . close a business day before, , what is a good place to aim for, and then what is, , where we need to be? Bobby Palmieri: , I would say, , for time being, . up, , current through yesterday, , intraday, not really needed. There’s some fringe cases of, . Black Friday or, , huge spending accounts, but for forecasting, not needed. Zach can… can hang on and speak to all of this. I’m gonna jump. I unfortunately need to go off off to war, and we’ll touch base with you guys in Slack. Samuel Roberts: , alright, thanks, Savi. zacfromson: That’s yep. , , for the forecasting, . , , the only thing I would say for, , faster refresh, and it would just be a call as needed, is for, , the actual, . marketing agents or the chatbot feature. , that… having, , more data recency on those calls is probably more critical, as people are , how are things, , how’s performance today? , I know that might be just a call that happens in real time versus, . data being pulled into the system, but I would say, , having more, , real-time polls on that feature is probably useful as people, , want to get updates on, , what we should do, or, , hey, can I get a report for the last 7 days starting today? Or, , how’s performance today? , , eventually we want to have, , things where we can give people, , Friday reports, , , Sunday through Friday, here’s how things are going, or, , , Monday update from last week, of that nature. , I don’t know how that works, and I don’t really think. Uttam Kumaran: , what we’ll do is… zacfromson: on demand? , we’ll tell you what’s possible in terms of. Uttam Kumaran: the way… the way it typically works is you have what’s called an SLA, which is, , a service level agreement. zacfromson: a minute, yep. Uttam Kumaran: , , it’s… it’s… what can… what is the minimum we can expect? we would tell, , at minimum, Shopify is, at least updated 4 hours ago. zacfromson: As long as we have those guardrails down to the team, . Uttam Kumaran: And I could, . zacfromson: list, then, , this won’t be refreshed for today, do a call for Sunday through Thursday. Don’t expect it to include, . Half Day Friday Resolves, , just… Uttam Kumaran: That’s the thing, we… that. we’ll aim to start with just end of day, and then we’ll see what is easy to get to, and then, of course, we can keep going. It’s our job to tell you what the time and effort trade-offs are, , … . the other question I have, is who… did they end up doing the Google Colab model, or was that your team, or… , any of the Python stuff? zacfromson: You’re saying from their app? Uttam Kumaran: There was just, , Python code for the forecasting , , they did it. zacfromson: For the forecasting? Is it in Replit? Uttam Kumaran: , it’s in, , Google Colab, , it’s in a Python… Notebook. Samuel Roberts: Oh my god. zacfromson: Where are you seeing that, though? I’m sorry, I’m not understanding. Uttam Kumaran: Let me find it. , , this is, I’m pretty this is the one. Have you seen this before, Zach? This may be what’s powering the spreadsheet. zacfromson: Oh, that spreadsheet that we gave you? That’s ORCA. , they… they had the… I was telling you, just to maybe refresh that, they were, , they give you that front-end interface. we. , , I can’t remember if I, , finished my lunch yesterday, issues on that, but what happened was they were, … then they started working in some Excel sheet with us. some Excel sheet, and then Bobby found all these hidden… Uttam Kumaran: Oh, great. zacfromson: this was all of their shit, and I asked you, I was , is it possible to just have an app that just, , runs Python code and pushes in the front end? It’s not really an app, and you’re , , it’s, , a half-baked product. And I was , , , they gave us their entire. Uttam Kumaran: , cool, sorry, that’s a good refresh. , then, . zacfromson: that Excel sheet, which is the Google collab, was… is Orca, and their entire product is just Python and an Excel sheet, feeding into a front end, and they gave us everything. you guys can use the whole fucking thing, as far as I’m concerned. Uttam Kumaran: , I just was , if this is a good place for us to start. zacfromson: We Orca, we think we can do it better, but, , it’s a great place to start if it’s, , again, , speed is everything for us, , I know I’m being annoying saying that, but, , we can take this shit and run with it, then I don’t see why not. , they gave it to us, let’s, , let’s… why not run with it and do something with it if you can? And we can innovate on it from there. we have a million things to build, we can build that faster and reuse what they gave us, then. , we didn’t build it, they built it, but we got it. Crazy, but . Uttam Kumaran: , cool, then let me… that’s fine, let’s go back. Are there, are there other clients that we want to test during the MVP with? I know we’ve… zacfromson: , we can… I, , I have 70 brands or something, we can… more or less, you tell me, , I want 3 brands, a small brand, a big brand, a subscription brand, , give me the parameters of what you guys are hoping for, and I can just… I can grab any three. Uttam Kumaran: , , I will. , Sam… Sorry, go ahead. zacfromson: I know you have a point there, , Angular vs. React. Uttam Kumaran: what we’re gonna do, we will… teams decided on React, Sam? zacfromson: I would… I would… Uttam Kumaran: Prefer that as . . Samuel Roberts: , it’s definitely… , Angular’s not bad, but you’re just gonna find more support in React. zacfromson: , I know enough about… , . …about this, where I’m, , I’m aligned with, with React. Samuel Roberts: , , it’s gonna be React in Next.js, which is, , the metaframework that hosts… , React is built for building the UIs, and then Next is the, . what action does the routing , it’s gonna be pretty standard stuff. zacfromson: And then one other thing, too, I know you guys created the Google app, I don’t know if I missed this, but I do have a Facebook app, I invited you guys to it. Uttam Kumaran: You did get… you did invite us. my only concern in the past. when I’ve added people, sometimes it just immediately doesn’t let me create an account. I was gonna probably let… Sam, you and Surf tell me what we need. zacfromson: I can add you guys. the business manager isn’t a big deal, even if I wanted to add your Brainforge emails or something that, we can do that. It’s, , , the access against that, it’s , I’ve already built the app, I already own it, it’s already in my business manager, if we wanted to add you guys directly there, there’s , , issue. Uttam Kumaran: We have a… we have a Brainforge business account, too, that maybe it’ll allow you to share, because I know sometimes… zacfromson: , I can share you guys, , we can share partners at the. Uttam Kumaran: I can show you as a partner. , because it’ll ask for a phone number that, and then it’ll immediately ban. zacfromson: Give me… , if you guys have a Facebook Business Manager account. your business ID, I can add you as a partner into ours, and then assign you to the app. Uttam Kumaran: , great, let me just do that. zacfromson: There might be some limitations as a partner with some changes you can make, but if I need to update things or fix things in the app, we can always do that together quickly or something as , if needed. Uttam Kumaran: Let me just… zacfromson: that and Google is the only two apps, because Shopify’s API, Klaviyo’s API, and then we just need to get the Slack app from them, just take ownership of that. those are two big pieces. Uttam Kumaran: Elka Health, I’ll log in and… Tell you what it is. , I’m in the account. Where is the ID? Oh, , got it, . , let me just send these students Slack. Samuel Roberts: , while you’re looking for that, the, the collab file, and the… Spreadsheets. Do we have… has that, , been pulled till it’s… we have it now, or is… are we still looking at theirs? Uttam Kumaran: , that’s, that’s… that’s our collab, that’s in the repo. Samuel Roberts: , just wanted to make that before we start messing with anything that it’s … Uttam Kumaran: That’s not connected to anything, . Samuel Roberts: That’s… , good, good. Just making it’s not… Not gonna get lost or something if they realize they shared it and don’t want it, . zacfromson: , I don’t think they realized, or they did. a lot of, , that collab stuff was hidden, and Bobby would just found it hidden. Able to , , crack into it, … I also don’t think that he probably assumed anyone would take it and run with it, but… Samuel Roberts: . , it’s probably not crazy, it’s just, … And there’s a lot. , . But , it’s definitely great, because , then it gets to this… this element here, is what I was thinking about. Uttam Kumaran: And then, Sam, what are you thinking about, , hosting Python? What have we… have we done anything in the past? Samuel Roberts: We have not… but it’s not gonna be crazy to do… , if we didn’t have any logic already written, I might say just do it in Node, depending on what libraries there are. Because, , Python’s great for, , data processing , but… JavaScript can be a little faster, and if we’re already running a node backend, but if we already have Python code. Uttam Kumaran: Our data folks, and me… Samuel Roberts: That’s what I was gonna say, , if we already have it and people can more easily work in it, we can set it up that it, , it will be its own API. It can probably run on the same railway. . I don’t think there should be much problem with that. I don’t think it’s worth imp… , it could be worth embedding, because even if that… then it might avoid the API, but , the top two, , are definitely, … either a separate service completely with its own API, which might be better, from just a separation of concerns, and then if people are… data folks are getting in, they know where to go. Embedding it into Node can get a little interesting, because, , then we won’t have to hit a separate API, we can just call the code, but… , , what this is gonna be is, , you have to send a data frame or something via API. Uttam Kumaran: to this Python script, it runs, and then you. The data frame, and you don’t have to store it, because the models don’t need to run, , on… they don’t necessarily need to run on command, meaning they just have to run on a schedule. the two branches. Samuel Roberts: it’s just gonna… the Python’s just… , if that’s just gonna be a schedule, then , it’s just gonna be storing the database, and we’ll just be fetching it? . Ben, it’s even easier, . If the Python’s just a… if it’s not even an API, we need to hit. Uttam Kumaran: , but the other thing is, , there are inputs into the app, , for example, when they’re deciding to forecast inputs. Those will have to get taken and passed to… the Python service. Samuel Roberts: To run the forecasts. Uttam Kumaran: does that make sense? Samuel Roberts: , a little bit of both. Uttam Kumaran: But … , it is a little bit of both. Samuel Roberts: It’s not on, , every load. . Uttam Kumaran: at the API. , in that case… Cohort dataset processing that has to happen on forecast creation, or probably on some intraday cron. Samuel Roberts: , that in that case, a separate service makes sense, because we’re not passing huge chunks of data, we’re just fetching chunks of data that have already been processed, and when we need to call it on command, it’s probably just a few parameters and then looking at the same data, that makes sense. If we’re… if we were going to be moving large chunks of data between it. Rather than using the backend, or the database, or whatever warehouse we end up with. Maybe embedding it, but based on that, , a separate service makes sense. And I’m pretty Railway can handle all that in its own little, , you could have multiple services running there pretty easily. Excuse me. Uttam Kumaran: And then, , Zach, in terms of, , the… The user flow, , these are the things that we would mention, , select brand, you’re looking at cards, you’re drinking channels, adjusting goals. And then there’s the creation of the forecast as . , I don’t think this is, . this generally, , is a bunch of the core flows. Once we have , the MVP product, it’ll be clear, , if we want to add more… , more flows for the user. Samuel Roberts: I manage a meeting, . zacfromson: And my other question, Zach, is, , how important is, , the… Uttam Kumaran: , user measurement, meaning understanding how many people are using it, how often they’re using it, , is that, , is that something to try to nail down and show early on, or is that something we can… we can leave to after MVP? zacfromson: we can… for forecasting, we can leave that for after MVP. there’s, , other things we’re going to want to build in the OS that are more important, , someone needs, , I don’t think someone needs, … they either created a forecast or they didn’t, and, , that’s a simpler cadence, but, , for example, , that Nana Banana tool, , we’re gonna rack up probably, , a Gino in credits for the month, , my team’s going fucking wild with it, things that, or, , the stitch, , the… the metrics against, , the chatbot, that are, , more frequent usage, we’re gonna want more analytics on. since this is gonna be, , once… done once, and then maybe just, , tracked and updated monthly, … aren’t as important, quite frankly. It’s , people… are people doing it and using it? If it can get built in, I don’t think having data against it’s a poor thing, but, I’d rather build the front-end product and have analytics on the back end for the product, especially if the product’s working first than worry, and then slow you guys down worrying about, , this was used two times today, , I don’t really know what I’m gonna do with that for that specific product. It’s probably not as important. Samuel Roberts: , , we had added post hog as, , part of this whole framework we were setting up, which is pretty easy, just drops in. you can add… you can do way more you’re saying, but it’ll give some analytics without us even doing anything, hopefully that’s pretty… painless, but… Uttam Kumaran: And then for the chat interface, we’re seeing it, Zach, is, , being available, , anywhere throughout the application within a client. , for example, you could… you should be able to chat with the forecast. In addition to chatting… because in addition to chatting over orders, or chatting generally with the client, is that, , how you’re thinking about chat? Because I’m just going to have the team just, , have chat available, and we’ll… we’ll be able to think about what data to bring in. But ideally, I see it as, , you’re either chatting at a general level about a client, or you’re chatting about a module, ? , in this case. zacfromson: , , to either chat… , … that, , I would… I would say that’s the case, . , I want to be able to chat about ad accounts, Shopify. Klaviyo accounts, and then I want to be able to chat about specific apps that we build within here, to be able to, , pull data from the forecast and chat about the forecast. if I’m doing a weekly report for a client, , hey, , give them a weekly report, , and update them, , how we’re pacing towards the forecast, and, , being able to pull from that would be… Awesome for chat. Uttam Kumaran: And then, in terms of, , having, , prompts that run, and for example, send a summary of , tell me what’s happened in the ad account since yesterday. For those things that you want your team members to be able to, , configure and create, is that something that, , you have a list of, , some of those. zacfromson: me and Bobby will likely engineer those, or work with the team to engineer those, but I would love to be able to set them to be able to deliver to the team, maybe in our internal Slack channels, on a preset cadence. , , if I want to give a client a Monday report, I’d love for that Monday report to be, . in Slack, delivered at 9am, the team can come on, review it, copy and paste it, and then send it to my client in Slack. I don’t want anything to auto-send to any of my clients in Slack, just in case there’s an issue, or if performance is bad, we probably need to massage the way we’re presenting to them. , this… things are bad, , but here’s what we’re doing, here’s how we’re fixing it, here’s why you don’t need to be worried about it. , , being able to get those updates in our Slack, , Monday report Friday reports, daily updates, , we already have some of the pacing stuff that will get updated and pushed into Slack, but I do think, . Having some of this automated. to the team, and be able to set that as a recurring prompt makes a lot of sense. the biggest thing is, , once my team starts using it, they might come up with some prompts, but the biggest thing me and Bobby have Seen and heard from… our team, and I haven’t heard from our team, but we’ve just seen, is that, , we need to get them up and running and set up for the process. We can’t be , here’s the tool, you guys figure out the process. that we’ll… , I would love to configure them and be able to auto-deploy them into Slack, or, , into Stitch, and they can go in and grab them onto Stitch, but , , for me, the biggest thing is that we can preset them, delivering them in Slack is our lifeblood, if, , we can set those up, , Triple Whale for their agents, , they can… they email you those, , reports that you want, and you can pick the cadence, which days, how often. Uttam Kumaran: , that’s one thing, Sam, as a broader thing when we talk about the platform, we will carve out… , I’m gonna carve out chat As, , another… Set of requirements. , Sam, what we can do initially is just put in, probably, Copilot kit, . And you can just, , make that this, Scaffolding is there. . But . This is just going to be similar to our product, where it needs. You could chat, and there’d be some configuration. Samuel Roberts: , I don’t know. Uttam Kumaran: you can chat with the client, and then you can also chat. And then the other thing is, , we need a way to orchestrate, Prompts, , and then we can have… , let’s consider doing length views to get, , prompt management. Do you want to show. zacfromson: You mean, , something to, , help us engineer the prompts? Uttam Kumaran: We stored them. zacfromson: , , because now, , there was some way in, , the Stitch chatbot that was, , you could store prompts, it was only in the back end, and there was way to, , set cadence or put them into Slack, it was just, , a how big a feature they threw in there, and, , it’s not really usable for us, and I don’t want to have to come to you guys, , can you please add , it doesn’t… that’s not really… anyone’s time. Samuel Roberts: , there’s two main ways we could go about that, which is… or there’s three. There’s one where it’s in the backend. we change them, that’s, , which is fine for, , testing and initial development. The other way is that we build a little system that lets you guys change them and store them in a database. The better one is Langfuse, which is that, but has versioning all built in, if something changes and it’s not working anymore, you have. We don’t have to rebuild all of. Uttam Kumaran: And you can test, , , you can tweak. what it looks , and then, , edit, and then be , cool, it’s done. , cool. Samuel Roberts: We’ve been using it for a few projects, and it’s nice. And it’s user-friendly, it’s not, , not going into the code , … zacfromson: , that sounds great. the one other just note on, , how that needs to be built is that, , that needs to be done somewhere on an admin level, it can be deployed across every single workspace, because we’re probably going to run the same prompts across workspaces. If there… , I can’t imagine we’re not… we’re gonna have, , custom prompts against workspaces, or maybe in the workspace there’s a way to customize it, but, . It’s just, , again, , it needs to be scalable across… 60, and then 70, and then 100, , as the workspaces grow, I can’t be adding them on a per workspace basis, it’s not gonna… Samuel Roberts: , that makes sense. , it would be probably, , a master prompt for everyone. We could probably add, , a… and this might be something that’s more something we just store that’s, , additional contacts per client or something. zacfromson: , cool, that sounds great. Samuel Roberts: That gets to another question I was gonna ask about scale of this. , you’re mentioning adding more brands . How many, , how big is the team now? , what are we talking, , users that would be on here? zacfromson: , our team is, , 65 people now. Working across, , 70, 75 brands. . And that’s, , hopefully just gonna keep growing, , I’m hoping to, , Add on, , by the end of next year, maybe another 15 brands, another 15 people, or some. I don’t really know what my exact forecast is, but it’s… It’s ideally up. Samuel Roberts: , totally, totally. , I just wasn’t , because, , , there’s… I come from, , , building, , a SaaS product, and you’re expecting, , thousands of users , but the other side, when we’re building tooling for companies, is we can make different trade-offs depending on… zacfromson: Hundreds is probably more realistic. Samuel Roberts: , , that’s all I wanted to make I wasn’t. zacfromson: , between that and clients, , most of the time on the client side, when we do get to adding clients to this, , we typically have, . One to three stakeholders. Samuel Roberts: Fair enough. zacfromson: brand side. Some brands have more stakeholders, but it’s typically, , one or two people that are typically, , our brand stakeholders. , on average, across 70 brands, it’s, , another, . let’s call it 140 people, plus the 60MI team, we’re looking at, , 200 people, maybe. Today, , even if it grows, we’re, , only gonna be at, , 300, 500. Samuel Roberts: , , that’s… I just wanted… it was a sanity check, because I assumed we weren’t talking crazy numbers. zacfromson: , totally. another question there… , that’s all I had to present today. I’m gonna make those edits. Uttam Kumaran: I’m gonna put together something around chat, specifically. , Sam, our hope internally is that we have the… whatever we can get hosted and deployed on Railway by end of next week. I did, Zach, put together a doc of questions for the other team. , can we get a meeting booked on Monday, by chance? zacfromson: , I’m gonna call Bobby after this, just to get… just to… we haven’t told the other team what’s going on, and they keep hitting us up, , what’s up, what’s up, and Bobby? Samuel Roberts: Oh my goodness. zacfromson: I’ll get back to you. , we … we do want to, , just set… we don’t… I don’t want to blindside them on the call and, , hop on and be , hey guys, we’re done. We’ve paid them everything that they’re owed at this point, but, , the way we had started this with them was, , a little… a little muddy, in the sense where it was, , some code for equity, in the sense of, , we’re gonna build a product with them. we’re not gonna do that, I’m in the sense where it’s , you can just keep whatever we built, I don’t really care, I’ll just assure all my API keys, and just… we need to, , work on that breakup with them, transparently. But that’s , , the only, , weird holdup there on this, but, . It’s… it’s a small percentage for, , a little discount, but, , more or less, , if they want to own this, . there’s not much they really did here that’s that usable or that good, if they want to keep it, they can. But me and Bobby just need to, , let them know, do a breakup, and then get you guys on a call, I can try for Monday, but let me see if Bobby can orchestrate a conversation with them today, or if it’s Monday, but I want to keep you guys moving ASAP, I just need to let Bobby… Uttam Kumaran: , we just want to walk… we just want to walk through just to make we have all the code. , there’s… we’re still a little suspect that we haven’t… don’t have everything. Samuel Roberts: , we’ll go side-by-side, have them pull it up. Uttam Kumaran: Check to just… we have it pulled up on our side, and we can just make we have all the necessary endpoints before being , , we’re good to go. zacfromson: Cool. , let me, I’ll talk… I’ll call Bobby after this, I need to catch up with him anyway, I’ll just flag, , hey, when can you send them a note to, , let them know what’s going on, get an amicable breakup with them, and make they’re happy, we’re happy, and they’re taken care of, just we can end on good terms, then I can get you guys in a call with them, but hopefully that can be ASAP. let me just… . I also invited you guys to Business Manager. I dropped a screenshot in Slack of the access you guys have. As a partner, you’re, , limited with a little bit of access, if there’s something you guys can’t do or can’t see as a result, I might have to do it. Happy to hop on, , a quick ad hoc call if something needs to get updated and edited in there, but , you guys have as much access as Facebook will let me give you as partner. Uttam Kumaran: And then my last question is, what are the types… what are the… what’s the ICP that you guys work for? We do a lot of work with e-comm and CPG. zacfromson: , , we’re fairly agnostic, in that sense. , we’re not, , verticalized in just, , one… we don’t just work with, , fashion and beauty brands or something that. We have a pretty good gamut. I’d say, , probably skincare and beauty is heavy for us, and, , supplementation, wellness is pretty heavy. We have a decent amount of CPG food. We have a bunch of, , Arrhenius… type of products, , here and there. But, , those are probably our heavy concentrations. Most of our… we have a large concentration in, I’d say, , the SMB space, , 1 to 10 mil, and then, , our other larger concentration is, , mid-market. It’s probably, . a decent half of the business as . What’s mid-market for me is, , maybe, , 20 to 50. We have a small amount of brands that are doing nine figures, a Ruggable or, , a Bauer Hockey, where they’re doing, , 100 million, a few hundred. Uttam Kumaran: my business partner used to work at Ruggable, . zacfromson: Oh, really? . Uttam Kumaran: He used to lead, forecasting and analytics there. zacfromson: Oh, hell , cool, , we’re just getting started with them on, on, just retention. . Uttam Kumaran: Do who you’re working with there? Annie is… she’s newer there. . zacfromson: , the director of retention, and then, , this girl who runs the campaign stuff, her name’s Ashley Merchant, and then they’ve… this kid, Oscar, and then they’ve brought on some new team members, but it’s… seemingly most of their team is, , fairly new. Ashley’s been there for a while, but outside of that, that’s going on, but… But , , , we have some bigger brands, some smaller brands, but I’d say, , for the most part, , , a lot of legacy, , the 1 to 10 space, and then, , that 20 to 50 is , … Uttam Kumaran: And is it mostly, , , running ad budgets, executing creative? , where do you guys… zacfromson: ton of creative, that’s, , the biggest thing, for us, because it’s just, , there’s not … there’s only much you can do in the ad accounts today. , good forecasting, good reporting, good structure, , all that stuff is important in Meta. Ton of Google Ads as , a lot of creative, UGC sourcing, we do a little, , Shopify dev, , landing pages and CRO stuff. , retail support for, . buying on Instacart, Critio, and, , some of those off channels, TikTok, things that. Then the other half is retention, which is really just, , full-on Klaviyo management, subscription development, cohort building, and then just a ton of tech support on… there’s just many apps on the retention side for Shopify and Klaviyo, just managing, deploying. that full ecosystem. Uttam Kumaran: Is it all performance-based, or is, , mix? zacfromson: , , we’re… we… we don’t work on terms, , the way we get paid isn’t necessarily, , on pure performance, but we do have, , base rates with, , some carriers in most factors. certain goals or percentage of spend if we scale, things that, are in play and in place. And then we’re trying to acquire an Amazon agency. , trying to get to, , marketplace is , , the next big frontier, Amazon, Walmart, Target, all that type of stuff, Nordstrom. Instacart, just, , being in marketplace support. just really building out, , a marketplace wing, which is heavy Amazon, but a lot of our brands are there. It’s, , our most asked for. Uttam Kumaran: , we have a couple of people that are, , they’re doing Target, Walmart. And they’re using SPINS data for a lot of POS. zacfromson: That’s tough. Uttam Kumaran: But , , I just would love to, , recommend you guys to a couple folks if they ask us for this type of stuff, because we are… we do a lot of AI, we do a lot of data, but we also then immediately get asked, . , it’s… we always are , , it’s clear this part, your thing sucks, and I’m , but we don’t do that work. zacfromson: , , we should get a little more of a lowdown, too, , what you guys are doing for D2C brands at some point as , because , . Uttam Kumaran: Take care. zacfromson: I’m there’s vice versa, where… We can certainly help each other here. we got connected through, , , Sawyer had recommended. , that’s how this whole space works, it’s all just… It’s all referral. , , you can do some sales and shit that, but at the end of the day, it’s , who , and referrals do good work, and you build. Uttam Kumaran: , perfect. Alright, we’ll get back to you, and then let me know about, , meeting the other team whenever you get a chance. zacfromson: Will do. Alright, thanks guys. Alright, bye now.