Setups that come to mind for me are
1. RDP/remote desktop methods. Pros: You can run everything as if using a regular computer. Persistent, all the apps and windows are kept in place and running even if you disconnect. Cons: Additional latency. On my naive xrdp attempt I could not get 4k resolution usable, plus Ubuntu kept asking for my root password for various things every minute.
2. VSCode remote SSH. Pros: Low latency and very easy setup. Cons: Only for command line apps and web dev. Cant resume terminal instances after a longer disconnect.
3. Remote terminal (ex. SSH/Mosh). Pros: Low latency with mosh. App/window persistence with Tmux. Cons: Steeper learning curve. Only for command line apps.
4. Fully online IDE. Pros: Very easy, similar to VSCode with SSH remote. Cons: Unregular keyboard shortcuts are needed to avoid hitting browser shortcuts. Cost usually scales with hours of use or number of projects.
This is reasonably similar to the setup I'd use locally, as my vision's been getting considerably worse over the years and I can tune the accessibility of this setup to taste.