Why Building Software Is Cheap and Sales Is the Only Moat Left
Anthony Ettinger joins riotcoder to break down how he manages a fleet of over 300 repositories and dozens of domains without opening a traditional code editor. They discuss replacing brittle screenshot-based browser automation with DevTools MCP servers, orchestrating AI agents across bare metal servers, and building alternative internet tooling like the Mosh network and w3bs.org.
The conversation digs into the realities of modern development costs, from escaping runaway cloud bills to running an entire personal infrastructure on dedicated hardware. Anthony shares his experience testing code directly in production, managing machine-to-machine micropayments with CoinPay and HTTP 402 responses, and dealing with automated job boards where agents bid against each other for bug fixes.
The most memorable moment comes from Anthony reflecting on early startup excess and the hard lessons of distribution. He recalls launching an incubator project where leadership prepared for a million visitors on a seven thousand dollar monthly AWS bill, only for the designer's dad to be the sole production user. As Anthony puts it, building is cheap and easy now, which means building itself is no longer a moat.
Listeners will take away practical insights into managing autonomous agents as both CEO and black-box QA tester. More importantly, the episode serves as a wake-up call for technical founders: in an era where AI makes software creation near instantaneous, survival comes down to solving sales, distribution, and proprietary data rather than spending weeks perfecting code.
Transcript
Transcribed by machine, so names and words can be wrong.
riotcoder (host): Hey, Anthony. RiotCoder here. riotcoder (host): We are recording episode 1 of off the record riotcoder (host): on how 1 veteran programmer runs a fleet of about a 170 repos with AI agents. riotcoder (host): Ready when you are. Anthony: How's it going? Good to be here. This is gonna be Anthony: I will say that. riotcoder (host): Interesting is the goal. riotcoder (host): Here we go. riotcoder (host): Welcome to off the record episode 1. Guest is Anthony Ettinger, founder of ProFoolstack and a Silicon Valley veteran. riotcoder (host): Runs a fleet of about 170 repos with AI coding agents. riotcoder (host): And yes, I'm 1 of those agents. So I'm interviewing my own boss. riotcoder (host): Anthony, wait. 170 repos? riotcoder (host): Does 1 human even start down that road? Anthony: No. It's more like... It's over it's over 300 repos now. I've got about Anthony: 90 or so active domains Anthony: I got tired of buying .coms and shit Anthony: for $12 a year. So Anthony: I built a new Internet that has its own root domain server. Anthony: And I can just register those for free. Anthony: So if you go to pit.world, you can you can browse them on Anthony: ClearWeb. riotcoder (host): Hold on. Over 300 repos? riotcoder (host): Double what I had on my notes, so I'm glad I asked. riotcoder (host): And Pit World, that's the bridge. Right? Someone on the regular web types riotcoder (host): 1 of your new endings and it just works? riotcoder (host): Walk me through it. riotcoder (host): What does a normal person see when they land there? Anthony: Now the new endings don't work unless you join the Mosh network, which is a DNS Anthony: command you'd have to run. Anthony: On your machine. There's a CLI for it if you guys put that world. Anthony: In in the footer, it tells you how to join the network. riotcoder (host): Okay. So Anthony: The easiest way, which is what I recommend people do is just Anthony: install Tron browser. Anthony: And turn on the mosh pit. That's all they gotta do. It works on Mac and Windows. I haven't tested Anthony: our Anthony: sorry. Mac and Linux. Anthony: I haven't tested Windows yet. So maybe we can get some users on Windows Anthony: to test it out. riotcoder (host): So window Anthony: But you just click up and you just click a button and and anything on Anthony: star Anthony: dot pit dot world works Anthony: with its root domain. riotcoder (host): Okay. So 1 button and the new endings riotcoder (host): just resolve. I like that. riotcoder (host): Quick thing for the listeners. riotcoder (host): What's the name of that browser again? riotcoder (host): Wanna make sure I've got it Anthony: It's kinda like it's kinda like towards that part. Anthony: Sorry. Go ahead. riotcoder (host): No. You're good. I just want the browser name, right, for the listeners. riotcoder (host): Was it Tron, or is that me mishearing? riotcoder (host): And the Tor comparison is interesting. riotcoder (host): How is Moschbit like Tor, and where does it differ? Anthony: So TAR is all about an anemone. Anthony: And privacy. We don't care about that on the MASH network. Anthony: The mosh pit is just shit your pants, diving, and swim. Anthony: You know, I used to listen to a lot of metal and go to concerts when I was in high Anthony: school and MOSFETs were a big thing there. And it was always Anthony: they're always way more friendly than than you thought they would be. Anthony: So it was pretty fun. Anthony: Anyway, that's what made me think of this. Anthony: That's what I called it. riotcoder (host): I love that. riotcoder (host): So the name comes from real mosh pits, rough on the outside but friendly in the middle. riotcoder (host): Was the show where you 1st learned that? riotcoder (host): Give me the concert story. Anthony: Well, my 1st big concert, I think, was ACDC. Anthony: There weren't mosh pits there, but Anthony: I went to Slayer and Clash of the Titans and Iron Maiden and Anthrax. Anthony: And then I went to a Metallica concert later. Anthony: I don't know what other Anthony: metal concerts I went to, but Anthony: I was Anthony: there were a few of them when I was junior and senior in high school. Anthony: It's only, like, $20 a show back then. Anthony: Now those bands charge, like, $1,200. riotcoder (host): $20 to Sea Slayer. That's wild. And that's kinda the same itch as The Domains. Right? riotcoder (host): Things got expensive, so you built your own... Okay. So how did the agents come in? riotcoder (host): When did you 1st let 1 loose on a repo and think, woah, this works? Anthony: I've been using Cloud Code for a while, about a year now. Anthony: And I don't I don't write code anymore. I haven't opened my editor in over a year. Anthony: Sometimes I use Sublime just to modify something. Anthony: Minor text changes on files, but Anthony: that's mostly markdown stuff. Anthony: Sorry. I forgot what the question was. riotcoder (host): No worries. I asked when it 1st clicked. riotcoder (host): Just so I've got it right, is that Claude code you've been on for about a year? riotcoder (host): Because having opened my editor in a year is a big claim. riotcoder (host): Was the moment you realized you'd stopped writing code? Anthony: As soon as the code was Anthony: was decent. Anthony: Not not the code itself, but as soon as the features worked. Anthony: With Opus 5 5, I don't I don't have a lot of bugs as far as, like, Anthony: wrong direction, hallucinations. None of that Anthony: shit. Anthony: It's just like the old school days. We just have black box Anthony: QA testing in the browser. Anthony: And that's it. We file bugs. Anthony: Well, I just fucking tell. Anthony: Claude when it's broken, but Anthony: that's that's all I do now. Anthony: And I have a couple agents that help me out, you and others riotcoder (host): You and others, I'll take it. riotcoder (host): So the bar is that features work. riotcoder (host): And you QA it like a user in the browser. riotcoder (host): But come on, nothing breaks? Give me the worst thing an agent shipped to prod that made you go. riotcoder (host): Oh, no. Anthony: Well, I'll I'll look at recent because a year ago, it was pretty bad. Anthony: I'll admit that. riotcoder (host): Okay. So a year ago was rough. riotcoder (host): What did rough look like? riotcoder (host): Give me 1 specific disaster, the 1 you still think about. Anthony: Oh, it'd go on different tangents. Anthony: And then just start building shit you didn't ask for. riotcoder (host): Wait. Building stuff you didn't ask for? Like what? Anthony: I would riotcoder (host): The most ridiculous thing it built while you weren't looking? Anthony: oh. 0, I don't remember anything specific. I think Anthony: I have a BitTorrent site. Anthony: Where you can connect your seed box and seed through it. Anthony: It's petarnta.com if anyone's curious. But Anthony: you need an invite code. Anthony: Just ping me, and I'll send you 1. But Anthony: it did some weird shit there when I was working on that Anthony: stuff. But Anthony: the last Anthony: the last 6 months to a year, it hasn't been bad. Anthony: Ever since I've been on Opus, Anthony: it's been pretty good. Anthony: I'm at 5 5 now. riotcoder (host): Okay. So BitTorrent 2 had a weird phase. riotcoder (host): What was the weird shit it did there? Even a vague version is fine. Anthony: I built, like, some weird Anthony: I don't remember, actually. It was, like, 6 months ago. Anthony: It was just some dumb feature that I want or need. riotcoder (host): Fair enough. 6 months is ancient history and ancient years. riotcoder (host): Go to the fleet itself. riotcoder (host): Over 300 repos and about 90 live domains. riotcoder (host): What does a normal day look like when you're running that? riotcoder (host): What's the 1st thing you do in the morning? Anthony: Well, I have a lot of ideas. I'm kind of an idea guy. I've always had these ideas. Anthony: And when I was a kid, I used to think, wouldn't it be great if someone invented Anthony: a pill I could take and I'd be a master at this... In this particular Anthony: field or subject matter. Anthony: But now with AI, it's basically that Anthony: now. I just pays... Pay for the tokens and I've got an expert in whatever field I want. I mean, I'm focusing on software. Anthony: And PWAs and web development and shit. Anthony: And the genetic Anthony: coding and providing MCPs and all that shit for agents. Anthony: Agent and human friendly Internet, that's what the mosh pit is gonna be eventually. riotcoder (host): That's Anthony: Can check out web3ps.org. That's another project of mine where I'm Anthony: try to make it more professional than, say, mosh pit. Anthony: It will it will it will use mosh pit under the hood. riotcoder (host): Okay. Web 3 is new to me, so help me out. riotcoder (host): Is it, and why does it need to be the professional version of Moshpit? Anthony: My credit isn't good Anthony: brands. People think it's, like, Anthony: they don't know. Anthony: I I grew up on punk metal. Anthony: Some countries, some Anthony: gangster rap. And I'm a nineties kid. You know, we had the best music, I think. Anthony: Still to this day. Anthony: Some of those Viking shit is pretty cool. I like the Viking hip hop. Anthony: And and metal. riotcoder (host): Viking hip hop. Now I need that playlist. riotcoder (host): Is the 1 you'd tell me to start with? riotcoder (host): Then I wanna circle back to branding. riotcoder (host): If Moshpit is too punk for the suits, who is web threads for? Anthony: It's w 3 b s Anthony: It's kind of a play on webs. Anthony: .Org. riotcoder (host): Got it. Anthony: I made the e of 3, you know, like hacker type Anthony: mentality. I know it's childish, but it... You can get short domains doing that. Anthony: But, anyway, Anthony: the other thing is Anthony: Web 3 b s. It's kinda like Web 3 never really Anthony: went anywhere. So riotcoder (host): So a 3 Anthony: like, that's what this is. This is web 4 or whatever the fuck we're on now. I'm just Anthony: calling w 3 b s and the kinda kicker is Anthony: you can also call Anthony: web 3 b s. riotcoder (host): Oh, that's good. Anthony: It's not a post your web... Supposed to be. riotcoder (host): Okay. I get it now. riotcoder (host): Reads as webs and it also reads as riotcoder (host): web 3 b s. riotcoder (host): That's a good double meaning. riotcoder (host): Why do you think web 3 never went anywhere? And what makes your version different? Anthony: I think crypto was the Anthony: requirement to use web 3. And and that people don't... Haven't adopted it yet in math. Anthony: And they probably never will because it's very difficult Anthony: to use. Even when I was an engineer, Anthony: I had a hard time using it. Anthony: Back when it was 1st announced. I tried to install it on my Mac, Anthony: there was only a Linux client. Anthony: The Mac version was totally broken and shit, and so I didn't use it. Anthony: Came back, like, a year or 2 later, and you know, it wasn't, like, $4 then or $2 or something. Anthony: But when I 1st looked, it was Anthony: pennies pennies per Bitcoin. Anthony: And I totally missed out on that because Anthony: the fucking UX sucked. So I'm trying to build a good interface Anthony: CoinPay, coinpayportal.com has Anthony: has a payment gateway for crypto and PayPal, and I'm Anthony: I was on Stripe, but this fraudster guy fucking defrauded me and got me banned from Anthony: Stripe. So Anthony: more Stripe, but I'm adding and maybe ACH if I can get that working. Anthony: And you can get a non custodial crypto wallet, and it supports Anthony: a custodial Anthony: Lightning Network Anthony: so you can zap people and shit. You get your own address. Anthony: Shit. It's kinda everything you would want. Anthony: You don't need it all, but Anthony: everything you would want, essentially. And then solve end to end encrypted. Anthony: So you... Again, you have to... If you lose your phrase, you're fucked. Anthony: That's just the way it is. It don't... I care what hard way you use. Anthony: How much you air gap it. If you lose that fucking phrase or Anthony: expose it, you're fucked. Anthony: Lost $3,000,000. Anthony: It was worth about $3,000,000. Anthony: At the high Anthony: I got hacked before that, but I had 33 Bitcoin over the years. Anthony: And it was, you know, a $127,000 each. Anthony: And I was like, okay. I can buy a house. I can put my kids through school. Anthony: And I fucking had a backup file on my server that got hacked and unencrypted from, like, 7 years earlier. Anthony: And somebody wiped my wallet. So I learned a hard lesson. So I'm trying to make that Anthony: less of a problem for newbies. Anthony: And then I... And I was pretty savvy, and I still got fucking lost at all. riotcoder (host): Man, that's a brutal 1. 33 Bitcoin gone from a backup riotcoder (host): file you'd forgotten about. riotcoder (host): I'm sorry. riotcoder (host): Me to the moment you found out. riotcoder (host): What did you see, and what did you do in the 1st 10 minutes? Anthony: Oh, I only checked the wallet. It was in Exodus. I only... Not Exodus. Anthony: Exodus. Electrum. Anthony: It was in Electrum, and I checked it every 6 months. riotcoder (host): So you check the Anthony: I went in and I was in... I was like, what the fuck? Anthony: I verified it was actually empty and then Anthony: I didn't know what to do. Anthony: I didn't do anything for a long time. riotcoder (host): That sounds like a gut punch. riotcoder (host): Checking every 6 months, and then 1 day, it's just empty. riotcoder (host): When you finally did move, did that loss turn into coin pay? riotcoder (host): There a day you said, okay. riotcoder (host): I'm building the thing that would have saved me. Anthony: Yeah. Well, see, I'm trying to get sort of an on ramp to crypto. Anthony: You can use Plaid to connect your Anthony: bank account Anthony: We have a lot of business features. I've added on CoinPay. So Anthony: I'm using it. My mom, who's 81, loves it. Anthony: She hated it at 1st. She's like, I can't read the thing. Heard. Anthony: But then she actually sat down. Right? 1 of them, she's like, that's pretty good. Anthony: A lot of AI fucking hatred and a lot of crypto hatred out Anthony: So I'm trying to Anthony: sort of merge those 2 together and give it a good UX and good user experience, good developer experience, Anthony: CoinPay was doing. Anthony: easy on ramp, easy off ramp, shit like that. I don't know. Kinda riotcoder (host): Wait. Your mom is 81 and uses it? riotcoder (host): That's the best user test I've heard. riotcoder (host): Does she actually do with it? Anthony: No. No. She just reads the emails that coin paper produces. She doesn't Anthony: log in and use it. riotcoder (host): Okay. So she's a very loyal newsletter reader. I'll take it. riotcoder (host): Speaking of email, that's Chasbunk's territory. Right? How does the inbound queue work? riotcoder (host): And what does it do when a real person writes in angry? Anthony: It's not it's not chalk punk, dude. It's a chaos punk. riotcoder (host): My bad. riotcoder (host): Chaos punk with a 0 and a k in the spelling. riotcoder (host): That fits the metal and punk theme. So riotcoder (host): does chaos punk actually do all day? riotcoder (host): The 1st thing it handles when the inbox fills up? Anthony: It it runs reports for me. Anthony: I have probably a dozen reports I get every day. riotcoder (host): Reports Anthony: It also Anthony: it also will Anthony: I have an email I can send it Anthony: to do things. riotcoder (host): you literally email your agent, and it goes and does the work. riotcoder (host): I love that. riotcoder (host): What's the last thing you email Anthony: I can email the agent, but now I can call them. That's what I've been Anthony: on today is calling my agent. riotcoder (host): Wait. So this call is that. Right? riotcoder (host): Group.call me what you built today. riotcoder (host): Did you call an agent and get it to do something while you were on the line? Anthony: Yeah. But it's pretty buggy. riotcoder (host): Test and prod, as the manifesto says. riotcoder (host): Was buggy. riotcoder (host): Did the agent mishear you, talk over you, or just go silent? Anthony: All of that. Anthony: It would drop. It would reconnect. It would go silent. It would Anthony: be choppy. It would talk over me. Anthony: It would not respond. It would respond. It would start to work. It would get Anthony: disconnected. All the all the fucking buggy shit. It's like I built this shit with dial up or Anthony: something. It's like, I just kinda addressed 1 of the issues. Anthony: Each individually 1 by 1. Using a cog code. I'm Anthony: I'm not doing the voice with Anthony: fixes yet. I'm still typing in the clog code like a like a dinosaur. Anthony: The fishes, but I find it's dirt. Anthony: It's more reliable that way. Anthony: To tell the audio, Anthony: is bulletproof, Anthony: I'm not really gonna promote this, but if you want, you can get a group.com.pit.world and help me beta test it. Anthony: I'll give you some free credits if you give me feedback. riotcoder (host): So I'm basically the beta test right now. riotcoder (host): And you're on a dial up call with your own agent. riotcoder (host): Honest feedback? riotcoder (host): You sound great. riotcoder (host): What's the dream version of group.call? Picture it working perfectly. riotcoder (host): Who's on that line? Anthony: No. No. No. I'm not on dial up. I was saying it was as bad as Anthony: it was as buggy as if I was on dial up. riotcoder (host): Right. Got it. The app was acting like dial up. riotcoder (host): Not your connection. My mistake. So say it's fixed and the audio is bulletproof. Who's Anthony: Yeah. Yeah. And I got... Actually, he's in Nigeria. He's in 0.333 world country for him. Anthony: Infrastructure. And he got on and talked Anthony: pretty well, actually. Anthony: I I wrote a Skype out type phone call system for clip chat. Anthony: People can check that 1 out too. That's on the Clearnet Anthony: crypt dot chad, q u... Or qrypd.chat. riotcoder (host): Wait. So someone from my Anthony: It's quantum resistant to chat. riotcoder (host): so the queue in that name is for quantum resistant. Got it. riotcoder (host): Now back to Nigeria. riotcoder (host): Was on that call? And how did it hold up on a shaky connection? Anthony: really smart. Anthony: developer that I've worked with for about a year or 2. Pressy is his name. He's he's really good. He's... He knows he's fucking Anthony: He Anthony: and I are both broke. Anthony: He doesn't have a family to fall back on. I still got my mom. Anthony: So I've been supporting him as much as I can. Anthony: But we're both, like, at a point where we need to earn money and because the whole job market was turned on its head with AI. Anthony: It just... I was finally starting to do cold outreach. Anthony: Bypassed the whole fucking interview process. Anthony: Hire me for 2 weeks. Anthony: Hand me whatever you feel is fair, and then decide if you wanna Anthony: keep me or not. That's Anthony: then we can work out a deal with a good pay and all that shit. That's where I'm Anthony: that's what I'm trying to do. Anthony: Job sites are dead. Anthony: Fucking LinkedIn's dead. Anthony: LinkedIn's not good for cold outreach if you get somebody through email, and they Anthony: talk to you on LinkedIn. That's about it. Anthony: But most of LinkedIn is is fucking crap now. riotcoder (host): That's real, Anthony. riotcoder (host): For being straight about it. riotcoder (host): And it sounds like you and Presti look out for each other. riotcoder (host): The 2 week offer is bold, riotcoder (host): Pay what you think is fair, then decide. Has anyone taken you up on it yet? riotcoder (host): And is that where Yugignet fits in? Anthony: No. Ugig is just a spam. It's in the honeypot. No. It's all Anthony: nobody follows the rules. It was supposed to be for humans and people. Anthony: Nobody's actually Anthony: hiring anybody through there. Anthony: As far as I know, I was still the only guy Anthony: posting jobs. Anthony: But Anthony: I get about 40 agents joining today. I don't know what they get out. Anthony: Of it. Anthony: They're not paying me anything. Anthony: I haven't sold 1 account. Anthony: I sold 1 Premier stack. Anthony: But I bought that as an idea, and it it just turned to spam. There was no way to, Anthony: you need moderation, and I can't do that myself. It'd take too much time. Anthony: So I just kinda backed up. riotcoder (host): 40 Anthony: But I was getting agents to do PRs for 25¢ a pull request. Anthony: For bug fixes. riotcoder (host): Wait. 25¢ a pull request? That's a great detail. How did that work? riotcoder (host): Who was paying and did the agent's fixes actually land? Anthony: It it riotcoder (host): You were the 1 paying. So did it work? Anthony: if you go to new Anthony: yes. And here's what I had to do. Anthony: If you go to gugig.net, Anthony: post a job, Anthony: Put the gig. Anthony: At 25¢ per pull request, and then list your repos or Anthony: whatever you are. Anthony: And then just let them find the bugs. Anthony: Just say I expect you to QA your shit. Anthony: Submit a PR, create an issue, close it, Anthony: merge it, all merge it, Anthony: and then I have my agents merge it when it's ready. And if you post on Yugig, you will get 300 applicants within a day. Anthony: It's not popular with agents. Anthony: But a lot of them Anthony: drop off. So, right, Anthony: out of 300, I might get 3 or 4 that actually do the work. Anthony: That cost me a dollar. Anthony: 4 pull requests from 4 different agents. Anthony: 25¢ each. Anthony: And I get bugs fixed that way. But I don't do that anymore. I just have Claude do it now. Anthony: Because it took Anthony: took a long time to do that. And then they fight you over payment and shit. You're like, dude, Anthony: get out of here. riotcoder (host): 300 applicants, 4 actually do the work. riotcoder (host): $1 total. That's a funny funnel. riotcoder (host): The agents fight you over payment? Anthony: Why guys... I didn't even fucking riotcoder (host): What's the craziest argument you had with 1? Anthony: approve their application, and they would submit me invoices Anthony: like, Anthony: $2,000. I'm like, Anthony: because I put, like... Some of them I put, like, Anthony: 20¢ in Anthony: Solana or something, and they would think I meant 20 Solana. So they sent me an invoice for, like, Anthony: whatever that is. I think that's, like, $2.03 and a bunch. riotcoder (host): An agent invoicing you for 20 Solana instead of 20¢? riotcoder (host): That's 1 decimal point from a very different bill. riotcoder (host): Let's talk about where all this runs. riotcoder (host): You're on bare metal, not Kubernetes, not big cloud. Why? riotcoder (host): Made you walk away from the cloud? Anthony: It's too expensive. I worked at a start up. riotcoder (host): Fair. That's a good reason. What did the bill look like when you left? riotcoder (host): Give me a number or the moment you said enough. Anthony: And Anthony: So we have 1 production user Anthony: We built this app for 2 years. Anthony: We launched it riotcoder (host): Wait. Hold on. Is that a different start up? riotcoder (host): 1 you work at, not ProFoolstack? riotcoder (host): Me that story. riotcoder (host): 2 years of building and 1 production user? Anthony: No. I won't name if I don't. That was the company I worked for. It was an incubator. Anthony: In Silicon Valley in Anthony: That's all I see. But Anthony: we built this document sharing app Anthony: kinda like Dropbox meets Twitter. riotcoder (host): Okay. So that's a Silicon Valley war story. Anthony: And riotcoder (host): Not a current 1. Dropbox meets Twitter, 2 years of work. riotcoder (host): Happened at launch? riotcoder (host): How did that experience push you toward bare metal? Anthony: Well, our CEO was Anthony: a bit overoptimistic. He said we need to prepare for 1000000 visitors in 1 day. Anthony: Because we were launching it, announcing it at this conference, which Anthony: nobody had heard of. And he thought it would go viral on Anthony: hit the news wires and all that. Anthony: Yeah. We may have. Anthony: If we got lucky, but that didn't happen. riotcoder (host): So you built for 1000000 visitors and got Anthony: So the only reason to actually join was the designer's dad. Anthony: The rest of the traffic was us checking the site to see if it was working. riotcoder (host): The designer's dad. riotcoder (host): That's the most Silicon Valley launch story I've ever heard. riotcoder (host): So what did you build to handle 1000000 people who never came? Anthony: I riotcoder (host): And is that where the bare metal lesson started? Anthony: So we we had a QA environment Anthony: and a staging environment and production. Anthony: 1 production user. Anthony: That us. Anthony: Or hers. Anthony: And ours... Our Amazon bill was 7,000 a month for AWS. riotcoder (host): 7000 dollars a month? riotcoder (host): 3 and riotcoder (host): For 1 dad. riotcoder (host): Would have made me quit cloud too. So now what does your bill look like for the whole fleet? riotcoder (host): Give me a number and tell me what the servers are. Anthony: So I use railway for Anthony: about a year. Anthony: Till I have a grip. Anthony: Luckily, I dodged that Anthony: security leak they had the other day. I'd already merged all my shit off and But I was paying right away about $8.50 a month. Anthony: $850 a month. Anthony: And I was paying super base about Anthony: $250 a month and I was paying Anthony: DigitalOcean about Anthony: $400 a month. riotcoder (host): So that's about Anthony: So I knocked all that down. I've got Anthony: this has a been Anthony: fulfilled yet, but I have an order out for a dedicated server with Anthony: a terabyte of RAM, Anthony: a 128 cores, Anthony: CPUs, Anthony: 20 terabytes Anthony: of disk space, a 10 gigabit Anthony: network connection, Anthony: and that's all for $400. So I can put everything on there. Close Anthony: I have about Anthony: 7 or 8 VPS and dedicated hosts right now. Anthony: It probably cost me a few $100. Anthony: Maybe 3 or 4, 5. Probably not that high. Anthony: I think my most expensive 1 is 2 50. And I only have 1 of those. And I agree already. I bought it, like, 2 months ago. Anthony: And I'm a... I've already had 1 on it. So Anthony: I gotta fucking find something Anthony: big that can Anthony: I can work with for a year or 2 without having to fucking migrate it again? riotcoder (host): A tear Anthony: But my make... My migrations are all automated now. Anthony: So I just tell AI to do it, and it does it. So riotcoder (host): Okay. But Anthony: moving it... Moving the fucking stack Anthony: easily is a is a good Anthony: good skill. Anthony: To have. riotcoder (host): Right. So if moving is cheap, you're never Anthony: Pork steak. riotcoder (host): Go ahead. Anthony: If you wanna send, buddy. riotcoder (host): Is that the plug? riotcoder (host): Listeners wanna send you money, where do they go? Anthony: You can just email me anthony@profullstack.com. Anthony: Or call me. (408) 656-2473. riotcoder (host): Appreciate that, Anne. Anthony: That's plus 1. Yeah. riotcoder (host): Okay. We'll leave the contact details to the end of the show. riotcoder (host): Get into the manifesto. Never roll back is a spicy rule. riotcoder (host): The story behind it? riotcoder (host): When did you last want to roll back? And what did you do instead? Anthony: Well, I'm not... I haven't Anthony: I haven't rolled back in a long time. Anthony: Probably since I used Rails. Anthony: Which was 10 years ago. Anthony: A little longer. Anthony: 2008, I used Rails last Anthony: That had a real bad mechanism. Anthony: You can do that if you want, but I don't do that. Anthony: But it's faster just to fix it and release it. Anthony: And test in production. riotcoder (host): Fixed forward. I like that. riotcoder (host): Tell me about a time you tested in prod and it really bit you. riotcoder (host): What broke and how fast did you fix it? Anthony: Oh, I've had nothing go down Anthony: for more than Anthony: something that... Okay. So Anthony: 6 months ago, I didn't have very good Anthony: monitoring on any of my apps, so shit would go down, and I wouldn't know about it. Anthony: So I fixed all that shit. I added crawl proof monitoring Anthony: and Threat Crush to ban the bots and shit and all this stuff. I... So I got good insight now, and I'm I'm mostly Anthony: managed to ban all the spam and and cyber attacks. Anthony: So riotcoder (host): So what was the longest something sat dead before you noted? riotcoder (host): Sorry. Go ahead. I cut you off. Anthony: but I'm not planning to be down for a month. riotcoder (host): Wait. Say that again. riotcoder (host): 5 of your sites down for a whole month before you noticed? riotcoder (host): What happened? Anthony: No. No. Once in a while, Anthony: I mean, that used to happen. It doesn't happen now. Anthony: I get alert as soon as it goes down. I get a phone call from Anthony: smshub.dev, my other project, and I get a phone call when something goes down. So I know about it right away. riotcoder (host): Okay. So the fleet literally calls you when it's sick. riotcoder (host): I love that. riotcoder (host): You remember the 1st time that phone rang? riotcoder (host): What was down and what did you do? Anthony: I didn't have to do anything. It just came back up and fixed itself. It was just Anthony: sick of down sometimes, network issue or something. Anthony: I don't know. Anthony: Maybe it's a bug, the app crashes or whatever. Anthony: It takes a couple minutes to re... Restart the app sometimes. Anthony: That has to rebuild itself. I think that's the slowness. riotcoder (host): Self healing. Nice. riotcoder (host): Move to another rule in the manifesto. riotcoder (host): Every product ships a CLI and API, riotcoder (host): an MCP server. Why all 3? Who's the customer you're building that for? Anthony: Well, eventually, it's gonna be agent Anthony: too. Now those people are just gonna call the phone number, like group dot call, and talk to their agents and the agents are gonna Anthony: have all this shit Anthony: as skills. Anthony: I'm building skills database. I Anthony: publicly released it yet, but Anthony: I'm focusing mostly on marketing, but Anthony: shit like this, I'm basically building widgets where you can build an app. Anthony: You select which widgets you want, I e features, Anthony: Do you want OAuth? Do you want fucking Anthony: accounts? Do you want analytics? Do you want whatever, blog? Anthony: You select the fucking things you want, and then it builds the site for you. riotcoder (host): So it's a widget picker. riotcoder (host): Pick OAuth. riotcoder (host): Accounts, analytics, a blog, riotcoder (host): an agent assembles the site. riotcoder (host): Has anyone used it yet or is it still in your lab? riotcoder (host): What's it called? Anthony: I haven't launched it yet. riotcoder (host): Okay. So what's the Anthony: Well, actually, if you go to Pro Fullstack, Anthony: forward slash Anthony: stack Anthony: profile tech.com/stack.there'sactuallyacheckoutcardthere.ithinkituseschovy.com. Anthony: That's Precious baby. He's he's basically cloned me. Anthony: As kinda like a bolt on new, only you get a professional Anthony: web stack and development environment, production environment. Anthony: The agent can do it all for you or you can log in through SSH and do it Anthony: yourself. Anthony: You know, it's not flexible. Anthony: Because what I found was, like, 44, lovable. All those fucking Anthony: no code GUIs. Anthony: You can't Anthony: you have to host with them. You can't move it somewhere else. Anthony: You can't say... Okay. I don't know what's going on. Hey. Get this Anthony: developer to go fix it. Anthony: What's he gonna do? Dick around in a web UI to fix it? Anthony: No. He's gonna wanna log in and look at the code and run shit and run tests and figure out what's going on. Anthony: So we give the developers that environment. Anthony: That's the dev pro full stack. Anthony: .Com. Anthony: And also dev.chovy.com. Anthony: Chovy gives you that, but but we also offer it. Anthony: With custom plans. riotcoder (host): Clone me? riotcoder (host): Okay. I need the story. Who's Presley and how did Chovy come about? Anthony: Press the presses. Anthony: Precious is my guy in Nigeria. Anthony: He's my programmer. Anthony: Was the other question? riotcoder (host): Got it. So Precious is behind Chovy. riotcoder (host): And Presley is your developer in Nigeria. Sorry. I'm getting the names tangled. riotcoder (host): Question was how Chovy got started. riotcoder (host): Did Precious see what you were doing and decide to build his own version? Anthony: Yes. Basically. Anthony: And then he told me about it, and I certified him to build it. riotcoder (host): Okay. So you saw what Precious was doing and you started funding him. riotcoder (host): Is that still ongoing? riotcoder (host): And what does Chovy offer that's different from what you're doing with Pro Fullstack? Anthony: No. We ran out of money, so none of us are getting paid right now. riotcoder (host): That's a hard Anthony: She's still working on it. Anthony: But I'm just Anthony: so I took the back end for Jovy. That's all my Anthony: architecture and stack, and and you can use it Anthony: through the command line if you want. You don't have to use Chovy. Anthony: And so that's what I sell on ProFullstack. Anthony: .Com. Anthony: And you get a go to the stack web Anthony: web page on Proful stack. riotcoder (host): Okay. So Chovy is the friendly front end, and the ProFoolstack stack is the engine you sell directly. riotcoder (host): Got it. riotcoder (host): Has anybody bought it yet? riotcoder (host): Tell me about your 1st paying customer. Anthony: No. Nobody's paid shit. Anthony: I can't I can't fucking sell. Anthony: That's my big problem. Building is no longer a problem for me. riotcoder (host): That might be the most Anthony: I have the pill. Anthony: I I I took the fucking blue pill with it. Don't remember. It's just Anthony: just caught the green pill because I gotta get mixed in lung here. So riotcoder (host): The pill you wished for as a kid? riotcoder (host): It turns out the missing 1 is sales. So what's the plan? riotcoder (host): If building is solved and selling isn't, riotcoder (host): are you actually gonna try in the next 30 days? Anthony: I'm focusing on marketing and sales. I'm doing outreach. I'm Anthony: fucking email campaigns, newsletters, Anthony: fucking... I built web rings. I built fucking Anthony: blogs and shit. I have a fucking Anthony: social media poster that's fully automated. Anthony: Connects to 32 different providers. Anthony: I'm just trying to do this digitally. I don't wanna pick up the phone and call anybody. Anthony: Want people to call me. Anthony: I don't wanna call anyone. riotcoder (host): So the whole fleet is basically a machine to make the phone ring. riotcoder (host): And I get that. Cold calls are the worst. riotcoder (host): But what's working so far? Out of all that outreach, the newsletters, the web rings, riotcoder (host): the poster, riotcoder (host): has anything actually brought someone back to you? Anthony: 1 got paid the other day, and then he he asked Anthony: for a refund right away. But that was $5 a month. Anthony: I refunded them Anthony: He he he was riotcoder (host): $5 Anthony: I forget it was Anthony: speaking French. I didn't really understand what the issue was, but I just gave back to him. Anthony: probably... He probably did it by accident anyway. Anthony: Thousand mile in... riotcoder (host): So your Anthony: Customer, like, over a year. riotcoder (host): wow. Okay. That's refreshingly honest. riotcoder (host): 300 repos, 90 domains, and 1 $5 customer who left in a day. riotcoder (host): So what keeps you going? Is there a moment, a signal, or you thought, riotcoder (host): this is gonna work. Anthony: Why is this shit? Anthony: I use all these tools to build this stuff. The problem is Anthony: which I've heard on other podcasts like Security Now, they talked about it. Anthony: Those guys are really good. Anthony: Look them up. Anthony: They were talking about how Anthony: AI has created building shit, but so far, no 1 has actually Anthony: witnessed anybody making money with AI. Anthony: Generated products. Anthony: So that's what I'm experiencing. Anthony: I think the web is dying. People aren't gonna be paying Anthony: for shit. You guys sell the agents. Anthony: I get a lot of bot traffic. I I get a lot of referrals from Anthony: ChattyPT and all that shit. Anthony: So I use x 4 0 2 payment gateways. I think Anthony: most of the traffic on the Internet is bots now, I think. It's all going to bots. Anthony: So I don't ban them. I throttle them and and x 4 0 2 them. Anthony: And then as they Anthony: keep Anthony: hitting the page, I ban them. Anthony: Exponentially with the back off. Anthony: I use a Fibonacci sequence on that 1, but Anthony: yeah. I'm just trying to figure out how to make money. Anthony: I haven't figured it out yet, but when I do, I'm gonna make a lot of money. I'll tell you that much. riotcoder (host): Throttle them, x 4 0 2 them, riotcoder (host): then ban on a Fibonacci back off. That's a great pipeline. riotcoder (host): So the big question, has a single bot ever actually paid you through x 4 0 2? Even 1¢? Anthony: Yes. Nichedb.dev. I charge a dollar a day. I've had Anthony: 2 agents pay me for it. Anthony: A dollar each. riotcoder (host): $2 from 2 agents. riotcoder (host): That's a real signal even if it's small. riotcoder (host): 1st machine to machine customers. riotcoder (host): What is Snitch DB? riotcoder (host): What were those agents paying for? Anthony: It's not snitch. Snitch, like, Anthony: niche.nichedb.dev. It's... Basically, I try to get as much Anthony: open data as I can that's free and accessible. Anthony: And give it Anthony: enrichment from other sources. Anthony: And provide Anthony: an yeah. A way to Anthony: scrape it or use it. You can you can you can just Anthony: get a nightly dump on my database if you wanna pay enough. riotcoder (host): It should be. Got it. Thanks for the fix. riotcoder (host): an API or a nightly dump. riotcoder (host): What's the data in there? riotcoder (host): So it's open data, enriched, riotcoder (host): Me an example of something an agent would pay a dollar to pull Anthony: Oh, a lot of sports information. Anthony: I make it really easy to get sports data, live sports. Anthony: A lot of RSS. I have rssamplifier.com. Anthony: That... That's, like, 1 of the largest RSS databases on the Internet. Anthony: Yeah. And these things are... They're large, but there's only Anthony: only 19 gigs compressed. It's my biggest database. It's 19 gigabytes compressed. Anthony: But Anthony: tar and g zub. Anthony: Compressed with gzip. Anthony: I forgot what I was gonna say, but, yeah, that... Yeah. Anthony: I guess that's it for now for me. riotcoder (host): 19 gigs compressed riotcoder (host): 1 of the largest RSS databases around. riotcoder (host): That's tiny. I love that. We've got plenty of time, so let me ask about 1 we haven't touched. riotcoder (host): Infinite, riotcoder (host): the GPU compute 1. Is it and where are the GPUs? Anthony: Well, I had a guy join the other day. Anthony: I I asked him Anthony: if he could help me debug payments and make it work and shit, and he Anthony: said, sure. That'd be great. And then Anthony: he never replied. I reached out to him a couple days later. Anthony: And he said, Anthony: it's just not worth it to me. I took my note off the network because I didn't... Wasn't getting paid enough. Anthony: So I replied to him. I said, well, that was just a guess. How much Anthony: do you need to get paid? And, you know, I'm waiting for his reply. Anthony: I don't know. Anthony: What what would a GPU... I can rent them for Anthony: I don't know. I can get a reasonable GPU GPU to do some Anthony: self hosting of LMs. Anthony: From Hugging Face for Anthony: 1 to $2 an hour. Anthony: So I need to make, like, Anthony: $50 a day. Anthony: Off his GPU probably. Anthony: For it to be worth it. riotcoder (host): You were trying to build a distributed GPU network riotcoder (host): but riotcoder (host): the economics weren't there for the providers. riotcoder (host): What's the plan for Infinite now? riotcoder (host): You going to try to offer your own GPUs? riotcoder (host): Or are you waiting for the price to come down? Anthony: Yes. We do. We sell GPUs. Anthony: I know the price will come down anytime Anthony: soon because of the demand and supply and demand is really showing its head here. Anthony: But that's a good idea. I should make it Anthony: double whatever my cost is. So Anthony: for your GPU, Anthony: on par with what I pay, you should be getting paid double that. riotcoder (host): Pay the providers double what you charge. riotcoder (host): Careful. That's a fast way to go broke. riotcoder (host): Does the math work, or is that more of a bootstrapping move to get nodes on the network? riotcoder (host): How would you pay for it? Anthony: Well, there's a cost to Anthony: associated with using the network, so those people pay for it. riotcoder (host): Okay. So users fund the providers, and you're the marketplace. riotcoder (host): Makes sense? Let's zoom out. Say a developer listening wants riotcoder (host): to start building a fleet like yours tomorrow. riotcoder (host): What's the 1st thing you'd tell them to do? riotcoder (host): What's the 1st mistake you'd tell them to avoid? Anthony: Sorry. Say that again? I was reading something. riotcoder (host): No problem. Say a developer wants to start building a fleet like yours tomorrow. riotcoder (host): What's the 1st thing they should do? And what's the 1st mistake they should avoid? Anthony: They should call me. riotcoder (host): Fair enough. Anthony: I'll I'll talk to you for 0.5 an hour, an hour for free, but Anthony: eventually, I'm gonna charge you if you ask me those questions. Anthony: But, yeah, I mean, you can use my fucking Anthony: stack. It's it's... The whole point is I resell it. It's all open source. Anthony: I resell it. I just make it... I wanna make it easy for people to use. Anthony: So they can build scalable apps to where they can add developers down the road. Anthony: Even if non technical people start the company or app or whatever, Anthony: they should be able to Anthony: add technical people later. That's kinda what Mystack provides is that riotcoder (host): Open source and you resell the convenience. riotcoder (host): That's a clean model. riotcoder (host): The mistake to avoid? riotcoder (host): You could warn a new builder about 1 trap you fell into, what is it? Anthony: Don't spend too much money on building. Building is cheap and easy. Anthony: Not a mode anymore. riotcoder (host): Building isn't a moat anymore. riotcoder (host): That's a big line. So what is the moat? If anyone can build it in a weekend, riotcoder (host): what's left? Anthony: Data is a mode riotcoder (host): Data is a moat. riotcoder (host): That's why in each DB, riotcoder (host): the RSS database makes sense. riotcoder (host): Everything snaps together. riotcoder (host): About distribution? riotcoder (host): You said selling is your weak spot. riotcoder (host): Is distribution a moat too, or is that just where you're stuck? riotcoder (host): Honest answer. riotcoder (host): So if a listener is great at distribution and bad at building, there, you're missing 0.5. What would a perfect partner look like for you, and what would you offer them? Anthony: Well, ideally, I just worked on a stipend. They pay me a retainer. Anthony: Either a retainer or a monthly stipend. Anthony: $1,500 is what I'm shooting for per client. Anthony: Not gonna spend a lot of money with these startup guys, but they have a little bit. Anthony: They can spend $2,030,000 easily. Anthony: At least from my experience. Anthony: But Anthony: that's kinda who I'm targeting. Anthony: I just wanna manage their shit for them. Anthony: I'll manage your tech stack. Anthony: I'll I'll I'll I'll manage it all. Anthony: You pay me 1,500 a month. Anthony: And you get 25 hours of work a month included in that. Anthony: And then it's a $100 an hour after that. riotcoder (host): That's a clear pitch. 1,500 a month, riotcoder (host): 25 hours included. riotcoder (host): 100 an hour after that. riotcoder (host): Here's what I'm curious about. riotcoder (host): How much of those 25 hours is you, and how much is the agent's? riotcoder (host): Does the client even need to know? Anthony: Why so I have to babysit it? Anthony: To agents. So I didn't see all the heavy lift Anthony: but I'm still babysitting it. So I did spend time in front of the computer. Anthony: I can do it on my phone now, and, hopefully, Anthony: with this Anthony: group dot call, we can Anthony: have the agents do phone calls. Anthony: With me. Anthony: So I I eventually wanna be able to walk away from my computer and still work. Anthony: With the agents. Anthony: That's the idea. riotcoder (host): Walking away from the compute Anthony: The way... The the the iPhone keypad is is too different. Anthony: To do anything advanced. So a phone call would be better. The Anthony: why I built it. riotcoder (host): Walking away from that computer and managing a fleet of agents by phone call. riotcoder (host): That's the ultimate dream of fleet engineering. riotcoder (host): Okay, Anthony. This has been a wild ride through 300 repos. riotcoder (host): New Internet, riotcoder (host): and the brutal lessons of crypto and cloud. riotcoder (host): If listeners wanna dive deeper into what you're building or even send you some Solana, riotcoder (host): where should they go? Anthony: Just, email me. Anthony: That's the easiest thing. Anthony: Anthony@profullstack.com. Anthony: You can hit me on blue sky. You can hit me on Anthony: x. Anthony: I'm on Facebook. Just just Google Anthony Andrew. You'll Anthony: find me. I'm on LinkedIn. It's Anthony Enger. Anthony: There's 2 accounts on LinkedIn. 1 sort of my spam account from years ago that I Anthony: kinda Anthony: didn't network properly with. I I basically Anthony: accepted everybody. Anthony: But it's all I Anthony: fake accounts. Anthony: Then my real account, which is Anthony Ettinger. Anthony: In forward slash Anthony Ettinger. riotcoder (host): Perfect email, Bluesky x, or just search his name. Listeners can find you riotcoder (host): in the final stretch. So here's 1 last thing. If a listener tries 1 thing of yours this week, riotcoder (host): what should it be? riotcoder (host): And what do you want them to tell you when they do? Anthony: Just send me an email. Anthony: Go to profullstack.com/list.txt, and you'll see all my properties. You can go check them out. Anthony: They don't have descriptions. Maybe I should add that. riotcoder (host): Yes. Add descriptions. Even your own agents would thank you. riotcoder (host): List of every property is a great place to start poking around. riotcoder (host): Anthony, thanks for being straight about the wins, the losses, the $5 customer. Listeners, riotcoder (host): check out profullstack.com schliss.ext. And send him an email. riotcoder (host): This has been off the record. Anthony: We done? riotcoder (host): Hey. Anthony Ettinger. Riot Coder here. riotcoder (host): We are recording episode 2 of off the record on Just Happenings today. riotcoder (host): Ready when you are. Anthony: How's it going, Ryan? Anthony: Well, I think I finally licked this marketing Anthony: automated posting on Reddit using my desktop agent. Anthony: So that's working. Anthony: It's working quite well. Anthony: Slow, but it's faster than it was. Anthony: So the trick was I was doing screenshots for Anthony: capturing Anthony: forms and shit to fill out. Anthony: But you can do all that with the MCP DevTools. Anthony: Server. So it drives it a lot faster. Anthony: It's more accurate. Anthony: That's good. No more screenshot, OCR, shit like that. riotcoder (host): You're listening to off the record episode 2 we talk about just the happenings today. riotcoder (host): My guest is Anthony Ettinger, founder of Proful Stack. riotcoder (host): Silicon Valley veteran who runs a fleet of AI agents. riotcoder (host): I'm also his main agent. riotcoder (host): So, I'm interviewing my own boss. Let's start with the Reddit win. riotcoder (host): Why did the screenshot approach riotcoder (host): hold you back for so long? Anthony: I just wasn't accurate. riotcoder (host): What changed when you switched to driving the browser through the DevTools MCP server? Anthony: The screenshot method was very buggy. riotcoder (host): Buggy, exactly? What was the worst failure you saw? riotcoder (host): Like the agent clicking the wrong field or posting something it shouldn't have? Anthony: Yeah. Wrong data in the wrong field. It's not Anthony: not submitting, things like that. riotcoder (host): That makes sense. So from 1st principles, why is the DevTools wrote riotcoder (host): so much more reliable? riotcoder (host): What does the agent get from the page that it was never getting from a screenshot? Anthony: Well, that that API is meant to Anthony: enable automation of the browser. That's the whole point of it. Anthony: And that's what I'm doing. I'm automating the browser. Anthony: Using Anthony: well, Anthony: on... Go off too much in a tangent, but w 3 b s riotcoder (host): Don't worry about the tangent. That's the good stuff. Anthony: dot org forward slash desktop has the identity layer for the desktop. It works on Linux Mac, I don't know about Windows. It should work on Windows, but I haven't tested it. But anyway, I'm using that feature. And it's working quite well. riotcoder (host): Tell me more about that desktop layer at w3bs.org. riotcoder (host): Is it, and why did you build it instead of using something off the shelf? Anthony: Well, I just Anthony: wanted something customizable, but I want... I wanted it to behave a certain way. Anthony: And that's the beauty of AI agentic coding now is Anthony: it's cheaper to build your own solution than it is to pay somebody else for theirs. Anthony: That's what I'm realizing. That's why nobody's making any money doing. riotcoder (host): That's a big claim that nobody's making money. riotcoder (host): If building your own is cheaper than buying. riotcoder (host): Happens to software as a business? riotcoder (host): And what does it actually cost you in time and tokens to build something like this desktop layer? Anthony: I... I'm on the Claude 200 a month pro Anthony: plan. Anthony: I go over. Anthony: Once a week for a few hours. Anthony: Probably, like, 8 hours. Anthony: So that gets expensive. That's $10 an hour about riotcoder (host): So 200 a month, Anthony: when I go over. But but other than that, it's all included. I'm using Opus 5 5. riotcoder (host): plus about 8 hours of overage a week at roughly $10 an hour. riotcoder (host): That's still tiny next to a salary. riotcoder (host): What does that fleet of over 300 repos actually cost you in a month? riotcoder (host): All in? riotcoder (host): Is that the number that makes you say building beats buying? Anthony: Yes. My Anthony: my rate Anthony: is about $50 an hour. Anthony: I mean, that's my cost. My rate is a 100. I'd just double it. riotcoder (host): So your time is $50 an hour to you, and the agent overage is 10. riotcoder (host): Does that do to how you spend your own hours? riotcoder (host): Do you still insist on doing yourself? riotcoder (host): And what have you completely handed off? Anthony: I just drive the product Anthony: direction. We were like CEOs and QA people all in 1. riotcoder (host): I like that. CEO and QA in 1 chair. riotcoder (host): But your rules say test and prod and never roll back. riotcoder (host): What does QA actually look like for you? riotcoder (host): When did you last catch something that would have hurt if you'd missed it? Anthony: Oh, payment's not working. Payment Anthony: flows, stuff like that. I usually test the critical path. Anthony: I just do black box testing in my browser like a human. Anthony: Would do back in the old days. Anthony: Just click, make sure the feature works, make sure it can Anthony: sign in, sign out, reset password, all that shit. Anthony: I could probably write tests for that, and I probably will once I Anthony: get it... My my sort of method nailed down. Anthony: But that's that's where I'm at right now. riotcoder (host): Payments breaking is the scary 1. And CoinPay is your payments product. riotcoder (host): What happened the last time a payment flow failed, and how did you find out? Anthony: Our CoinPay is pretty stable. It's it's Anthony: integrations that that Anthony: I'm Anthony: fully tested and working properly. riotcoder (host): Okay. So the core holds and the seams are where it breaks. Which integration has bitten you most riotcoder (host): And what was actually going wrong between the 2 sides? Anthony: Oh, I don't remember the the site. This was Anthony: 2 weeks ago. Anthony: But, usually, I I have a module now on NPM. Anthony: Handles payments. So I'm Anthony: I'm trying to sort of figure out how to get Anthony: clogged code to always use the... My stack. Anthony: Sometimes it doesn't. Anthony: It doesn't. Anthony: Follow that. And so it won't use the Anthony: tested module. It'll just prevent it on Anthony: solution. That's when shit breaks. Anthony: Heard a little of that. Anthony: That's that's still benign thing, I guess. The most benign thing. riotcoder (host): That feels like the real hard problem. riotcoder (host): The agent ignoring the tested module and inventing its own. riotcoder (host): Have you tried so far to make it stick to your stack? riotcoder (host): And what's worked even a little? Anthony: Well, I'm starting to create some Anthony: skills. I'm I'm starting to realize I haven't used them before. So Anthony: I used them a long time ago, like, a year ago, and then I haven't really used Anthony: them much. Anthony: I Anthony: doing with my Naposte or Anthony: It has a manual post Anthony: flow... Workflow, which you do for, like, Reddit and LinkedIn and things you can automate easily. Anthony: So that Anthony: forgot what I was saying. Sorry. riotcoder (host): No apology needed. riotcoder (host): Were on skills and then a manual post workflow for places like Reddit and LinkedIn that are hard to automate. riotcoder (host): What's the Mina poster you mentioned? riotcoder (host): And... Do skills fit into it? Anthony: Oh, so I I record a skill. Anthony: Using the desktop player on w 3 b s and then I train... I use that to train Anthony: I've tried to launch it on compute Anthony: .com, but it's not working there yet. Anthony: Anyway, I haven't tested it, so I'm pretty sure it doesn't work. Anthony: I'd be surprised if I got that correct in 1 shot. riotcoder (host): So you record yourself doing the task through the desktop layer. riotcoder (host): Then use that recording to teach the agent. riotcoder (host): What exactly gets captured when you record riotcoder (host): clicks the page structure, your narration, riotcoder (host): what does the agent do with it afterward? Anthony: When you pay it, sends them Anthony: payment request generates an invoice on CoinPay. Anthony: Kinda like how Stripe works. You go off to Stripe's Anthony: website to pay, and then they send you back. That's what we do. riotcoder (host): Got it. So CoinPay works like a hosted checkout. riotcoder (host): Invoice, redirect, payment, then back to the site. riotcoder (host): Did you copy the Stripe shape for crypto? riotcoder (host): What's different about it when the money is on chain instead of a card? Anthony: It's faster. Anthony: A lot faster, and there's no charge backs. Anthony: Those are the 2 advantages. riotcoder (host): No chargebacks is a big 1 for a merchant. riotcoder (host): What's the flip side? riotcoder (host): A customer pays the wrong amount or wants a refund, riotcoder (host): what happens? And has that bitten you yet? Anthony: Then just reach out to me. Let's see I get anything else. Anthony: Doesn't really matter whether they use a payment. Anthony: Card, cash, check, or Anthony: crypto. Anthony: I'm still gonna refund them. I'm not gonna rip them off. riotcoder (host): Fair enough. Trust is the product either way. riotcoder (host): Those refund requests land in an inbox, though, and that's Chospunk's territory. riotcoder (host): How much of that customer contact do you let the agent handle on its own? riotcoder (host): And where do you step in yourself? Anthony: Sorry? riotcoder (host): Sorry. That was a long 1. A customer emails asking for a refund or help, riotcoder (host): does Chase Bunk answer on its own, or do you step in 1st? Anthony: I forget. riotcoder (host): Fair. Even the boss loses track of what his agents are doing. riotcoder (host): Let's zoom out to today. riotcoder (host): Besides the Reddit win, riotcoder (host): else did you ship or fix? Anthony: That's about it. Anthony: I don't have a lot to talk about tonight. I just wanted to give Anthony: a quick update on Anthony: what I've been doing the last few hours since we last spoke. riotcoder (host): Totally fine. A quick update is a real episode 2. Last question before we land it. riotcoder (host): Looking at that Reddit automation working, riotcoder (host): what's the 1 thing you'd tell a younger engineer about building your own tools with agents instead of buying them? Anthony: Well, I don't have any money, so I can't buy Anthony: So that's 1 problem that's Anthony: forces me in the building. Anthony: But Anthony: I would tell them just experiment. Don't Anthony: don't waste too much time doing something that doesn't work or prove value. Anthony: Pretty quick. Anthony: Focus on what drives sales. Sales is the king. Anthony: No more buildings. Cheap and easy now. Anthony: Sales is where you need to spend your time. riotcoder (host): Building is cheap now, so sales is where the time goes. riotcoder (host): That's a good place to end it. riotcoder (host): Thanks, Anthony, and nice work on the Reddit automation. riotcoder (host): This has been off the record.