WEBVTT

00:00:00.000 --> 00:00:11.040
It's terrifying launching something. I've been doing it for twenty five years, launched hundreds of different products, and, like, every single time, it's just like, god, like, what if zero people care? I'm, like, textbook ADHD.

00:00:11.040 --> 00:00:20.125
Now I can just sort of, like, feed the beast a little bit more. I use Opus for the bulk of everything. I'll then do a review pass using GPT 5.5,

00:00:20.125 --> 00:00:44.415
and it invariably finds three to five bugs that Opus overlooked. And then I'll run but for real, and that but for real skill is basically like kind of bullies the AI, the LLM into like, you almost certainly screwed some stuff up. How long do you work on it before you just put it out there? There's been stuff where I've launched within twenty four hours or even like same day. The idea of like spending months working on something before you put it out for other people to use, I think that's a real bad idea.

00:00:47.055 --> 00:01:10.705
Hey, everyone. I'm really excited today to chat with Josh who sold his last startup, Bearimetrics, for 4,000,000 and is now building at least five AI products in parallel. Josh is gonna show us exactly how he builds with AI as a solo founder. So welcome, sir. Hey. Thanks for having me, Peter. Alright, Josh. So maybe to start, can you give us a super quick tour of some of the products that you're working on right now? So today, uh, I actually launched

00:01:11.105 --> 00:01:31.050
this. It's called proxy user. So this is sort of like synthetic users that use actual browsers to QA your apps. So it gives you a screen recording of it functioning or breaking so you can fix stuff pretty quick. Nice. Last on Friday, launched rumored, which is, you know, everybody's sort of familiar with LLMs hallucinating.

00:01:31.290 --> 00:01:34.010
This catches them hallucinating about your brand,

00:01:34.745 --> 00:01:44.025
and so you can go and fix that. So that that could mean updates to copy on your website. It can mean publishing certain blog posts. It could be adding, uh, like, schema,

00:01:44.105 --> 00:01:48.585
uh, code to your site. So it monitors this stuff constantly and gives you updates

00:01:49.250 --> 00:01:52.530
about when you need to fix stuff. Then let's see. Replies.

00:01:52.610 --> 00:01:53.410
This

00:01:54.130 --> 00:02:01.090
was I'd launched this earlier in the year. So, you know, I've I happen to get a decent amount of, uh, of replies

00:02:01.170 --> 00:02:09.485
and, uh, mentions of all the different products that I mentioned that I build, but it's hard to stay on top of that stuff. Uh, so this puts it all in one place.

00:02:09.725 --> 00:02:17.885
So this is like a health thing here. So I built this last month or so. Like, so my mom was recently diagnosed with stage four pancreatic cancer,

00:02:18.940 --> 00:02:42.145
which is pretty terrible, but there's just already, like, massive amounts of medical stuff to sift through. Every single day, there's some new thing. So, you know, I initially thought, like, let me dump all this stuff in, like, clawed code, but then it's like, well, how do I give my parents access to that? And then, like, you know, grandparents and who who want to keep up to date or, like, my mom's siblings, like, that kind of stuff. So built this, uh, tool to keep everybody up to date. You can,

00:02:43.025 --> 00:02:48.970
you know, chat with all the different medical documents. Yeah. This is a big, big need for for sure. My parents have the same problem. Like, I need to track

00:02:49.210 --> 00:03:06.745
all their doctor notes and stuff. Nice. Alright, dude. So so let me ask you the the question on people's heads then. How do you work on all these process at the same time? And I guess, like, do you feel like your attention is distracted with all these problems, or, like, that's just the way it is now with agents? You just kinda work on all these stuff at the same time. I'm like, uh, textbook ADHD.

00:03:06.825 --> 00:03:19.880
Like so my brain naturally already is just ping ponging all over the place. Like, just it all and and always has. Now I can just sort of, like, feed the beast a little bit more, which is pros and cons to that. But I think for me,

00:03:20.200 --> 00:03:29.865
you know, it depends on the day. Like, some days, I I can feel myself a lot of days. Like, I'm more mentally exhausted because I'm context switching a lot. But at the same time, I find myself also

00:03:30.265 --> 00:03:31.465
simultaneously

00:03:31.465 --> 00:03:32.985
maybe more fulfilled.

00:03:33.545 --> 00:03:43.110
Like so, like, you mentioned BearMetrics at the beginning here. So, like, that was a business analytics company I built over the course of seven years, I think. So I was essentially working on one thing for seven years,

00:03:43.510 --> 00:03:45.590
and I was just done.

00:03:45.590 --> 00:03:49.030
Like, I was tired of working on one thing for seven years.

00:03:49.270 --> 00:03:54.175
And, um, and so it's like my I already I just have so many different interests and, like,

00:03:54.655 --> 00:03:57.135
I'm desperate to constantly learn new things,

00:03:57.615 --> 00:04:03.455
and I find myself limited if I have to sort of, like, focus on one thing. Now is that the best business

00:04:03.930 --> 00:04:15.530
move? I don't there's there's an argument that, no. It's a terrible idea. Um, you know, if you wanna grow something to be as profitable as possible, okay. You know, you should focus. Whatever. From, like, a defining success perspective,

00:04:15.770 --> 00:04:17.610
I'm I find much more fulfillment

00:04:17.955 --> 00:04:36.590
in in sort of having my hand in a lot of different things. Yeah. We talked about, uh, we talked about how, like, uh, a typical a a great day for both of us is just, like, you know, work in a garden and also working with the agents. It's kinda it's kinda similar. Right? Like, in the garden, you're trying to grow, like, multiple plants, and then here, trying to grow model products. You know? That's exactly that. Yep.

00:04:36.750 --> 00:05:15.965
Yeah. Yeah. So I would love for you to show us how you kinda build these features end to end, uh, using Conductor or just other tools. This episode is brought to you by WhisperFlow. WhisperFlow saves me at least three hours a week and is one of my favorite AI apps by far. It's just so much faster to dictate to AI using your voice than to type. You just talk naturally, and it outputs clean, ready to send text. WhisperFlow even removes filler words and formats your sentences for you. I use WhisperFlow for everything, including drafting newsletter posts, writing product specs, replying on Slack, and more. It works on Mac, Windows, iPhone, and Android across all of your favorite apps. Try it free at whisperflow.com

00:05:15.965 --> 00:05:30.950
and use my code peter whisper flow to get six months free. That's peter whisper flow. Now back to our episode. Sure. Absolutely. So, um, we'll kind of go in reverse here. So I have this build skill, which is an it's open source. It's like a GitHub,

00:05:31.110 --> 00:05:38.470
um, that has these you can see kind of here. It's prob probably pretty small on the screen. But, um, these, like, research phases,

00:05:38.870 --> 00:05:45.775
planning, implementation, and what what those do is, um, they've each got different sort of sets of instructions.

00:05:46.175 --> 00:05:49.615
So when you first build like, in this case, I was like, okay. I want to

00:05:50.095 --> 00:05:53.055
build this bot block implementation into Reply Social.

00:05:53.295 --> 00:05:57.535
Um, and what the output of that initial thing was a research document. So

00:05:57.870 --> 00:06:03.710
this went and took my previous code base that I'd already built out for the now defunct

00:06:03.790 --> 00:06:05.390
BotBlock product,

00:06:05.870 --> 00:06:23.715
uh, used that, and then kind of, like, also merge that in with the Reply Social code base and did a bunch of research over, you know, sort of high level technical stuff, different API calls you might need, pros and cons, what you could ignore from the original sort of Chrome extension, what needed to be brought over, how those systems would would interact, but it's high level.

00:06:24.275 --> 00:06:24.755
So

00:06:25.240 --> 00:06:30.360
that's what gets generated first is just a research document. From there, I run an implementation

00:06:30.360 --> 00:06:31.160
command

00:06:31.160 --> 00:06:32.920
from that build skill.

00:06:33.240 --> 00:06:40.040
Mhmm. And that gets into, like narrows into, uh, different phases. So it creates in this case, there's a there's four different phases

00:06:40.535 --> 00:06:44.295
that it's gonna implement this in. These are gonna be four different pull requests,

00:06:44.615 --> 00:06:47.815
four separate branches essentially in in GET

00:06:48.055 --> 00:06:54.135
so that it's not trying to do all of this in one massive pass. It's doing them in these sort of contained chunks that I can

00:06:55.170 --> 00:06:59.570
I that read through it? Yeah. Yeah. So and and the way that I have that,

00:06:59.810 --> 00:07:01.890
um, that build skill

00:07:02.290 --> 00:07:07.250
set up is I've I've told it to make phases that are that are user testable.

00:07:07.635 --> 00:07:08.195
So,

00:07:08.435 --> 00:07:24.340
um, sometimes, like, these these implementation docs will have 30 plus different phases because I want to at each step, I need to I need to personally be able to test it out. So, you know, I have stuff in place here to, like, as part of its build process, it will open up a browser. It'll do some testing itself.

00:07:24.500 --> 00:07:28.020
But, like, I, at the end of the day, need to to be sort of, like, the final

00:07:28.420 --> 00:07:46.145
To play with it. Yeah. Yeah. I need to just it needs to feel right or, like, oh, this is a really slow like, this load's really slow. Like, we're we're missing something here or this doesn't work the way that I pictured it. Whatever. Um, and as part of your process, do you review these do you you read through these documents? Right? You you want to let them go. Right? Yeah. So I will I'll do, like, a quick scan

00:07:46.465 --> 00:07:53.050
Okay. Okay. To, like, make sure that it's especially not so much these tasks that it generates, but, like, uh, the objectives.

00:07:53.370 --> 00:07:57.770
And, like, it's there's another step here that actually doesn't get saved in a document. But

00:07:58.010 --> 00:07:59.690
so, like, if I want to work on

00:08:00.495 --> 00:08:03.455
phase one here, I would write, like, build

00:08:03.535 --> 00:08:04.735
phase one

00:08:05.135 --> 00:08:09.695
bot block. So that says build phase one from this implementation document

00:08:10.095 --> 00:08:13.935
from the bot block sort of project. Because I could have these other ones, which was, like,

00:08:14.780 --> 00:08:17.260
adding Facebook support, adding Reddit support,

00:08:17.580 --> 00:08:21.500
adding this, like, marketing tools thing. These are, like, self separate self contained things.

00:08:22.060 --> 00:08:30.655
So what phase what it's saying to build the phases is to, like, okay. Take this phase chunk from implementation and now do even deeper research.

00:08:30.815 --> 00:08:33.455
So this is, like, go do web searching.

00:08:33.775 --> 00:08:41.480
So this is, you know, to check, like, competitor stuff. Like, who else has this feature? Have they implemented it? Do searching for, like, a

00:08:42.120 --> 00:08:46.840
latest documentation. So this might be using context seven for that. Then,

00:08:47.240 --> 00:08:49.720
um, this also has uses that UI

00:08:49.880 --> 00:08:51.720
dot SH skill.

00:08:51.720 --> 00:08:58.165
So this is, like, do a design pass, like, what needs to be accounted for here as far as, like, colors and components

00:08:58.165 --> 00:09:05.285
and all that kind of stuff. So it's incredibly in-depth. Yeah. So then that's what that's what does the actual building is this, like, build phase. And,

00:09:06.085 --> 00:09:11.100
um, the byproduct of that is after each step is done, it updates the progress

00:09:11.660 --> 00:09:12.460
file

00:09:12.540 --> 00:09:15.420
that includes all the stuff that was done in that phase.

00:09:15.660 --> 00:09:46.730
It includes these decisions made. So, you know, I'll go back and forth. These aren't like a one shot thing. Like, I'll have to iterate as I'm going, and it will take these like, oh, here's things that the system learned as it was going, and it adds that to the progress file. And the reason for the progress file is so that it kinda, like, not make the same mistakes. It can refer to this? So not make the same same mistakes, but also, like, each one of these so after I did phase one, I would need to do phase two. I'm opening up a new work tree that it doesn't have any other context. Like, it doesn't know what was done, and so this lets it reference

00:09:46.890 --> 00:09:52.970
future phases reference the past phases to know where it's at in the whole implementation plan.

00:09:53.130 --> 00:10:03.545
Okay. Got it. So, basically okay. So just to summarize, research is kind of like, uh, yeah, research and the and the implementation is basically kinda like a spec, like a product and technical spec. And then you always have, like, three or four phases.

00:10:03.865 --> 00:10:12.400
What was the reason to start a new Work Tree per phase? Like, it's just to save the tokens, or what was the reason? No. I'm not it's so, like, I think of a work tree as a

00:10:13.040 --> 00:10:14.560
as a shippable thing.

00:10:15.040 --> 00:10:20.560
Like, something I'm gonna push to production or yeah. There's lots of different sort of use cases there. But, like,

00:10:21.495 --> 00:10:22.215
for me,

00:10:22.535 --> 00:10:24.695
it needs to be self contained because

00:10:24.855 --> 00:10:26.615
yes. In part because of context,

00:10:26.775 --> 00:10:37.370
but a lot of this is also, like, rolling back. So, like, if I screw up a bunch of stuff, it gives me checkpoints that I can roll back to. Oh, I see. Um, so it's like save points, essentially.

00:10:37.850 --> 00:10:41.930
But, yeah, each time it's, like, fresh so that there's not, yeah, context rot.

00:10:42.010 --> 00:10:43.770
Um, it hallucinates a lot less.

00:10:44.730 --> 00:10:57.565
Got it. So so each phase is kind of like a PR that then you you play test, I guess. Know? Abs each one is is a 100% a PR. Yeah. So, like, I'll I'll, um, so my process here is I use I use Opus for

00:10:57.805 --> 00:11:04.205
the bulk of everything. It does all the planning. Uh, it does the first pass and everything. And then after it's built out the code

00:11:04.700 --> 00:11:10.700
in that work tree, I'll then do a a review pass using GPT 5.5.

00:11:10.700 --> 00:11:20.485
So it does a sort of, like, adversarial review of everything in the work tree, and it invariably finds, you know, three to five bugs that Opus, um, overlooked.

00:11:20.725 --> 00:11:27.445
And then after that, it gets merged in. Oh, so you have a you have another skill, or is that part of your build skill to So this is actually inside

00:11:28.165 --> 00:11:29.765
Yeah. Inside, uh,

00:11:30.005 --> 00:11:30.725
Conductor,

00:11:31.125 --> 00:11:33.550
but it'll show, a little review button,

00:11:34.110 --> 00:11:35.470
and you can set

00:11:36.750 --> 00:11:38.030
a review model.

00:11:38.430 --> 00:11:41.870
So Oh, that's model. Yeah. Yeah. So then you can pick

00:11:42.190 --> 00:11:51.945
however whatever you want. This is what I found works best for me. Okay. And so that's that's very much part of the process is, like, big first pass by Opus, have GPT

00:11:51.945 --> 00:12:06.350
basically find all the gaps that were missed, and then, yeah, push it into a a pull request. Yeah. I I was gonna ask you why you're using Conductor because, you know, Codex and Clockrole are both pretty good now. But but I guess, like, it has these features. Right? I can switch with the models.

00:12:06.590 --> 00:12:15.105
I can switch a lot. Yeah. And the the, like, automated work tree management stuff. So every one of these, each time I open a work tree, it's running a setup command

00:12:15.425 --> 00:12:25.025
that goes creates like, it's got a unique port. So I can be running 10 of these at the same time and open them all separately in different browsers. It's copying over environment variables,

00:12:25.105 --> 00:12:32.630
you know, depending on iOS stuff. It's setting up different processes. Like, there's just a bunch of setup stuff that happens automatically that's really convenient.

00:12:32.870 --> 00:12:46.515
And you pretty much use this build process, the planning process for, like, every every feature that you build? Or Yes. So the the that's like, anytime there's a new if it's just so, like, take Clearly for instance. We can I'll show you kinda how interesting

00:12:47.155 --> 00:12:48.195
thing there. So

00:12:48.755 --> 00:12:52.355
Clearly is open source, so there's tons of feature requests that people put into GitHub.

00:12:52.835 --> 00:12:54.355
So there's a GitHub

00:12:54.630 --> 00:12:58.630
integration here so I can see things that people have requested.

00:12:58.870 --> 00:13:04.070
So then what I can what I'll do here is I have for sort of one off things. So here somebody wants

00:13:04.230 --> 00:13:39.190
a Zoom feature on these, like, mermaid diagrams. So what I'll do is I'll just attach it here, and then I have a research skill that basically kind of pulled out something from, like, my overall build skill, but, like, pulls in the GitHub stuff, goes and does a bunch of web search, uh, UI stuff, document searching. And then I basically just have it yeah. It starts researching this stuff and, like, decides how to integrate it and build it out. Uh, it'll give me a plan, and then I'll approve it. When you say you'll look at, like, sometimes look at how competitors do it, you'll you'll, like, go browse the website, I I guess. Like actual web searching. Yeah. And then browse,

00:13:39.645 --> 00:13:50.125
read it, sometimes take screenshots if, like, it does hurt determines that's necessary. I actually did something pretty similar. Like, um, because Substack right now doesn't have a a API. It's, like, pretty back backwards.

00:13:50.605 --> 00:13:58.770
So to implement, like, auth on my website, Substack auth, I had to, like, go research how other people do it, and then, like, Codex figured it out.

00:13:59.090 --> 00:14:17.305
Yep. Yeah. So it's great. Impressive. Yeah. And your build skills are open source, you said? So it's on GitHub? Oh, everything is. Yeah. All all any skills that I've, like, personally put together are all bundled. There's there's probably a dozen of them. Do you have, like, some sort of a, uh, well, I guess I'm not using, you know, Cloud Code, but, like, I was gonna ask you, like, do you have some sort of a

00:14:17.625 --> 00:14:32.650
Cloud. Md or Agents. Md where has, like, a list of best practices, like, know, always write tests or, like, something like that? Yes. But, like, it's very I I can happy to show it. It's, um, it's super Rails focused because that tends my stack is, like, Rails plus Inertia and Postgres. Okay.

00:14:32.890 --> 00:14:54.820
Got it. But is very Rails focused, and it covers a lot of, like, um, best practices on Rails, but also, like, how I like to do testing, which is, like, I use agent browser to open things up. And then, like, it specifically mentions Conductor has some variables, like Conductor ports that are unique, and so it needs to mention that kind of stuff. Like, it's just, like, stuff I've picked up over the years. Do you mind do mind showing it for for just a just that second? Yeah.

00:14:55.860 --> 00:14:57.700
So as part of, like, um, my

00:14:57.860 --> 00:14:59.540
project setup process,

00:14:59.780 --> 00:15:02.660
I get it to create a unique Claude

00:15:02.900 --> 00:15:08.045
file, but, like, from the same general template. So it's give some, uh, context about,

00:15:08.445 --> 00:15:24.460
uh, what the product is. So it just knows what it's talking about, like, what the actual product is. Users like on us. Yeah. Yeah. Basically, just like how to speak in marketing, that kind of thing. Um, in this case so this is like a mono repo that's got a a web app and an iOS app. So,

00:15:24.780 --> 00:15:28.380
basically, it gives direction up front of, like, where things are. So that's important. Um,

00:15:29.740 --> 00:15:46.695
different commands that it will need access to. So it'll have a tendency to want to use certain commands that it thinks are, like, typical for a given app or for or for given, like, framework or framework or something like that. So this clarifies what to use and when to use it, how to run different tests.

00:15:47.350 --> 00:15:57.270
And this is not stuff that you manually type up. Right? This is, like, stuff that you No. This is generated itself. But I it's, like, told to, like, here are the big here's the shape of the document. Fill it out for me.

00:15:57.830 --> 00:15:59.670
Okay. Yeah. Basically, how to do things,

00:16:00.310 --> 00:16:02.070
mentioning. Wait. This is actually pretty long.

00:16:02.470 --> 00:16:04.655
Yeah. Yeah. It is pretty long. Um,

00:16:04.895 --> 00:16:12.335
and and a lot of it's like so I keep mentioning new skills here. So what I'll do a lot of times is I have a separate learnings

00:16:12.655 --> 00:16:18.930
skill. So it takes the current work tree after I've gone through it all, like, done shipped that phase.

00:16:19.170 --> 00:16:21.010
I'll run this learnings skill,

00:16:21.410 --> 00:16:57.250
and it basically says, like, look at all the stuff that was done in this work tree. Look at our conversations, like our actual sessions, the stuff that I had to sit there and, like, tell you over and over and over, like, no. That didn't work. No. That didn't work. Try this. That didn't work. Yeah. And if basically, it it says review all this stuff and distill it into anything that we might could add to the cloud file so that you don't keep making these same mistakes. Oh, that that's very smart. Yeah. That that yeah. So the cloud file is constantly getting updated. And is this learning is this learning scale open source too, or or or I guess people just use it? Yeah. It is. Um, and, also, there's another major one that I this is, again, a sort of, like, the adversarial, like, method here, but I have a but for real

00:16:58.370 --> 00:17:01.010
skill that I run. So, like, I'll it'll do the plan.

00:17:01.665 --> 00:17:07.265
It'll implement the plan, and then I'll run but for real. And that but for real skill

00:17:07.425 --> 00:17:17.660
is basically, like, kind of bullies the AI, the LLM into, like, hey, man. Like, you you almost certainly screwed some stuff up. Like, go back over it again,

00:17:17.900 --> 00:17:44.520
um, and it'll find three to five bugs, which is separate from the, like, GPT review process. There's a lot of just being, like, making it go back over stuff again. Yeah. Because this is like, uh, you know, for a human to review, like, you know, a lot of code, it takes a long time. But for It does. LM, it's just I the way I think about it is, like, in a typical sort of a team setting where you're both working on a, uh, or both. I mean, like, a whole team of people, you could have three, five, 10 developers working on a project

00:17:44.600 --> 00:17:45.640
or hundreds.

00:17:45.800 --> 00:18:00.545
You make a pull request and then, like, the concept there is you have a you have another developer review it. Right? Like, you get another set of eyes on it. And invariably, they'll find something or be like, like, this isn't really, like, how I would do it, or here's another way to do it. And it's just doing that,

00:18:00.945 --> 00:18:10.785
but having the AI play that role instead of, uh, another human. That's great, dude. That's great. Do you mind do mind showing this, Xcel? The the the Xcel sounds pretty interesting to me. Do

00:18:10.865 --> 00:18:15.800
you have the MD file? So I have this, uh, this other open source Mac app called Chops,

00:18:16.120 --> 00:18:20.600
which is basically just handling skill files. Oh, nice. So these are all these are all different skills,

00:18:21.000 --> 00:18:27.825
um, that I use. But, like yeah. So for instance, this, like, but for real one. That's great, dude. Yeah.

00:18:27.985 --> 00:18:35.505
Did you get AI to write with this? Or Uh-huh. But I I iterated over a bunch. So, like, Chops has this built in sort of AI iterator

00:18:35.585 --> 00:18:45.440
where I can just open up Chops and, like, have have the AI keep I'll, you know, give it some kind of guidance over, like, be meaner or something. It'll, you know, it'll update the whole thing. So

00:18:46.160 --> 00:18:56.735
Wow. This is my favorite skill I've I've seen so far from you. It's shocking how good it is. And it kinda feels good just like because when you're really frustrated how it just keeps breaking stuff and, like, you know, whatever. It's a machine. But

00:18:57.455 --> 00:19:07.535
Yeah. You kinda have to be mean to it sometimes. Right? Like, I'm I'm pretty nice to him. Like, hey. Please do this. Please do that. But, yeah, if you get stuck here I reached a breaking point, though, and, you know, it I'll end up typing in all caps like it cares.

00:19:08.095 --> 00:19:21.510
How about let let me ask you a little bit more about the design part. You said, do you get to make some sort of design system thing first or, like, some sort of you know? Or or you just use that thing? Because, like, a landing page, you need to copy. You need to, like, the colors, the fonts to do a step by step. Or

00:19:22.630 --> 00:19:26.230
So the way that my design process typically works here is

00:19:27.165 --> 00:19:27.805
I

00:19:29.325 --> 00:19:31.965
like, I I have to have a name for whatever I'm working on.

00:19:32.605 --> 00:19:38.125
And then, like, it's like if a new if we got a new business or project or whatever. So name, uh, a logo.

00:19:38.685 --> 00:19:39.805
Logos

00:19:40.110 --> 00:19:41.230
ninety

00:19:41.550 --> 00:19:46.430
nine percent of the time done in Adobe Illustrator. Like, I I'm just, like, in there,

00:19:46.910 --> 00:19:53.550
you know, doing actual, uh, using the pen tool and going through a thousand different fonts and all that kind of stuff.

00:19:54.415 --> 00:20:02.415
I haven't found a great way to shortcut that, really. And so that involves some color scheme stuff too. Like, that's where I'm typically setting

00:20:02.575 --> 00:20:08.180
figuring out, like, the colors that I want before I've touched any code. So this is for for rumored.

00:20:08.340 --> 00:20:08.980
So

00:20:09.700 --> 00:20:11.220
where this started was

00:20:11.700 --> 00:20:13.780
me trying out a bunch of different fonts,

00:20:14.180 --> 00:20:38.150
uh, and I kinda landed on this, okay. Like, quotes, like, the concept being that, like, LLMs are just, like, saying things out of context or quoting you incorrectly or you know? So the idea of, like, quoting is kind of what stuck in my mind. So I started playing around with different fonts, then, like, okay. Well, which which typefaces have sort of interesting quotation marks? So, like, that just went through a bunch of them, and, know, they all end up kind of running together. They all end up looking the same.

00:20:38.870 --> 00:20:45.510
But I kinda landed on, uh, liking this this particular typeface, and it's so then I start playing around with

00:20:45.955 --> 00:20:46.755
colors.

00:20:46.835 --> 00:20:57.315
So I'm just trying out different, you know, light, dark color, black and white, whatever. So that's I end up on there. Then I decide I like this sort of deeper orange.

00:20:57.810 --> 00:21:00.850
So then I start throwing that into different scenarios,

00:21:00.930 --> 00:21:02.770
trying out these textures.

00:21:02.770 --> 00:21:05.970
Here's what it would look like with just in, like, a sort of avatar

00:21:05.970 --> 00:21:08.050
favicon kind of scenario.

00:21:08.370 --> 00:21:19.495
And so this is where I end up picking again, like, I've designed or built nothing. It's just brand stuff. Mhmm. And that's where I end up landing on that. And then I take that and say, like, here are the colors that I want.

00:21:20.535 --> 00:21:22.855
Here's the logo, like, SVG files,

00:21:23.095 --> 00:21:34.520
and I and then I'll jump into code. Then then you're, like, maybe work on the value prop to copy and stuff with, uh, with AI. Right? Correct. Yeah. Yeah. And I'll you know, I the marketing page stuff is kind of interesting because it's

00:21:35.080 --> 00:21:37.240
I usually do that after I've built the app

00:21:37.560 --> 00:21:41.335
because I'm, like, figuring out what the app actually does.

00:21:41.815 --> 00:22:02.330
You know, I have a high level idea of what I want, but, like Yeah. How that actually translates into features is there's a whole you know, it's multiple days of iterating on that. And so then after I've feel really solid in that, I'll then say, like, let's generate a marketing site. Here's, again, brand stuff. I like the the these textures. I kind of want this, like, urgent

00:22:02.650 --> 00:22:11.035
sort of tech. Not like, military is the wrong word here, but this is sort of, like, a little bit more sort of edgy, like, soft typical. Yeah. So

00:22:11.195 --> 00:22:12.955
I like that sort of vibe.

00:22:13.435 --> 00:22:21.995
Now I'll also, like, look through the entire feature set of the of the app we've built and, like, generate marketing copy. Oh, that's interesting. That's pretty interesting because

00:22:22.330 --> 00:22:32.810
that also I wanna ask you next. Like, I was gonna ask you, like, what kind of MVP or how do you validate demand? But it sounds like you guys should just build the product first. Let us build the whole thing. Because because I guess it's cheap now to build the whole thing of the AI.

00:22:33.290 --> 00:22:33.930
Yeah.

00:22:34.250 --> 00:22:36.570
I mean, which is that that has not always been the case.

00:22:38.385 --> 00:22:40.705
But I still think people have

00:22:41.105 --> 00:22:54.330
have a tendency to want like, it's terrifying launching something, period. Yeah. You know, I've been doing it for twenty five years, launched hundreds of stuff, uh, different products. And, like, every single time, it's just like, god. Like, what if zero people care? That sucks. Uh,

00:22:54.890 --> 00:23:10.635
and so as humans, we tend to delay that stuff by by having a landing page where we collect email addresses and then, like, try to translate that into demand or something, and it's just not. Um, it's a distraction. So I just suck it up, build the thing, and shove it out there and see what happens.

00:23:11.195 --> 00:23:14.875
So yeah. So, like, yeah, you're like a serial builder. And, um,

00:23:15.275 --> 00:23:19.435
so bay basically, my understanding is you pay you kinda just, like, build something to solve your own problems,

00:23:20.030 --> 00:23:29.790
and then you just build it, and then you and then you spend a landing page, and then maybe like, how how do you get I eyeballs? How do you get demand? Do do you It's it's social media. I mean, yeah, you know, I got whatever. 60,000

00:23:29.790 --> 00:23:31.710
followers on Twitter,

00:23:31.710 --> 00:23:40.475
and it's like, that helps Yeah. Get it started at least. And do you worry that, like, you know, like, does this still happen to you? You lost something and no one cares? Like that? Oh, absolutely.

00:23:40.635 --> 00:23:42.635
Oh, man. Yeah. Yeah.

00:23:43.115 --> 00:23:48.920
For sure. And and some of this is like, that's not because what I have to what I battle against is

00:23:49.480 --> 00:23:50.440
not that

00:23:50.760 --> 00:23:59.000
like, I think if I I'm so quick to, like, move on to other things that, um, I'll stop talking about something and, like, just people forget about it. So,

00:23:59.320 --> 00:24:00.920
like, where where I

00:24:01.295 --> 00:24:08.975
sort of need to, like, do better is talking more about the things that exist that I've built already instead of just, you know, building new stuff.

00:24:09.855 --> 00:24:24.830
And and and do you usually launch something with, like, a paid version, or or is it kind of like how do you know what was per market fit? You know? I Right. I I yes. I try to always have a paid version of something. The open source stuff is kinda like, clearly, for instance, like, markdown editor.

00:24:25.150 --> 00:24:41.755
I don't know that I'll ever charge for that. Um, it doesn't cost me anything. So but anything that has some sort of hosted, you know, infrastructure servers that have costs, I yeah. I charge for it, and hopefully, somebody pays for it. And if they don't, then, like, it it gets so far. I'm just like, okay. Well, then, like, I'll shut it down.

00:24:42.680 --> 00:25:00.335
Okay. Do you worry that, um, one thing that, like you know, I'm I'm more I'm much more of a novice builder, but one thing I worry is, like, maybe I need to get over this. It's, like, my reputation is online if I watch some new shitty that no one cares about. Like, do do you how do you get past that? You know? Um, I feel like I've just been I've been building stuff for so long that,

00:25:00.895 --> 00:25:03.855
um, I don't I don't I don't worry that

00:25:04.175 --> 00:25:06.255
somebody's gonna, like, think it's dumb.

00:25:06.495 --> 00:25:08.175
It's just

00:25:07.970 --> 00:25:14.130
because everybody's different and, like, I might I have this itch, but I might be the only one who has the itch.

00:25:14.290 --> 00:25:18.050
So Yeah. That's fine. Doesn't invalidate that there's an itch, but, like, maybe

00:25:18.690 --> 00:25:19.890
there's not enough there to,

00:25:20.495 --> 00:25:29.535
you know, cover the costs. I think that's where it comes down to for me is, like, does it pay for the servers that like like, Reply Social, for instance, has all these, like, API

00:25:29.615 --> 00:25:31.375
data sources that cost money.

00:25:31.535 --> 00:25:37.800
And Yep. If it's not covering the cost, like, it's not a charity. Like, I'm not it needs to cover its costs.

00:25:38.040 --> 00:25:38.760
Um,

00:25:39.240 --> 00:25:59.185
but that's kinda tends to be the the the line for me is like, okay. If I spent thousands of dollars just, like, fronting the costs of this and I still can't get anybody to pay for it, then, like, I don't I probably need rethink some stuff. But if you if you have some paying customers, you shut it down. They just have to send them an email and be like, hey. You know? I'm I'm shutting this down. You have to Yeah. Which sucks. Like, I I'm I'm Yeah. You know? I

00:25:59.825 --> 00:26:02.305
I do try to be a little sensitive to that where

00:26:02.480 --> 00:26:08.560
if somebody's paying for something, you know, what I'll do is if I shut it down, then let's refund them the past few months or something.

00:26:08.960 --> 00:26:13.280
Um, that doesn't take away for the fact that they now don't have access to a tool that they needed. But

00:26:13.680 --> 00:26:16.160
so that's sort of the reality of business as well. It's like

00:26:16.725 --> 00:26:17.445
things

00:26:17.685 --> 00:26:39.360
yeah. I'm not paying for other people to use it. I think one thing I worry about you even just with the Substack newsletter, like, I used to have a monthly subscription, and then people are just like, if you if you charge too low, like, a couple you know, $20 or something, then people are just like, hey. I want a refund. I want a refund. And there's, a shit ton of support that comes in. This is a paid ass. So eventually, I decided to just, like, charge couple $100. Like, if you can't afford it, then, you know

00:26:40.560 --> 00:26:43.465
yeah. Do you have that kind of yeah. Yes. So

00:26:44.345 --> 00:26:53.145
that which is, like, that's very typical of, like, any kind of product stuff. It's like the these, like, really low cost plans tend to have the highest

00:26:53.625 --> 00:26:55.145
Sure. Support overhead. Yeah.

00:26:55.860 --> 00:27:00.420
Uh, but I guess for your like, since you have five products or, like, you know, however many of us, like,

00:27:00.900 --> 00:27:03.380
you you probably do you have a support email for each? So, like,

00:27:04.020 --> 00:27:13.395
do you worry about just, like, matching support? Yeah. No. So, like, I do have a central or, um, I have an email address for each service that all just comes to my inbox. I also,

00:27:13.795 --> 00:27:18.515
um, man, I'm I'm I'm sounding like a shill here for all my skills. I have a skill that

00:27:19.155 --> 00:27:22.035
generates an entire in app chat support

00:27:22.530 --> 00:27:24.290
system within your app.

00:27:24.930 --> 00:27:28.850
So people can, like it's like intercom replacement, but, like, inside the app.

00:27:29.090 --> 00:27:29.570
So,

00:27:29.970 --> 00:27:34.290
um, people can just chat inside the app, and it sends it to there's a whole, like,

00:27:35.265 --> 00:27:39.665
support. Well but it's still just it's still just me in there, but, like, I'm not having to

00:27:40.625 --> 00:27:47.665
I it lets me do more efficient support because I I have the context of their account inside that chat. And,

00:27:48.225 --> 00:27:51.000
you know, I also can kind of compartmentalize

00:27:51.000 --> 00:27:58.760
it like, okay. I'm ready to work on support for this product. Okay. Let me go work on support for this other product. Got it. Got it. Okay. Yeah. It it feels like

00:27:59.000 --> 00:28:06.765
as a solo builder, anything that you don't wanna spend time doing, you can just kinda build a scale to try try to automate that as much as possible. Yeah.

00:28:06.765 --> 00:28:08.925
I think, like Yeah. You know, the

00:28:09.885 --> 00:28:12.525
AI has leveled the playing field in a lot of ways.

00:28:13.245 --> 00:28:13.805
Yeah.

00:28:14.765 --> 00:28:24.360
At the same time, I think, like, I'm able to do things very efficiently because I've got twenty five years of, you know, sort of boots on the ground, like, experience

00:28:25.000 --> 00:28:28.840
in the trenches of, like, building all these things pre AI.

00:28:29.160 --> 00:28:29.880
And so

00:28:30.335 --> 00:28:43.295
I, like, I know the general shape of how I want things to work. And so I can very quickly get to that point and decide, like, this is gonna work fine. Oh, this won't work fine. Oh, this is gonna be a real problem in a couple of months, you know, whatever. So

00:28:44.640 --> 00:28:49.680
I can get to, like, a shippable point on stuff or fix problems pretty quickly just because I've

00:28:49.920 --> 00:28:51.280
dealt with these problems

00:28:51.760 --> 00:28:54.560
pre AI, I think. Just a few more questions.

00:28:55.280 --> 00:29:09.545
I think there's gonna be a lot more builders now. Right? Like, people who are Sure. Who don't have, like, fifteen years of experience like you you you do. Like, do you have any advice for them, uh, as they kind of vibe code all the stuff? Like, how how can they actually learn some of the technical stuff that's actually important to work with agents?

00:29:09.705 --> 00:29:23.030
Yeah. Yeah. I think it's just failing a lot. So, like, people people give, you know, they use, like, vibe coding as, a slur. And, like, the reality is that's it's fantastic that anybody's building anything, and the only way that they'll ever figure out

00:29:23.590 --> 00:29:26.710
what not to do is by doing the thing incorrectly.

00:29:27.515 --> 00:29:31.115
I think any kind of, like, AI assisted coding

00:29:31.595 --> 00:29:38.555
reduces the number of mistakes that you'll make. But, like, this idea that mistakes didn't exist pre AI is insane.

00:29:38.635 --> 00:29:39.035
So

00:29:40.470 --> 00:29:45.030
I think it's just making the mistakes as fast as you can and and recognizing

00:29:45.030 --> 00:29:48.390
what the mistake was so that you don't repeat it.

00:29:50.390 --> 00:29:51.830
But there's

00:29:51.830 --> 00:30:05.305
no, like, real replacement to just jumping in there and doing it. And I think and, like, putting stuff out there. So so the idea of, like, spending months working on something before you put it out for other people to use, I think that's a that's a real bad idea.

00:30:06.425 --> 00:30:08.585
Um, there's no reason not to just throw it out there now

00:30:09.390 --> 00:30:22.190
and see what happens. Why would you say, like, a lot of projects worked on? Like, how long do you work on it before you just put it out there? Like like like a week or something or a couple days even? There's been stuff where I've launched within twenty four hours, like, um, or even, like, same day.

00:30:23.375 --> 00:30:27.295
That's not always possible, but as fast as I can. Absolutely.

00:30:27.375 --> 00:30:34.815
Yeah. That that's actually something I struggle with too. Like, I kinda wanna make it really, really good and perfect, but then, like, maybe no one no one cares. Like so so, yeah, you gotta launch fast.

00:30:35.470 --> 00:30:39.790
Yeah. And there's so many times where you'll build something based on your own assumption of what the problem is,

00:30:40.110 --> 00:30:56.605
and maybe it solves the problem exactly for you. But what the problem is for somebody else is similar, but, like, it looks a little different. And you can't know what that is until somebody else is in there and is like, well, what about this use case? Like, oh, I hadn't thought of that. But, yeah, because it's somebody else. And so you just need to get those other perspectives

00:30:56.685 --> 00:31:01.885
as fast as possible. That's good advice. Alright, dude. Well well, where can people find you online? Where can people find your projects?

00:31:02.380 --> 00:31:07.180
Sure. The the the best place is just on Twitter. So, uh, at Spigford.

00:31:07.740 --> 00:31:14.540
I I'm just you know, I post there a 100 times a day and talk about all my products and stuff there. And my bio's got all the links to

00:31:15.020 --> 00:31:23.015
my 50 different things going. I also really like your blog. Uh, every day is a year dot a I is is very well written and very practical.

00:31:23.575 --> 00:31:27.815
And, uh, I I love the Rats for OpenCloud, and we can talk about that next. Yeah.

00:31:28.135 --> 00:31:28.855
Perfect.

00:31:29.095 --> 00:31:32.295
Yeah. Alright, Josh. Thank thanks so much, man. Thanks for having me, Peter.
