Have you heard of [syncthing](https://syncthing.net/) ? It syncs a folder between devices, like Dropbox, without the need for someone else's computer. No cloud, it's just your pc talking to your phone, directly and automatically, through your home WiFi.
This is exactly how I use Syncthing, and as the author says, it sure would be nice if more things were just files. Really, most things are stored locally as files, but not always in a way that plays nice with syncing. Like, I can sync my Firefox profile between machines (it’s all in one folder), but I found it prone to conflicts, with little to resolve those conflicts.
In a similar vein, local-first apps built with Conflict-free replicated data types (CRDTs) can be another way to avoid server dependency. I haven’t seen any significant apps built this way yet (just occasional blog posts about it). I imagine the CRDT approach would work better for individual apps, since conflict resolution can be written in a way that works best for a given app, but I also imagine that such apps would not play nicely with a generic sync solution like Syncthing.
I’m working on something that allows for custom CRDTs since I agree no one CRDT strategy is best for any given app. There are several others I know of but they only use a single type. I think Automerge is the most popular current one but I don’t know if it has many actual users.
Mine is Eidetica, still very much experimental but I’m making progress https://github.com/arcuru/eidetica
You just need to sync the entire os install. /S