Write in a plain text editor, have evince open the generated document, it will reload when updated. Then use inotifywatch to generate on save, or just write a hook in your text editor that will update the pdf.
You don't need to use overleaf to get the overleaf experience...
Ah, the Dropbox comment springs to mind: https://news.ycombinator.com/item?id=9224
Adding a hook for compilation in most decent editors is only a few lines of config, and many popular editors (GNU Emacs, vim, m$ vscode) nowadays have packages that have these hooks predefined, so it pretty much just comes down to installing a package, which I hope you don't think is beyond the capabilities of the average user. Alternatively there are editors like texworks which provide exactly this feature out of the box.
As a personal aside, I can't stand the LaTeX syntax; needing to have a \begin{itemize}, \end{itemize}, \item for every list, as opposed to a simple dash uses way more characters, adds more visual noise, and makes it less pleasant to read when editing. Ditto for something like \begin{tabular} as opposed to a pleasant ascii grid.