2
4 Comments

Tips for learning enough to actually finish an app?

I'm trying to build a web app with the MERN stack but I find that even though I'm a competent programmer (I was a full-time developer for ~2 years) there are just so many little pieces that I don't understand and don't even know I don't understand and so creating a professional-looking web app is really hard.

For example, today I stuck by not realizing that my front-end wasn't storing a session token from my backend. Now I need to figure out how to manage those cookies in order to have persistent sessions. That's not impossible, but it's a huge time suck to do that stuff over and over again.

How do you guys deal with that? Where do you go to learn about all of the little pieces?

on February 11, 2021
  1. 3

    I deal with it by trying to think of it as a learning experience and not a time-suck.

    The thing is, the little pieces are all different for everyone. The libraries and languages and techniques you use will all determine what those little pieces are.

    Now you know how sessions work and how to manage them with cookies (which is something I don't know, because my app doesn't use sessions or cookies). The long term benefits of greater understanding hopefully outweigh the frustration and lost time.

  2. 1

    I totally agree with what @0441design said - if you're using a stack that you're not familiar with there is always going to be a learning curve. Realizing what you don't know is part of the journey, and learning the new "little things" is the way you ultimately level up.

    That being said, if you're finding that learning these new things is a "time suck" it may be worth considering whether your goal is to really learn the stack (MEAN) or if it's really to build the final product. While learning new tech is great long term, if it's really just a roadblock on your quest to make a new business/product/app (which I assume is the case for most people here) then maybe this isn't the right project to start learning something new.

  3. 1

    You should seriously consider taking a look at moving your app to AWS (or other cloud of your choice). I run my businesses on AWS, and all of my infrastructure is either represented as a JSON file (Cloudformation), or as TypeScript code (AWS CDK). In fact, my QuickBooks Online connected firm is entirely serverless and runs in AWS. See https://www.indiehackers.com/product/lend-a-hand-accounting?utm_campaign=digest-daily&utm_medium=email&utm_source=indie-hackers-emails

    I don't know what your backend looks like, but again, I would recommend moving to a pure serverless microservices structure. The front-end app (you are using React) is simply the View, and you use a lambda function (or other cloud equivalent) as the "passthrough" layer. This approach forces you to pretty much use a "stateless" design. In this scenario, you build a service (1 or more) responsible for calling the backend, and check the validity of the stored JWT token on each call.

    Yes, there is a learning curve. However, I strongly suggest you move to this model ASAP. The ability to write Infrastructure As Code and track via version control for ALL of your infrastructure is priceless.

    I actually started a premium course on AWS CloudFormation, but decided to post in on YouTube for free. I need to upload the remaining lessons, but it covers all you need to know about CloudFormation. I think that is a good place to start. https://www.youtube.com/channel/UCWrJDAWXQGiEVifniGRuIug/playlists

    Of course, this is my recommended approach, so find what works for you.

  4. 1

    I try to reduce and reuse
    In place of dealing with auth and backend db comms I use firebase
    In place of bothering with too much UI, I use framework 7
    Inside I use a made gallery, swiper..

    Just try to think what the generic of what your trying to do is called and see if it's pre made for you somewhere...

    Also used some free images..

    Take a look at this to see how far it can go...
    https://gardenbookapp.com/

    Like non of the animations, or UI is original, just a few strings and putting the Lego parts where I want them

    This is about ~2 months with no knowledge of any of this stack ahead of it, just html and CSS, very basic Js before, read react, this is on svelte which is new to me, firebase is new to me, f7 is new to me ... While I know coding 90+% of this is first time, and the app is not a lot, just MVP, but I think that's quick, functional, and reasonable, minimal look includes users, db, cam, image gallery