The binary executable for Fossil is a single file (repos are also single files, sqlite databases). That one executable does all the VCS functions but it also has a built-in web server that will host repos as a little customizable website. That’s how you access the wiki, chat, forums, and ticketing system. You can also configure the repo, view timelines, view code, and all that stuff.
One can set up a proxy and publicly self-host the repo over the internet. That’s what the official fossil site is, a hosted repo of it’s own source code. I didn’t feel like setting up a local web host, an ngnx reverse proxy, figuring out vpn for remote access, etc etc. So i just use synching and only run locally, because it’s easier for me.
That’s another nice thing about fossil, it’s quite flexible and can grow with the needs of the project.
I first heard of it from Joel Spolsky’s blog and wikipedia also credits that article with popularizing the concept. In it’s original formulation, it was based on remote procedure calls being hidden in APIs. Because a remote computer call has all these limits of latency, packet/info loss, and possible connection loss, it is impossible to make a perfect abstraction that allows the programmer to treat the remote call as though it were local. The reality the abstraction tries to hide “leaks” in those fundamental limits.
All of contemporary global society is such an abstraction; that’s one of the principles of post-modernism. When you buy clothes online an entire invisible work force of shippers, manufacturers, resource procurerers, and more lies beind each article of fabric.
Pressure from climate change, tariffs, global war, and more are straining the foundations of society and the comfortable abstraction is starting to crack.