Some thoughts...
1. There is no tech stack in the world you can safely deploy and forget about for months or years. Security updates are needed, OS updates cause changes, browser technology changes, and your users change. Even setting aside security, let's say you build something that becomes popular, you've no IC lock-in, and you don't add features / adapt. Sooner or later someone is going to create a clone that does add features / adapt and you will start to lose business.<p>2. Adding new features is rarely 'easy', because you have to test it with the other features, do deployment, support older versions of the app (if possible), etc. Still, some stacks make it easier than others.<p>3. Simple deployment once you've configured your automation is an area where there has been lots of progress. You can look at Puppet, Chef, Docker containerization.<p>4. Dependencies change. Typically you should view changing dependencies like you would adding a new feature: have a justification for it, do full testing, and only then deploy.<p>5. Open Source is easy to find, and there are a lot of good quality candidates.<p>6. One commenter recommended to use what you know. Within reason, that's good advice. However, the old adage of 'when all you have is a hammer, everything looks like a nail' applies. Use the right tool for the job.<p>7. For the front-end, I recommend client side JavaScript, either Lit or React using Vite. Svelte shows promise, but is not fully mature enough yet to be acceptable when you're solo and using it in production.<p>8. For the back-end, I recommend Rust. It's reliable, it's performant, and there is a good ecosystem for it. If you go that route, I recommend Axum or Tide for your Web server, fronted by Nginx. You could also go NodeJS (or Deno) and Express or Next. A JS back-end though means you're at the mercy of the NPM ecosystem, which is rife with abandoned packages. Rust could get like that, but seems to be more well pruned. If you go with Rust and want easy new features, a REST based API using a plugin architecture can work well.<p>9. I recommend 3 repos: front-end, back-end, devops. Your deployment scripts and other things go in devops. Your front-end, if you follow 8, will be Javascript. Your back-end, if you follow 8, will be Rust.<p>Btw, Rust comes with some caveats. If you don't know it already it has a steep learning curve, however the benefits of learning it are high. You also can use an existing hardened version of Rust made by Ferrous Systems, called Ferrocene (I've no relation with them, other than maybe wanting to work there someday).<p><a href="https://ferrous-systems.com/ferrocene/" rel="nofollow noreferrer">https://ferrous-systems.com/ferrocene/</a>