Replies: 1 comment 4 replies
-
This is exactly how I've felt. I've done a few "local only" apps but never got around to enabling paid hosted features for them because those always seemed more painful to add on than it should be.
I'm focusing on P2P because, currently, I see that paradigm as being flexible enough to support traditional client-server interaction (server is a more privileged peer -- as you mention later in your comment) without too much complication. I'm in the process of testing this hypothesis by helping build out a local app whose only "peer" is a central server used to sync local state back to and receive extra information from. Unfortunately I'm NDA'ed on the app but it's centered around https://www.mealme.ai/
I think that would be compatible. Aphrodite won't just automatically start connecting to peers. How peers are discovered, which peers are authorized to connect, and how peers verify their identity, would be configured by the application developer. Take this with a grain of salt though as I've just started implementing the peer to peer layer so there are still a bunch of unknowns.
This is a good point. I've been thinking of it from the perspective of each "record type" (or schema) being able to express its authorization concerns in terms of who/what can read/write it. This is probably overkill for many use cases. Thanks for your interest. If you know anyone that'd be interested in collaborating, point them my way. I'll let keep you up to date with how the exploration goes with using Aphrodite for a more traditional client/server setup. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
This is an amazing project, and I'm loving the reasoning behind it. I'm really interested in building useful, sustainable software with a focus on utilizing client devices and staying lean.
A lot of my ideas start with something that's usable local-only in a webpage. I love the fact that a webpage is so cheap to host - so I can keep the local app available for anyone who wants to use it, and store all their data locally. But I'm interested in building small businesses out of apps by selling any features that require significant server work, like cross-device sync, multiplayer, or long-running tasks. This just makes sense to me; I host servers to provide persistent access and storage, and that's what you pay for. Cancel anytime to go back to local-only.
Aphrodite looks really promising for my needs, but I wanted to check in before putting too much effort behind prototyping with it. What I want to do isn't really P2P. Ultimately I'm hosting a server anyway to back up user data, and device sync is awkward to teach to users if it requires both their devices to be online at the same time to work - for better or worse, the status quo has conditioned users to expect seamless sync after they close the tab.
With your current understanding of Aphrodite's roadmap, will an 'upgrade path' for users from local-only to server-stored-and-synced still be in line with project goals? I know in theory the server is just another peer, but what I'm really hoping to do is restrict networking altogether unless the user has created a paid account, basically - so my server-side system is both the authority on that and the gateway to networking with other devices. This is more restrictive (or, pessimistically, greedier) than the P2P ideal, but in my opinion it's a more user-friendly spot on the 'spectrum' you reference in the project writeup than fully P2P that preserves a lot of the niceties web users are already comfortable with.
I feel it's a subtly different paradigm than a more open P2P mesh system, and has its own constraints. Having a central server means you could actually enforce authorization in a 'trusted' space, for example. Both P2P discovery and authorization are kind of side-stepped in this scenario - for most of my ideas I wouldn't need 'row-level' auth at all; if the server accepts your connection to a client, they can be trusted as a collaborator. But auth could be implemented on the server, rejecting changes from clients it centrally knows are not allowed as writers.
For prior art on this kind of paradigm, https://liveblocks.io is a good example. There are many things I like about Aphrodite in comparison, though - like the data schema, and being open source of course.
Anyways, that's enough rambling - I'll be watching the project and I'm excited for a future of simpler, better software. Cheers.
Beta Was this translation helpful? Give feedback.
All reactions