Ask HN: Good resource on writing web app with plain JavaScript/HTML/CSS?
I don&#x27;t know of a readymade resource except checking the usual places (W3Schools, MDN, LinkedIn Learning, Codecademy, Udemy, etc.), but just wanted to address some of your points...<p>&gt; Coming from WPF and Winform, I find web development to be unnecessarily complex<p>The web is actually quite a bit lower-level than that, sadly. Winforms (at least when I last used it in the late 90s...) was actually really nice in comparison, especially when you use it with Visual Studio. Web has nothing quite like the built-in GUI editor in VS, except maybe something like Adobe Dreamweaver -- which is an approximation of a browser&#x27;s renderer, not an actual pixel-perfect layout engine.<p>If you&#x27;re looking to &quot;compose&quot; a web app out of UI widgets -- dropdowns, buttons, menus, etc. -- you might want to consider going one level of abstraction higher and using something like Bootstrap or UIKit or SemanticUI. These are NOT Javascript-extending frameworks the way React or Angular are, they&#x27;re just collections of very useful UI primitives with sane defaults. You can typically use these just by dropping in a couple &lt;script&gt; and &lt;link rel=&quot;stylesheet&quot;&gt; tags (meaning you&#x27;re staying well within &quot;vanilla&quot; HTML&#x2F;CSS&#x2F;JS).<p>&gt; a simple web app, no React, Angular or any of that. That can’t be too hard right? I’m sure in large scale, that stuff has its place, but I don’t need it.<p>Actually even for a small app, the right framework can make it quite a bit simpler than vanilla JS. But I won&#x27;t preach here since you&#x27;re specifically not interested.<p>&gt; To me, the browser is the UI framework.<p>It&#x27;s not though =&#x2F; HTML by itself isn&#x27;t very useful; it doesn&#x27;t do interactive things at all without either Javascript or some sort of backend that you POST to. CSS lets you have hover states and dropdowns but it&#x27;s still not real interactivity.<p>So you have to choose... do clientside logic (entirely doable in vanilla JS, just tedious as heck and error-prone) or offload it to a backend server of your choice (using whatever language or framework you want; there are many).<p>&gt; I don’t know what’s a good source to actually get a web app running locally that I can eventually deploy online.<p>Over the last ten years or so, we&#x27;ve gone from &quot;deploying&quot; web apps to actually needing to &quot;build&quot; them first, kinda like compilation&#x2F;transpilation + bundling + tree-shaking (size optimization) all in one. But by and large you shouldn&#x27;t need to do that (have a buildchain) if you&#x27;re writing vanilla HTML + JS + CSS. That usually just leaves you with a bunch of files that the browser runs directly.<p>To run them locally, you can spin up a simple web server (something like Apache or Nginx, with or without Docker or Lando or other such containerization services) or if it&#x27;s really simple enough, just open the file directly in your browser.<p>To host them online, you just have to upload them anywhere -- the old ways of SFTP still work, or these days there might be Git-based plain HTML hosts (I&#x27;m not sure; it&#x27;s not so common a need). If you&#x27;re feeling lost as to where to host your files, check out Nearlyfreespeech.net, Google App Engine, Cloudways, Hetzner, DigitalOceans, etc. You can always manage your own S3 instances too and deal with CDNs and DDoS etc. on your own, but why...? No need to reinvent that wheel.<p>&gt; Do I really need Node?<p>No. Node is a <i>server-side</i>&#x2F;backend runtime for Javascript. It replaces things like PHP or Ruby or Java on the backend. If you&#x27;re making a vanilla JS web app for browsers, you do NOT need Node... unless you are deliberately choosing to make your backend in Javascript too!<p>The reason Node is sometimes used for frontend web frameworks is just that it keeps the ecosystem in one language, so the frameworks themselves and build tools and developer tools etc. often depend on note. But once the web app is built, it is deployed to the web as regular files that the browser downloads, and Node won&#x27;t be a part of that final package. It&#x27;s just used in development and building. But none of that applies to you if you&#x27;re using vanilla.<p>&gt; Compared to WPF&#x2F;Winform this is a mess, or so I hope not.<p>Web app development IS a mess, because it grew organically from competing interests and incompatible standards. The W3C tried to create standards for a decade or so but eventually Google and then Facebook took over and led the way and reshaped the web in their image instead. These days, web apps aren&#x27;t really driven by standards anymore, just major corporate releases like React and Next.<p>It&#x27;s only going to get messier as Svelte, Vue, etc. compete for framework mindshare and Vercel, Render, Fly, Cloudflare, Deno, etc. compete for hosting &amp; runtimes.<p>If you&#x27;re looking for a clean ecosystem to deploy to... web is NOT it.<p>HTML+JS is super low level and primitive, so all these frameworks arise around it as abstractions to make developers&#x27; lives easier. It&#x27;s questionable whether they actually improve user experience too, unless used very very carefully (and I say that as someone who uses them daily at work).<p>&gt; I want to make a simple app where users can create and fill out a form. ATC test plans, to be exact.<p>I&#x27;m not really sure what you mean by that... can you explain? Is ATC air traffic control, like for aircraft pilots? Is a test plan just a bunch of files (pdf&#x2F;docs) or something more? Where should those files go once the form is filled out?<p>I wonder if this is something you might be able to do more easily in a service like Wix or Squarespace, rather than building your own web app.<p>It also sounds like the kind of thing an experienced web dev could whip up in a few hours, vs you having to learn the ropes (a decade of chaos)... up to you, of course.