I've been doing this for more than 10 years and I've been making incremental (sometimes really small) improvements to the way my web apps work so that I rarely need to go down to AWS, k8s, load balancer etc etc way.
Sure, these are personal projects and of course there is a diminishing return on optimizing (so I do upgrade hardware when I need to), but I always found it a rewarding challenge to first look at understanding the inherent issue, rather than just throwing money at it (at my work, it's completely opposite - see an issue? throw money and upgrade hardware ASAP and move on).
Some things I've done for optimizing are...
- Simple upgrading of software - going to latest postgres, upgrading PHP - Identifying data that are not frequently updated and then caching them - I've identified some bot traffics coming from China, so for one of my projects, I just blocked it completely (yeah, drastic I know, but not worth my $2!!)
There are also many many services out there that provide free tiers that you can utilize. So as a solo, indie dev, there are many ways to leverage to stay on a cheap $5 linode box as long as you need (I saw recently a box for $2.50 - tempting...)