i did a similar audit and the worst offender was duplicated config and generated files across the Next.js frontend, NestJS backend, mobile wrapper and CI. make a tiny MVP baseline you can actually ship from: one Next app, one thin backend service with a single auth route, and move CI/mobile scaffolding into a separate repo or a generator so they don't come along to every new project. consolidate shared types and infra code into a single package, kill unneeded dev-tooling files, and change heavy codegen to on-demand scripts that run when you add a feature. build a tiny CLI that scaffolds a feature folder instead of including every possible file in the base. that cut my new-project file count from hundreds to a few dozen. fwiw i used a starter kit that had auth and payments preconfigured, Vibe Coding Starter Kit, to get a production-ready baseline without rebuilding all that infra.
The JS ecosystem is a hellscape. But there’s no reason you have to use it.
I’ll stick with straightforward Python frameworks and HTMX with a bit of vanilla JS sprinkled on top. Most importantly: no JS builds, no deps that can’t be included with a single CDN-loaded script tag.
> Then there’s the DevOps and Quality layer. We have roughly 20-30 files for GitHub Actions workflows (lint, test, build, deploy, semantic release), Husky hooks (pre-commit, commit-msg), and pull request templates.
IMHO, generally speaking it’s not just a JS. The declarative approach has its toll we end up having a lot of configurations files instead of having (one or two) normal imperative script
i did a similar audit and the worst offender was duplicated config and generated files across the Next.js frontend, NestJS backend, mobile wrapper and CI. make a tiny MVP baseline you can actually ship from: one Next app, one thin backend service with a single auth route, and move CI/mobile scaffolding into a separate repo or a generator so they don't come along to every new project. consolidate shared types and infra code into a single package, kill unneeded dev-tooling files, and change heavy codegen to on-demand scripts that run when you add a feature. build a tiny CLI that scaffolds a feature folder instead of including every possible file in the base. that cut my new-project file count from hundreds to a few dozen. fwiw i used a starter kit that had auth and payments preconfigured, Vibe Coding Starter Kit, to get a production-ready baseline without rebuilding all that infra.
The JS ecosystem is a hellscape. But there’s no reason you have to use it.
I’ll stick with straightforward Python frameworks and HTMX with a bit of vanilla JS sprinkled on top. Most importantly: no JS builds, no deps that can’t be included with a single CDN-loaded script tag.
> Then there’s the DevOps and Quality layer. We have roughly 20-30 files for GitHub Actions workflows (lint, test, build, deploy, semantic release), Husky hooks (pre-commit, commit-msg), and pull request templates.
On that , I have created http://deadsimpleci.sparrowhub.io/doc/README trying to minimize code to just normal Python/bash scripts instead of tons of yaml files …
IMHO, generally speaking it’s not just a JS. The declarative approach has its toll we end up having a lot of configurations files instead of having (one or two) normal imperative script