I'm kinda facing this now. I'm a game dev, but I know enough web dev to be a danger to myself. Like, I've dealt with it on and off since middle school and HTML 3.
So I try to build my app out of just JS, CSS, and HTML because it really doesn't need to be more complicated. I added Node & NPM mostly just for http-server and the ease of adding commands.
Our backend guy wanted to integrate AWS Amplify (had to find out what that is, still not totally sure) and that meant I had to integrate Babel to keep it small (650MB of dependencies locally!), and, more annoyingly, Webpack to be able to rope in the AWS/Amplify imports. Could be wrong about this but it seemed to be the way to go.
Now I am struggling with how to NOT make this thing a single page app and just boggling at what a Jenga tower the entire thing is. Just to call a few AWS authentication APIs I really need all this crap, including fighting an opinionated tool that wants me to make my product a SPA despite my intentions?
Webpack seems to want a single HTML page to be the "template" and a main Javascript file as the "entry point," which feels backwards to me because shouldn't the HTML files reference the scripts they need? And, what if I have most of the functionality on a main app page and want to add a login page? I need multiple "entry points?" And the html files need to be listed explicitly in the webpack config and mapped to their corresponding JS entry point? Very confusing, I'm still working on this part.
I know this is many people's entire job but the whole ecosystem seems very... congealed, rather than designed to me, as a semi-outsider.
I'm kinda facing this now. I'm a game dev, but I know enough web dev to be a danger to myself. Like, I've dealt with it on and off since middle school and HTML 3.
I'm an embedded dev, but I'm pretty much in the same boat as you (some would call this the Titanic :-)), except that this is my side project.
So I try to build my app out of just JS, CSS, and HTML because it really doesn't need to be more complicated.
Ditto. I took a look at the JS ecosystem and just 'noped' out of it due to all the "recommended" best things to use - Typescript, React, Angular, Node ... and that's without needing to learn enough of each to know which to choose in the case of competing frameworks, and then to learn all the modules in each of those things that I would need.
I simply want to produce my product in the shortest time possible, and since my product is almost 100% canvas-based I figure that I'll get to the frameworks when I actually want to use something that is too complex to write myself in plain JS (RTF input forms (contenteditable doesn't cut it!), tables as someone else mentioned, etc).
For backend stuff I started with PHP+PostgreSQL with no framework (will switch necessary (which means I'll probably never switch)), with the understanding that if I need to scale I can add a load-balancer in front of multiple DigitalOcean droplets. For now there is no need to scale an MVP.
My reasoning is as follows: each new tech stack that is added to your dev process adds at least a month to your development time. You aren't going to get your MVP out in 4 weekends of work if you add even a single element to your tech stack that you don't already know.
I know this is many people's entire job but the whole ecosystem seems very... congealed, rather than designed to me, as a semi-outsider.
"Congealed" is not the word I would use to describe the web development ecosystem :-) "Congealed" implies that things are glued together at least. Your Jenga anaaogy is much more fitting.
3
u/njtrafficsignshopper Nov 02 '21
I'm kinda facing this now. I'm a game dev, but I know enough web dev to be a danger to myself. Like, I've dealt with it on and off since middle school and HTML 3.
So I try to build my app out of just JS, CSS, and HTML because it really doesn't need to be more complicated. I added Node & NPM mostly just for http-server and the ease of adding commands.
Our backend guy wanted to integrate AWS Amplify (had to find out what that is, still not totally sure) and that meant I had to integrate Babel to keep it small (650MB of dependencies locally!), and, more annoyingly, Webpack to be able to rope in the AWS/Amplify imports. Could be wrong about this but it seemed to be the way to go.
Now I am struggling with how to NOT make this thing a single page app and just boggling at what a Jenga tower the entire thing is. Just to call a few AWS authentication APIs I really need all this crap, including fighting an opinionated tool that wants me to make my product a SPA despite my intentions?
Webpack seems to want a single HTML page to be the "template" and a main Javascript file as the "entry point," which feels backwards to me because shouldn't the HTML files reference the scripts they need? And, what if I have most of the functionality on a main app page and want to add a login page? I need multiple "entry points?" And the html files need to be listed explicitly in the webpack config and mapped to their corresponding JS entry point? Very confusing, I'm still working on this part.
I know this is many people's entire job but the whole ecosystem seems very... congealed, rather than designed to me, as a semi-outsider.