Why do we need another framework for Node.js?
This is my wish list:
I want to build my web application on a framework with zero dependencies.
I want to utilize native Node.js APIs without any additional layers of abstractions.
I want to hack my framework when I need to, e.i. I want to have quick access to my framework's folder and make quick changes.
I want to have zero downtime when I update my appliction's logic just by sending a signal.
I want to use Cluster in Node.js. It will allow me to scale my application with very little price. I also don't want to anything else for orchestration and other fancy things that Node.js provdes itlself.
I want to have HTTP/2 as a default.
I want to handle 500 User error properly.
I want to configure my application out of box in my primary and worker processes.
I want to have very simple secrets reader.
I want to be able to log into an output log file.
I want to have composable API provided by my framework and not use middlewares that reduces the code clarity. I want to be able to copy/paste logic to achieve clarity.
I want to have access to params and queries in each request URL.
I want to have control when I read body of my requests.
I want to have quick access to my external dependecies like db clients and other integrations without attaching them to request object. I want to have dependecy injection without any huge frameworks.
I want to easily configure my index.html, not-found.html files.
I want to focus on building my products quicky and make money.
Hopefully it can be interesting for somebody who want something similar from a framework.
The content is static. The fact that you’re loading it dynamically is immaterial and a bug, not a feature, at least at this scale. If you serialised the resultant DOM and shipped that minus the now-superfluous pieces (ehtml bundle, template, preloads), the result would be identical but it’d load significantly faster and more consistently for everyone. (I say “more consistently” in part for user agents that don’t support, or that disable, the scripting, but also for agents that do support it but it fails to load properly due to network conditions, which is way more common than most developers realise.)
For bonus marks, inline all the subresources (SVG, CSS and utils.js) and strip dead styles, and you can probably squeeze the entire thing into the 14KB TCP slow start window (compressed), so that it would have completely loaded for me in about 430ms at most (though it should have been closer to 200ms) instead of 1.7s, and with no reflow due to the logo not having been given dimensions.
Slow down pal. How am I supposed to have SSG and hydration and hook with such a simple setup!? I need my system to be webscale™, not maintainable with minimal moving parts.
I believe Turbo/Stimulus rely more on server rendering + their Turbo Drive is quite powerful, will try to catchup on turbolinks. I had implemented them previously, but it's quite difficult to make them smooth.