Sharing My AI-Powered Coding Workflow To Build Apps REALLY Fast

Biz Builders Base
23 followers
I've built over 14 different apps over the past four years at this point, and probably for 99%
of those apps, I was the only developer. I was a solo developer building the app by myself. Now,
over the past four years, the coding and app building landscape has changed dramatically,
primarily with the introduction of LLMs and AI-powered coding. And I, you know,
you know, not to flex or anything, but I do consider myself a pretty early adopter for
all things AI coding related. I was pretty early with GitHub Copilot, pretty early with Cursor,
all these AI-powered code editors. And with that in mind, over the past year, I do feel like I've
found a good workflow that works for me as a solo developer to help me build a lot of apps really
quickly. And that's what I want to talk about in this video. I want to talk about my AI-powered
solo dev workflow to build apps really quickly. So let's get started. Now, for this video,
I do use Cursor as my AI code editor of choice, but I'm not sponsored by them. I have zero
affiliation with them whatsoever. It's just what I use, but any talks about like the workflow I
gave in this video should work with any AI-powered code editor of your choice. Now I have a whole
separate video where I go about my entire process of how I find ideas of apps to build. And you
should definitely check that video out yourself. So the first step of the process. So let's say
that you have an app that you want to build. The very first part of the process is designing the
application and figuring out the UI layer of it. I really don't focus too hard on the database,
the schema of it all. The first step is very minimal coding. It's all UI explorations,
because at this point in 2025, at the time of filming this video, I do believe that the bar
of quality for apps have really gotten a lot higher. And typically one of the easiest signs
of quality is the UI and the UX that the user goes through while interacting with your apps.
And then once I have the UI laid out, that's when I started thinking about the whole backend process.
So with the app that I want to build, I immediately start looking for other competitors in the space.
Now for myself particularly, I only build apps that already have proven market validation,
that have proven track record of people willing to pay for that product. I have a whole video where
I go into my entire like app building ideology in a video right here. I believe it's called
how I build apps solo that actually make money, something like that. Check that video out. I go
much more in depth. But the TLDR summary is the fact that I only build apps that already exist
out there in the world and have proven business models. So because I do that, I immediately start
going at all the other competitors and I sign up for their applications and see the various UI
inspirations and the UI flows that they're going through. And then I just start creating this
mental model in my head about what I like and what I didn't like. And then I also love taking
a bunch of screenshots of the various applications and dumping them into like some folder on my
laptop because I use these screenshots later on in my AI code editing process. I had a bad habit
previously where I would not design the application at all and instead I would just go straight into
building. But oftentimes that wasn't really good because I find myself like building some initial
iteration of the UI realizing, oh no, this looks really bad. Then I would go back and try to
redesign it multiple times over and over again. So now I really like to spend that extra effort in
the beginning to kind of nail the UI a bit more. And I'm not a good designer at all. I have a
pretty bad eye for design if I'm really being honest. And I am ass at Figma. I'm so garbage at
Figma. I've tried to learn how to use them multiple times, but I'm just so slow at it and it just feels
so inefficient. But now with the rise of AI coding, there's also AI powered design. So I use a tool
called magicpatterns.com. It is an AI powered design tool, kind of like an AI powered Figma
almost, but it spits everything out in code. It's an awesome AI powered prototyping tool. And I have
been using lately to kind of create the general UI mockups of my app. It's all with natural language
where I tell it to build something. I can ask it for edits just by chatting with natural language.
Great product, 10 out of 10. And also one of my good friends from college is actually the founders
as well. This is not sponsored. He did not pay me at all to plug this. He doesn't even know I'm
talking about this product in this video. I'm just a big fan and I pay for the product myself. And
then within magic patterns, you can also take all of those screenshots that you took of the
competitors as well as through Mobbin and dump them into magic patterns to figure out what exactly
your UI flow is going to look like. So that's step one. And I spent a pretty decent amount of time
figuring out the design process of that. And then once I figured out the UI that I like, that's
when I started moving over to actually planning out what the backend data structures are going
to look like. And this is when I opened up my AI powered code editor. Now with cursor, and I'm
pretty sure with all of the other AI powered code editors as well, you can add MCPs into your code
editor model context protocol to provide the LLM with greater access to various other tools that
you are building with. Now for my personal tech stack, I use Next.js with Superbase in the background.
I use Superbase for literally everything in my app. I use it for authentication, storage, database,
every now and then functions as well, like edge functions, webhooks, all that stuff. I've been
a long time Superbase user for probably the past year or two, and it has been a staple in all of
the apps that I'm building. And the best part about this is that Superbase actually has an MCP
that you could plug into your AI code editor of choice, mine being cursor, like I said before.
And by doing this, you give your AI code editor access to seeing what does your Superbase database
schema look like? What is the structure of how your Postgres tables are laid out? So now I connect
my Superbase MCP into my cursor editor. And then from here, this is when I started figuring out
kind of the system design of what's going on. So now with the Superbase MCP plugged into my cursor
code editor, this is when I start figuring out the whole backend process of what the system design
is going to look like. What are the database tables looking like in the backend? And LLMs are
really good at system design. At this point, I'm usually pretty good that I know the general flow
of like, all right, well, I'm going to create this user's table, and then this user's table
is going to link to this table, blah, blah, blah, blah, blah, blah. But every now and then I have
to go out and build a brand new feature that is net new that I have a little bit more trouble with
in terms of figuring out what the system design is going to look like. It's particularly what the
database table design is going to look like. And that is when I start using the LLM chat function
within cursor to figure out what that database schema design is going to look like. I describe
the feature, I then tell cursor, hey, this is what I want to build. So then from here, I open up the
chat window within cursor, and I connect it to my Superbase MCP. And I started chatting back and
forth about what should the database design look like. But I also use cursor to help me generate
the system design of the architecture of my application as well. And it does a really great
job of it. So as you can see right here, cursor not only helps me with the design process of the
UI and the UX, but it also helps me with the system design, the database design of it all.
And when using cursor, I am a big proponent of using a ton of cursor rules. I think luckily,
like a week ago, cursor just released a brand new tool that actually auto generates these cursor
rules for you with just one simple command. And generating cursor rules is really convenient
because it provides cursor with the additional context about what exactly your application is,
the tech stack that you're building, what the general product structure, your coding convention,
coding tendency, very, very useful. If you're not using cursor rules in your code editor,
highly recommend that you do that. All right. So now I chat back and forth. I figured out what the
system design with the backend architecture is going to look like. And now this is when I actually
start building. Here are some of my general strategies that I use to use AI to help me
build out my applications, which are typically written in Next.js with once again, the Superbase
powering authentication backend, all that stuff as well. Whenever I build any feature using an
LLM to help me code, the number one thing I add to every single one of my prompts is at the very
end of my prompt being, do not make any changes until you have 95% confidence that you know what
to build. Ask me follow up questions until you have that confidence. This tiny little sentence
that I add at the very end has vastly improved the performance of the code that the LLM writes
for me. Because if you don't add that, sometimes the LLM gets a little too cocky. They're like,
yeah, bro, I can do this. It's like, Whoa, chill. Like you don't know what you're doing.
And oftentimes they don't. And they write way too much spaghetti code and they don't really know
what you're asking for. So I do find that adding that little prompt at the end of like, Hey, ask
me any clarifying questions that you have until you're really, really confident. You know what
to build. It's helped out a lot. Highly recommend that you add this to all of your prompts as you
start coding with LLMs. Another general tip that I typically do is don't ask it to do too much.
I think if you ask it to build way too much in one prompt gets a little confusing. Instead,
if you have a gigantic feature that you want to build, just ask it to build one thing,
one step at a time, like one UI blog, one function, one API route, one step at a time,
and just keep everything within that one gigantic chat context. Kind of progressing into my next tip
is that I do my very best to not make new chats as much as possible. Whenever I'm trying to build
a particular feature, do not make a brand new chat. I try to do as much work in that same chat
context because the longer and more details you provide throughout that chat, the more context
it's able to provide to the LLM and the more context that it provides. I do find that it
performs better and it knows more about what exactly you're trying to build and the errors
that it's made in the past. So I do my very best to keep everything that I possibly can in the same
chat history, in the same chat conversation, without starting a new one. Because when you
start a new one, you lose context and you're kind of starting from ground zero again. At this point,
if you're following my workflow exactly, I have both a screenshot of various apps that I like,
the UI components of various apps and competitors that I like, and I also have the actual designs
with real code from a Magic Patterns as well. So from here, what I do is within Magic Patterns,
they have actually the actual code that you can copy and paste just directly into your application.
Very, very useful for that. My typical workflow is I go through Magic Patterns, I go through all
of my UX designs, my UI designs, and then from here, I pick out all the parts that I like and
I copy that code just directly into my AI Code Editor, it's written it all out for me. And then
from there, if I want to do any further refinements, because you know, sometimes things could
look different from the AI Code Editor versus the actual designs, you know, maybe you want to switch
some things up in that moment. That's when I start importing in all of the various screenshots and
pictures that I took earlier on and I dump them into my Code Editor as well and say, hey, make any
changes to make it look more like this or change that particular component right there. I always
attach a ton of images into my AI Code Editor every single time I think it provides them with
more context of what's exactly going on, especially with UI bugs. If I see that a Code Editor tries to
build something out, but it looks a little weird, I always take a screenshot and I upload it into my
chat conversations being like, hey, this is what it looks like right now, it doesn't look right,
please fix it. I personally feel like I get better results every single time I attach an image when I
try to fix a UI bug compared to just asking the LLM to fix my code without any context of what it
actually looks like. And I basically rinse and repeat this entire process every single time for
every new feature that I built. I see what competitor is doing, I see what I like, dump them
into my AI design tool, magic patterns, figure out what UX I want to move forward with. Then once I
have the UI figured out, then I figure out what the backend implementation is going to look like,
what the new database tables are going to look like, what's the architecture going to look like.
I do that by using my Superbase MCP connected to cursor to chat back and forth to figure out
the correct system design for this. Then I put it all together in the final stages of implementing
those backend changes and continually fixing bugs by taking screenshots of the UI bug,
uploading it into my chat, continually iterating that way and keeping everything within the same
chat window, same chat context. Then I further iterate on all the front end designs and the
front end work by taking screenshots of the UX bugs, dumping them into one gigantic chat context,
minimizing the number of new chats that I build and continually iterating back and forth again and
again until it all works out in the end. So that is my AI enabled solo dev process. Hope you enjoy
it. Hope you find it useful. Let me know if you have any questions or thoughts or opinions in the
comments down below, but that is about it for today's video. Thanks so much for watching and
I'll see you in the next one. Peace.
