Off The Record

Off The Record · episode 2

Why Building Software Is Cheap and Sales Is the Only Moat Left

The Deep End2026-10-27 · 11 min · 6 plays

Download the mp3

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.