[HN Gopher] Show HN: Rustpad, a self-hosted online collaborative... ___________________________________________________________________ Show HN: Rustpad, a self-hosted online collaborative text editor Author : ekzhang Score : 64 points Date : 2021-06-05 20:44 UTC (2 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | re wrote: | FYI, https://rustpad.io breaks the back button by updating the | URL hash to a new document every time I try to go back. Use | location.replace() https://developer.mozilla.org/en- | US/docs/Web/API/Location/re... or history.replaceState() | https://developer.mozilla.org/en-US/docs/Web/API/History/rep... | to avoid that, instead of assigning to window.location.hash. | jdellinger wrote: | Looks nice and clean! Also feels very snappy in two tabs. | | However, you're breaking the back button with your redirect to a | unique room. Once in a room, pressing back will join a new room. | History replace instead of push should be a better choice. | ekzhang wrote: | Thanks! And good catch, I'll fix that right away. | zeotroph wrote: | Could end-to-end encryption be added (see cryptpad), or does | operational transformation or some other design aspect require a | central server? | | What also comes to mind when editing source code is a non-browser | participant which can actually run and test the code (or for | other non-interactive backends, such as en external spellcheck). | messo wrote: | Thanks for making this, I have been looking for a worthy | replacement of Etherpad for a long time, that is easy to use and | has the option to be self-hosted. | sreeramb93 wrote: | I really like the architectural decisions made in the project. | OperationalTransform library may need some work like testcases | and add more powerful constructs. Is there any theory behind it? | Maybe add a link to it. | | I believe this project can become a popular opensource project. | It is really fast. | ekzhang wrote: | Thanks! Operational transformation is the same technology that | powers Google Docs. It's been studied in academia for real-time | collaboration since the 1990s and has eventual consistency | guarantees. See the Wikipedia article: | https://en.wikipedia.org/wiki/Operational_transformation | | The Rust operational-transform library was not written by me, | but it's listed on crates.io by spebern, and it's worked | wonderfully so far. It seems to be a very close port of ot.js | (https://github.com/Operational-Transformation/ot.js). The text | transformation algorithm isn't very complicated (<700 SLOC | including tests), but there's probably room for optimization! | amelius wrote: | Is this for editing Rust only? If not, why the name? | executive wrote: | Stuck at connecting to server on iOS Safari. | ekzhang wrote: | What version of iOS? It works for me on my iPhone 8 running iOS | 14.4.2. | luke2m wrote: | 6S running 14.5.1 works fine. ___________________________________________________________________ (page generated 2021-06-05 23:00 UTC)