🔥 1 day streak
549 words

What is a web application anyway?

Spoiler alert 🚨 it’s not every js framework you can think of thrown into a folder with a thousand NPM dependencies. Now that that’s out of the way, a web app is a website. Ok that’s it we’re done here, no further reading necessary. Wait, that’s not true, there is further reading. A web... thing is three parts, and you don’t need all of them, and they’ve been split up a thousand different ways and they may even be farmed out to other people’s servers but here it is.

The relational database

Or as I like to call it, the databae 😅 This is a miraculous piece of technology that was created in the 70s by wizards and has largely remained unchanged. It’s unfortunate that it has its own language and a lot of baggage, but it is still and may always be the heart and soul of every web app ever created. This is the reason why you can sign in to a website so quickly, because it’s a step or 10 steps above the files and folders that we all know and love. It’s incredible, I’ll get into SQL a bit later, but this is the one thing that you should learn and learn well, everything else is secondary.

The back end

The backend is traditionally the meat and potatoes (go Idaho!) of any web application. It routes people’s page visits to the database and comes up with html, or if you hate yourself, it returns JSON which then gets rendered on your computer which eats up your battery and makes web developers take twice as long to develop anything. Rant over. Basically if you want to move fast you make this part talk to the database and turn data into HTML. The really amazing part about the backend is that you can write it in any language you want. Love clojure? haskell? scala? idris? javascript? any language you want. That’s empowering when compared to something like native apps where you have to go through quite a bit of trouble to get things working for your preferred language.

The front end

This is HTML, CSS and Javascript. It’s up to you how much javascript you want to throw in there. It can be a little, a sprinkle if you will, or a lot, a boat load even. This part makes or breaks a slow web application is this part here. You want a fast response from the server sure, but you also need fast css and fast js. I don’t want to go into js frameworks and the 💩 show that is for security, maintainability and developer happiness and productivity, but don’t use them.

That’s it, those are the three basic parts to every web app. You might think to yourself what’s the point of making websites in 2019? Aren’t there enough of those already? No one needs those anymore, or if they do they’ll just create a facebook page or wordpress or wix or something. My advice there is that you can’t create wix in wix. The whole point for me is control and being able to do anything, making websites is right at the intersection of fun and empowering, and I encourage everyone to make one.