No you really don’t. I’ve worked on exceptionally complex legacy applications with essentially no state in the front end. At most, you’re looking at query parameters. You just make everything a full page reload and you’re good to go.
That sounds like the most basic of experiences...
So you make incrementing a counter a full page reload?