I have not yet reached "ignition" required for release. It is now a collection of (I think, useful in their own right) parts. Some of those parts I anticipated (stree, combine) some I did not (literate markdown - which I actively resisted but its just too handy not to use) and some are just me learning new browser APIs and maybe making some ad hoc abstraction (most of the kata ). There is no framework. The (self-imposed) constraints of this development: everything is very small, self-hosted, and very secure. The site never uses third-party anything - not CDNs, not hosted libraries, not authentication, not analytics. Nor do I store logs beyond the tmux buffer in which the reflector runs. My goal is to support 100k actives on a single $5 VPS. Eventually I'd like to explore WebRTC to avoid using the server entirely (apart from distributing the simpatico shell itself).
"Ignition" will be achieved when chat is fully online with both sides a browser tab running a durable stree over a fully encrypted channel and targetable by public key.
Apart from being useful in itself (a secure chat service where you don't need a username or password), on this infrastructure I will allow people to run their own "servers" in their browsers, including real-time interaction with visitors. Your "server" might be a game you and some friends can play, or it might be a photo album of a recent trip. All of that data is stored only on your device, and never used by a central authority. Incidentally this infrastructure is also the best way to synchronize data between your own devices, things like contact information and passwords. Eventually I'd like to see people writing "gadgets" and "games", writing their own games and sharing/playing with their friends. Again, with no requirement to send anything to a central resource (but you can and I hope people do).
Tim Berners-Lee has expressed sadness that browsers have become a read-only affair; he always wanted symmetry. I want to turn the browser upside down, and fulfill that dream.
Note: if you want it to be online all the time, you can buy hosting. Which I will provide as a service - by forking a headless chromium process and cloning a subset of your browser tab server. Or you can just use an old phone and have it on wifi with a browser connected to simpatico.io, all the time.
Copyright SimpatiCorp 2024