Development & Deployment for a Layman

A real conversation between a layman and an expert, documenting the insights and learnings of the tech world

Hey — It's Husam.

All of the below insights/learnings was possible because of a layman like me, asking the right questions(me); And my dearest friend Firas tending to these questions and answering them.

This blog/article is essentially a culmination of my learnings and understandings from the past two years of development and deploying websites or tools for the internet and for the people.

I stumbled upon these questions and reached out to my friend as mentioned above and was able to get these answers.

I decided to document all of the learnings and insights as it is.

All brilliance in this article is Firas’s; Any mistakes are mine

This formatting shows I’m asking a question to my friend

This formatting shows I’m quoting my friends response

The following are the questions & answers during the conversation:

I was displaying a project I am working on to get feedback:

but the fact that it is a one page application bothers me, the back browser button doesn’t function on this, that’s bad practice

Feedback from Friend

Me: I understand, Is there any video/doc which can explain this…do send

You used React?

Friend

Me: I used NextJs(React)

Ah then very easy, next js was built to solve react’s default one page style

Just need to split up your components into different folders and it’ll have different routes

Then you can just hyperlink between them
https://nextjs.org/docs/app/building-your-application/routing/defining-routes

Currently all of them are in a single folder, under the components folder
https://github.com/HUSAM-07/AccessX

Friend

Me: Also I want to start learning building applications using a stronger backend, like Djano + React/NextJs ( I’m assuming all modern tools with good scale use this )

Ah so what you have rn is a bit of a structure issue. It works and everything but it becomes a one page app which isn’t ideal

It also doesn’t take advantage of “use server” which is one of next js’s best advantages

So instead of just one page.ts and all routing handled in maincontent.tsx, read that documentation link

Look into putting navbar in layout, dashboard, attendance each as separate pages, separate page.tsx in different folder (next js routing is by folder names)

Friend

Me: This is a very good piece of info, I could’ve done much better If I was aware of this previously

did know about this, (next js routing is by folder names)…but never focused on using the features…currently still learning react/nextjs

Yep that’s the thing most of these “advanced” libraries never stop you from doing anything, good in one way, but then many times you’d end up missing their important features

Friend

Me: Mhm…I’ve understood one thing over these years…most of the languages/frameworks can build almost anything…it’s just that some of them are a bit easier than the others or easier to scale, correct?

Kind of yes, see people say Django>flask

But technically you can do the exact same things, however it will take much more time to make those things happen in flask- ie: django is more production ready than flask with a lot of built in stuff

Then again for a small project I would choose flask cause I don’t need to deal with all that headache

And when it comes to frontend, specially those deployed on vercel, netlify, GitHub pages — so called “serverless” the tech you used to make it doesn’t matter for scalability it’s all on the server

Friend

Me: Also, check this out:

Pretty cool, I think automates/simplifies a bunch of stuff that was manual deployment before

Friend

Me: Yep, considering there are very rare python supported frameworks for production ready env

How do you determine whether something is prod ready?

I’m assuming there is stuff like how much it can handle etc?

Like Streamlit is not good for proper applications…maybe for more than 100 people using it or something

90% of the time the bottleneck on speed or number of requests is only on the server hosting it, not on the framework, unless someone messed up the code then it’s a code issue can’t blame the framework

Streamlit I think improving but they don’t have some important production safety features plus I don’t think it can run multiple requests parallely which is like minimum requirement for a decent webserver (django, flask do it on deployment)

Friend

Me: Also, these big companies do not host their websites on vercel etc ?

Vercel paid plan gives you better servers so they can
But most would do it in house or in some expensive cloud where they might vary the resources they use depending on the traffic they get

Friend

Me: Ohk…so all these big companies use AWS/GCP/Azure to host their sites/softwates

Pretty much, a big advantage with cloud, apart from choosing the scalability and resources you want

Is the locations, a server closer to your customers means faster load times. A global company would like to spread their workload to different servers across the world and that could be very expensive/impossible for medium size companies so cloud can do that for a nominal fee

When your business is tech, at that size I think they should be doing it in house or AWS/similar at the most, likely a hybrid of both

Friend

Me: Makes much more sense now

Thanks to my dearest friend, Firas; This is a real conversation that happened between me and my friend today(on WhatsApp)

The purpose of publishing this on the internet is to document these learnings and sharing these insights which usually are acheived after a considerable amount of time in the Industry

Find my website

Until next time, peace✌️

Finally. If you enjoyed the issue (or missed the newsletter) do reply. It's motivating.

See you next Monday — Husam

Enjoy the newsletter? Please forward to a pal. It only takes 10 seconds. Making this one took 2 peeps conversing on WhatsApp.

Reply

or to participate.