Live data from Hacker News

Anytype – local-first, P2P Notion alternative

anytype.io

261–270 of 281 posts

Re: Anytype – local-first, P2P Notion alternative

#261
post #39

I don't understand this license. It's not open-source. https://github.com/anyproto/anytype-ts/blob/main/LICENSE.md

As it’s explained in blog, many open sourced projects are used for commercial gain without doing ’copy left’, the license created here essentially covers those concerns and ensures any forks do ‘copy left’ their changes with all the freedom as in ‘free’ of open source software. I don’t see the problem with this

All the kerfuffle related to ‘official’ definitions, did it help open source projects from being copied and commercialised mercilessly by closed source software (essentially legalised spyware) of corporations? I never understand this obsession.

Software should be open sourced and it should have strict copy left clause!

Relevant idea related to problems with copy left explained here https://www.osnews.com/story/25469/richard-stallman-was-righ...

Re: Anytype – local-first, P2P Notion alternative

#262

I’ve been on the waitlist to try this for close to 5 years and never once received an email. Now, it is available for everyone to try…so I just installed it. Looks nice enough, but it is too similar to Notion for my taste and since I don’t like using Notion I don’t think I would like using this. I’ll stick with Obsidian because I value the flexibility it gives me (running my own code, customizing everything, etc.)

This is how the email system works. We invited everyone from our waitlist ahead of the beta. But we can’t control email deliverability. We know that several % of our letters never reach recipients, but have no influence how to change that. Very annoying. And sorry you didn’t get your invitation

Yeah... no it isn't. Blaming people's email servers is the wrong move here. I've used Fastmail.com for the last 5 years, I keep my inbox at 0 and I look at my spam folder every week. I've never had an issue receiving email before. And by the way, over those years I signed up for the beta multiple times. All kinds of wild shit makes it through to my email, so there's no way your invite got bounced. Good luck.

Re: Anytype – local-first, P2P Notion alternative

#263
In terms of PKM applications, believe CRDT is the future。

In response to this, I've developed a "read later" app based on CRDT. The following are my expectations for knowledge management software, as well as the goals I had in mind when designing this application:

1. I want my data to be stored locally so that I can access it anytime and anywhere, thus eliminating the need for expensive hard drives.

2. I hope the software can be purchased for a one-time fee, rather than by subscription. Since all the data is stored locally, this indicates that there are no additional costs for the developers. Therefore, I believe a one-time payment would suffice. At the same time, I'm open to the game DLC model, where enhanced features can be obtained through additional payments.

3. I hope the software can support synchronization so that I can access the most recent data on any device.

Re: Anytype – local-first, P2P Notion alternative

#264
post #219

This is awesome! Love to see more local-first, security-focused apps! Especially ones that are free. Asking because I'm currently working on a local-first app that I am gaming out how to sync to non-local networks: The docs state that the app syncs to local P2P networks. Does that mean it doesn't sync across the internet? If so, is that because of the cost of maintaining/renting a TURN server? Or is there a technical…

> In trying to come up with a WebRTC solution, I think I've settled on defeat. The local network syncing works like a charm, but I haven't had any luck in trying to get around a TURN server by using an API endpoint to provide routing data. It would be nice if there were other prebuilts than COTURN (something deployable to a deno/node server would be ideal), The bad news is that if you want something that works in all…

Ah, nice! That looks like a method I had tried, for sure. My first setup was to use .NET core to build an API that registered users with session variables and broadcast that session to new users. It required a "host" because they initiated the session and then all other users were given the host's address to negotiate their P2P connection.

That all worked fine but it required a token api, and then having to choose between "polling" and "websockets"; not a particularly appealing choice for me. So TURN servers seemed to be like the ticket, but I just couldn't find someone to say "this is what data a TURN server receives; this is how it determines its response; this is what the response data looks like". Without that, I was having a very hard time building my own TURN server. The only option seemed to be "use COTURN", which is not something I'm interested in. Not because I think it doesn't work, but because I haven't ripped it apart to know how to fix it if something goes wrong. As this is a side-project, I have the luxury of forcing myself to deeply learn each part of the data flow, so it doesn't make much sense to offload something I don't totally understand to someone's library (conversely, I've written an IndexedDB handler, so I use the Dexie library because if it completely falls apart in novel ways, I can still troubleshoot it). So I figured I would wait (it's been a couple of years now), and if no one got around to dumbing it down, I would start inspecting the data flow, myself, and try to replicate whatever COTURN is doing.

So if you can shed any light on how to make a TURN server, I am ALL ears! I do think WebRTC is the way to go so, while I appreciate a suggestion for an alternative (and one that you personally use is great, but one that you personally build AND use is pretty much the gold standards for reccs, so I really do appreciate it!), I don't think it's helpful for my intentions. My project is also web-based (first), so while I'm not averse to a wasm library implementation of TCP connections (mad stuff recently with the curl support!), it's a bridge too far, to start with. In the mean time - like you said - I'm not concerned about the cost of a TURN server. I know that most apps can get by on free-tier cloud hosting limits, when you're talking about those little chirps of data. So I'm happy to build and pay for what it takes, I just honestly don't know how to do it.

Re: Anytype – local-first, P2P Notion alternative

#265

Earlier quoted context omitted.

Are you seriously trying to suggest that source code being publicly accessible is worse than nobody being able to access it? What a ridiculous statement.

It was worse in the case of early BIOS, which IBM made public in an instruction manual while keeping all relevant rights on distribution. I wonder why they did not publish it with a GPL or AGPL license, where they would keep commercial use to themselves.

IBM PC was released in 1981, GPL 2.0 (which was the first version in wide use) in 1991.

Re: Anytype – local-first, P2P Notion alternative

#266
post #219

Earlier quoted context omitted.

> In trying to come up with a WebRTC solution, I think I've settled on defeat. The local network syncing works like a charm, but I haven't had any luck in trying to get around a TURN server by using an API endpoint to provide routing data. It would be nice if there were other prebuilts than COTURN (something deployable to a deno/node server would be ideal), The bad news is that if you want something that works in all…

Ah, nice! That looks like a method I had tried, for sure. My first setup was to use .NET core to build an API that registered users with session variables and broadcast that session to new users. It required a "host" because they initiated the session and then all other users were given the host's address to negotiate their P2P connection. That all worked fine but it required a token api, and then having to choose be…

> [...] I don't think it's helpful for my intentions. My project is also web-based (first)

Yes, then it's a no-go. No excuses needed.

WebRTC is the only way to reasonably do p2p on the web. This is because of the lack of "raw" sockets and their options (just regular TCP/UDP with SO_REUSEPORT).

> So if you can shed any light on how to make a TURN server, I am ALL ears!

You'd know better in a few minutes of reading the docs, sorry. I will say, pay attention to the requirements - for instance, listening on arbitrary ports, getting the "real" port from the client, even stateful connections etc, aren't always possible on cloud services (the more "managed" the marketing, the more restricted).

> Not because I think it doesn't work, but because I haven't ripped it apart to know how to fix it if something goes wrong. As this is a side-project, I have the luxury of forcing myself to deeply learn each part of the data flow, so it doesn't make much sense to offload something I don't totally understand to someone's library

I empathize deeply with this. In fact, that's the main reason why I built rdv. WebRTC in particular is, imo, a nasty piece of over-engineering. It basically throws together a bunch of separate "protocols" into one. It has way, way too many knobs, and many things are stateful. If you do go down the route of reimplementing even a subset of WebRTC I recommend getting an insurance for your keyboard, one that covers physical violence, (but if you do, I would be very curious about your learnings).

Finally, my words of wisdom would be to avoid p2p if you have the luxury of having a small amount of messages. Just running a simple "relay" of encrypted messages is reliable and cheap. Users are still protected by e2ee.

Re: Anytype – local-first, P2P Notion alternative

#267
post #227

Earlier quoted context omitted.

What I mean by “local-first” is not the same as “self-host”. Local-first software are architected in a way where the local device is the source of truth. It usually uses CDRTs or something like git to sync with other peers. It is not a client-server architecture. Uploading files to a personal server is more of designating the server as a peer and regularly syncing with it, similar to how git works with remote repos.…

Yes, but Affine is local-first. You don't need a container infra or anything, just run locally without an account, data is stored in a user folder.

How does the P2P syncing aspect work with Affine? I didn't see much of anything written about that on the Readme.

EDIT: Aha, https://github.com/toeverything/OctoBase

Re: Anytype – local-first, P2P Notion alternative

#268
post #260
post #159

Earlier quoted context omitted.

Although a big selling point for Anytype is that it is local-first. My main gripe with Evernote now, is that in its effort to be a collaborative app, there is a lot of network latency for edits on my mobile device. By comparison, NotesNook is local-first and super fast.

Indeed, AFFiNE is also local-first! Anytype does have a lot of distinct functionality though, and the P2P model is a big plus there over other options.. That said, AFFiNE also appears to be genuinely open source, while Anytype is only source available.

I am in favor of genuine open source rather than source-available. I also see the OctoBase project, which enables local-first, p2p collaboration using CRDTs.

What about importing Evernote into AFFINE? Do such tools exist?

Re: Anytype – local-first, P2P Notion alternative

#269
post #256
post #248

Earlier quoted context omitted.

Why not use some EU-based product that hosts on EU servers?

That's like trying to find a unicorn on Mars, at least if your definition of unicorn goes beyond a frozen donkey with a mop fastened to its brow...

How about https://fibery.io ?

Re: Anytype – local-first, P2P Notion alternative

#270
post #223

Earlier quoted context omitted.

Logseq's journal is the biggest productivity hack we got that we never thought we needed. Don't know where to put the idea, note or just a scribble? You have a 2022-05-12 page without the cognitive load or confusion.

Let's be cautious where we attribute credit. Daily journaling has been a thing for, oh, centuries. At the very least Zim has had the same journal feature dating back over a decade. I'm sure others can't point to similar software stretching back at least another decade before that.

I haven't used Zim, but from a cursory look it doesn't seem like it has any way to query its daily journal entries. In Logseq your daily journal might contain a dozen todos, bulleted project notes, and random thoughts all mixed together, but you don't need to look at the day's entry to find them again. Instead you run a query against all your notes to collect stuff where it's relevant.
Post reply on HN