DEV Community

Cover image for Mistakes Made When Making a FullStack web app
Sobhan Dash
Sobhan Dash

Posted on

Mistakes Made When Making a FullStack web app

So Recently I've been working on a FullStack MERN Webapp. Just to give an idea I have done a few mini projects and even worked collaboratively while I was interning. And it's almost been a year since I've started web development. However, I had not built a full-scale app yet.
But at the starting of this month, I promised myself that I'll start my project and finish it by the end of the month.
Fast forward to 15th February, I started to notice that I was having a hard time keeing track of things and decided that I should write whatever I encounter as a problem and keep in mind not to repeat when I recreate new stuff.
So here are some of the mistakes that I made while building an Webapp and probably you should avoid too.

Mistake 1: Didn't Plan the Project beforehand.

My first mistake was not having a proper guideline or context to what I wanted in my app, what designs should I adopt, how do I manage my states, how to write my APIs. Nothing, Nada.
That's essentially because I thought, since I've already worked on a collaborative workspace and have an idea how that project was build, I can easily do it on my own here.

Short answer, you can't. Even the previous project that I mentioned has been thoroughly planned, and I was a part of that too, which in turn made me overconfident and loose track of what I wanted to build.

Solution:
Always plan ahead before creating any large scale app.

Mistake-2: Not using advanced concepts such as ContextAPI or Redux for state management.

I'll admit, I knew about the concepts but didn't bother to put much thought to it until much later. By then I had already created essential parts and UIs of the app, it was functional as well. So when I made changes and added new things, the existing ones started to break. I had hard time again to manage the various states and side-effects of the app.

Solution:
Use Advanced state management systems to build large webapps.

Mistake 3: Not using libraries or packages when needed.

I don't think of this as a huge mistake but a mistake regardless. What I did was to write my own css and error displaying methods.
I eventually changed the error displays using a package but it would have been much easier if I adopted it at the start of the project. The CSS could not be refactored so I couldn't do anything about it, but still I'm proud of it that the app looks good to me and is responsive.

Solution:
Take help of packages when needed. But don't overdo it, because then the app is not yours, it belongs to those packages and libraries.

Mistake 4: Time Management

This was the one of the most essential thing that I learned while building the app.
Had I planned the app before hand I would have a rough idea, how much time each component or modules will take to be built.
I had to rush into a lot of things in the second half of the month and I could see that doing that messed my code up more than I was building. I did stress over a lot of stuff which was fairly easy.

Solution:
Manage time properly so that you get enough time to relax and rebuild stuff.

So these are the 4 essential mistakes that I learnt and will be using the solutions for my next project in the month of March. If it helps in any way do let me know! and follow my Twitter and LinkedIn.

Top comments (12)

Collapse
 
spiropoulos94 profile image
NikosSp

Nice point of view there friend, but I disagree with the 3rd one.

In my opinion you should avoid libraries and packages when you can and use them when you need to save time.

Actually coding your own solution will help you better understand how this particular solution works and also you do not depend on someone elses code, which I consider a very big PLUS.

Long story short, I personally use packages and libraries only to save time, but on personal projects where the goal is to LEARN, I avoid them.

Anyway, nice post!

Collapse
 
sobhandash profile image
Sobhan Dash

Oh yeah, I agree. The reason i did not want to use any packages or libraries was solely for the purpose of learning. But eventually it started to fire back, as I had hard time keeping track of where everything was.
So I reckon we can use packagaes/libraries to save some time and make our code be tad bit cleaner.

Collapse
 
dylanlacey profile image
Dylan Lacey

I think this is one of those marks of maturing as a developer; Developing a sense of nuance around when to use a library and when to avoid it.

Collapse
 
lexpeartha profile image
Lex • Edited

I second this.
If you need to prototype mobile app quickly: Flutter + Dart;
If you need to prototype web app quickly: Svelte + TailwindCSS;
If you need to prototype desktop app quickly: Electron (if you already know web technologies) or C# etc.

 
sobhandash profile image
Sobhan Dash

Thanks for taking out time and explaining it. Tbh I'm still a beginner in Web development. So jumping right into huge frameworks or working with multiple different libraries doesn't really seem that productive to me.
However, the points that you have written will help me eventually and I will make my way to become better at it.
Also I do know Postgres and have worked with server side rendering, it truly is a work of art xD

Collapse
 
ajcwebdev profile image
ajcwebdev

Biggest mistake is not using a fullstack framework like RedwoodJS.

Collapse
 
sobhandash profile image
Sobhan Dash

I will definitely check it out. Thanks for the suggestion

Collapse
 
bramburn profile image
Bhavesh Ramburn

I agree with point 1, 3 ,and 4.
I would say it takes 1-2 years to build a solid application with everything from unit test to deployment (CI/CD), etc....

You should read clean architecture.

Collapse
 
sobhandash profile image
Sobhan Dash

Well it was a project for educational purposes. So it doesn't really have to scale that high. But I agree, it definitely needs time to get everything into a structure.
And thanks for the suggestion. I will definitely read it.

 
sobhandash profile image
Sobhan Dash

I agree. The concepts won't really change. I'll switch it up a little and try to learn Rails

Collapse
 
sobhandash profile image
Sobhan Dash

I see. What would you suggest for let's say a MERN app?
Also I meant the project design and workflow

Collapse
 
sobhandash profile image
Sobhan Dash

Sorry but can you explain it a bit?