How I Code Money Apps SOLO within 3 months (what I teach my juniors)

Phil Choi shows how to build full-scale apps in three months using boilerplates, repeated patterns, and organized folder structure. He walks through a React Native scaffold with login, validation, and API work using react-query, then recommends studying GitHub boilerplates and using AI tools like Copilot to keep features consistent and maintainable.
Chapters
A programmer is like a character in an RPG game. When you go through building an app, you level up permanently. You walk away with more skills and more treasure chests. Kind of like an inventory of items a programmer has access to to do bigger and more difficult challenges. In this video I'll show you the reason I am able to build full scale functioning apps super quickly. It comes down to my treasure test and my past experiences. So my name is Phil. I became a senior developer after writing my first line of code at the age of 30. If this video becomes of use to you, please like comment on an experience or a cool piece of function that you coded out. I kind of built out like a bunch of boilerplates when I was first starting to code like web project or like mobile project or a backend project. And I just start with a bunch of code that I already have pre built so I don't have to start from scratch or if I build from scratch. I built it so many times, I. I know how exactly how I build it. So recently I'm working on a mobile app that I'm creating and you know, I have my folder structure and everything already all structured out so I already know what to do. So I'll make this a little bit bigger. And if you look at my readme file, I already know that my folder structure, I'm going to have my root, which is like my root of my app. And then I have my src. I have my assets that I'll use for images or logos, SVGs or even animations. I'll add that. Now the animations and components where reusable components go. And I kind of, kind of do that like atoms and molecules and organisms and then I have my form components that my reactive form controls. And then I have my configurations. So I have my app config, I have my index ts. And then, oh, I already did that. And then I have my hooks, I have my navigation and I have my screens and my services where my networking goes. And then I have my themes, my types and my utils. So if we look at this app, I know it doesn't look like it's much, but it's really easy to work on because I have everything set up. Like if I need a logout function or if I need to log out, I could just re. Add the login button, log out button, initial screen, I'll just add that right there, turn my copilot off for a second and I can just import logout or what is it? Firebase. Firebase service. I have A logout user function in here. So I'll just go here, just import logout user from Services/Firebase Service. There we go. And I'll just make a button here logout and here I'll just do unpress equals logout. There you go. Now that should get added right there. And now I can log out and then I can press get started. It shows I have a login screen, I have a sign up screen. If I try to submit it has my validation all set up and if I sign in it's going to give me some warning messages. There are some tasks that are still left to be done. Something went wrong, come, there we go. And then it goes in and then I have everything set up so I can start coding and everything is kind of coded in the correct, in the correct places that I need. And I like to read about the, like we're using react native elements in this code. So I just set up like my themes, like, like my button props, my text props, my theme, my colors and then I can kind of use that in my theme provider or the modes that I have the light mode and dark mode. So I have my index where I set up my components. I probably need to do this a little bit differently but it's almost all done and I have my spacing, my border, adi everything all set up to kind of help me use it very easily. So I've definitely, I coded this out kind of from scratch but because I built so many boilerplates and so I mean I built other apps before in production, kind of built this out pretty quickly. It didn't take me too much effort and I liked, and I like working on this because when I think about an app, right, you have to think about the future and how if like, if a single thing is uncomfortable, you kind of have to make it. I'm not going to want to work on this code base so I like to make it as comfortable as possible to kind of work on. And that kind of comes with like building things out and looking at other pieces of code. So I mean if you don't have a boilerplate already you can like start to build one like just, I guess like just get started building. And there's a lot of AI tools recently like GitHub, Copilot or GPT and I'm sure you could get some influence from there and just if you ask it the right questions it could really help you. And I mean one thing that I always like to look at is like GitHub.com and then you can just look up like React native boilerplate, right. And then you can kind of look at it maybe something with a star. A lot of stars. I like both of these ones. Let's look at like the React native starter kit and then if you actually press dot on a GitHub repository, it'll open up a web editor. As you know, VS code is made with JavaScript anyways with electron. So I'll allow this. Allow so you can like take a look at all the code. It has components, constants, containers, images, lib models, routes, routes or store and tests and kind of, you can kind of base your kind of code and you can know that you're doing like maybe something that not like super random because you know it's all about like kind of following, you know, taking influence from other code and reading about the documentation and kind of like making sure you know you're not trying to fit like a. Like say there's like a small little. You're doing a puzzle. I'm sure you could jam in like any piece into that part. But you kind of want to make it as easy as possible with the settings and configurations. So definitely like it's pretty cool. Like you have the app name and you can do like these error messages and all this kind of stuff, which is pretty cool. And I'll just take this, take like influence from here. Take what I want, take what I don't want. It has like models, it has some kind of like fetch list and all this kind of stuff. Yeah, I like, I wouldn't make my models like this. This is a little bit too, you know, a little bit like complicated for me. But I would much rather make something like my own on my own a little bit. And you know, you could just take influence and can kind of keep looking and make sure that you're doing something in the right way. You can take a look at this rcrc. You can see that they have their translations or navigation is all set up. You see how their application like tsx. It's pretty cool. You have a navigation container. I did something very similar. And you can see their hooks, you see their domain, their user domain. Hooks use user. And I'm sure whatever you use this, you get the user from the react query. So that's something I still have to hook up in my com in my code base here. So I'll do that next. But I set up everything already and I already know like what structure I want. So I have maybe my. I have my services folder somewhere here and then I have my Domain folder. And I do have like my API client that I'll handle like the interceptor here and make sure that authorization token gets put into here. I have exactly how I want to use my API here. It's kind of like coming from Jquery Influence a little bit like the dollar sign ajax. Anybody remembers that. And then the API types I have my generic function that I can pass in my request and response and it'll help me with my types later. And then in like that domain I have, I'll have my index where I, my react query will go. I have my query keys while I put my react query react query keys. Then I have my repository where my APIs are actually getting called with my API client. And then I have my types where I have my create user payload that I'll connect with the, where I'll probably use this and I'll probably do export type create create user response. And then I will use something like this and then I'll import in, take out this get a copilot thing and then I'll do import server server API and then I'll, I'll do like an export type create user server and then I'll equal that to the server API. I'll pass in the create user payload and the create user response and I'll use that with my, my API and react query later. Yep. And so definitely referring to documentation and GitHub. And the standard way of doing things is super important, but I'm sure once you understand the standard way to do it, you can put your own flavor on things and do what's comfortable for you. So I mean a code is really important because once you, once you start with the structure, everything should kind of like be very consistent and you have to keep the same patterns you're using. So like later on I'll make like the community posts folder where it'll be index, query keys, repository and types and I'll kind of use that same pattern for all my API requests. And you know, everything will kind of be coded out like, you know, even if someone else comes onto it, it should look very much like one person has coded it. And that's super important because once you kind of get other people's hands on it, you have to kind of maintain it and you know, it's just about getting, building and keeping on going. So you know, like, definitely, like just try to build stuff and build stuff from scratch. I think that's something that I'm very good at. Like I can kind of just go with nothing and kind of build it out and take influence from things I've built. And, you know, if you don't have a boilerplate, definitely look at documentation and GitHub and other. And reference other code. And then. And then you just have to keep the same pattern going along throughout your app and try to, you know, put a lot of thought in the beginning, because that's how. Because later on, if you want to use a different pattern, you have to just kind of, like, go back and change a lot of things. You know, just start building. And once you build one app, you can build the next. Think of yourself as a video game character that is always striving for growth. As you get stronger, you can achieve difficult feats quicker. That's exactly how it is with software development. And if I can do it, you can do it, too. Coding saves lives.
More from Phil

day in the life of a software engineer | 5 hour productivity | building my dev agency 🔥

day in the life of a software engineer | 3 hour productivity | coding my 6-figure community startup

day in the life of a software engineer | 5 hour productivity | coding our sns startup app LFG

day in the life of a software engineer | 5 hour productivity | creating apps that makes big money






