- https://news.ycombinator.com/item?id=33990568
1,374 karma · joined April 12, 2017
Working at https://tyba.ai
Building https://yakread.com and https://biffweb.com
email: hello@obryant.dev
- https://news.ycombinator.com/item?id=33990568
A lot of the questions you ask are already resolved in the newsletter ecosystem.
I see these RSS-related recommendations as the next step: what can an app developer do to reduce the effort it takes for others to interop with them?
> Users would still depend on centralized services to publish content, and there's little to no chance that these companies would interoperate using a standard protocol.
All you need is a blog/newsletter platform like substack, ghost, wordpress etc. They may not aggregate your social posts into another feed for you, but you can use a separate service to generate and host the feed, then link to it from your main site.
> Users should have full control over the data they produce, and be free to migrate it to any other node without losing access to the service they're interested in.
RSS and email do this pretty well I think!
I'm interested if you have any reading recommendations? Indie Microblogging[1] is on my reading list. My impression so far of existing protocol-based social media efforts is that they're not really going in the same direction I'd like to go myself, but of course you're right that it doesn't hurt to have more background knowledge.
I actually haven't worried about the RSS icon on my site since I figure people who use a feed reader can just copy and paste the site URL and the reader app will auto-detect the feed, and people who don't use a feed reader can just subscribe with email. Maybe it'd still be helpful to link explicitly to the RSS feed I suppose, perhaps underneath the email subscribe box?
> Another suggestion: provide browser extensions and iOS/Android sharing menu items so that it's easy to open an web page in the reading app. If there's one or more RSS feeds detected, throw in a subscribe button with checkboxes for each feed. The "shareable subscribe links" should include a link to the original RSS feed in the page metadata. Then if I click on the subscribe link but want to subscribe with a different RSS reader, I can do so easily.
i.e. we should be sure to provide smooth user experiences both for people who don't yet use a feed reader and for people who do. Agreed that Mastodon does this nicely, and I think adding in some browser extensions/mobile apps would help to automate things a bit more.
Besides that, I also think this problem can be ameliorated to some extent by using and developing open-source feed parsing libs like Python's feedparser rather than using a plain XML parser and doing the rest yourself.
> could the problem of participating in the communities be solved through one app too?
My thinking is that it's a good-enough solution to leave writing comments etc. to the separate community apps. Most of the benefit the "one app" thing IMO is to provide a single feed to check--I want to have a habit of checking only one place when I have a few spare minutes to read something. While it would be kind of nice to also be able to leave comments and such without leaving that app, it's not too difficult to click on the post and leave a comment via another app. So I'd leave that kind of thing off of this list since I don't consider it to be essential. But it could still be worth experimenting with after the essentials are in place!
Another aspect to this is that protocols and interoperability have a downside since they require more coordination between different parties and can thus slow down development of new kinds of features. I think it's important to find the right amount of interop. There needs to be enough interop so that people can build new apps without having to fight against (the lack of) network effects, but not so much interop that people are unable to experiment independently with new kinds of features.
That's a long-winded way of saying I think it's actually better to not worry about making community interaction happen over a protocol, because it gives community app developers more freedom to experiment.
> How reading of different type of content should be handled,as some posts are just media, some are comments?
It may be helpful if community apps include various metadata in the feeds they provide, so reader apps can distinguish different types of posts (e.g. perhaps include a "in reply to" field for replies). When possible, reader apps can also try to infer things about the posts, similar to my suggestion of inferring if a feed is a "social feed" or a "regular feed" by looking at the frequency (and probably also the length) of posts.
> The last straw was Elon Musk sending lunatics and bigots against former employees and leaning into conspiracy theories.
- Immutability, which makes it fit well with the functional programming style used in Clojure. You can create a database connection object that represents a snapshot of the database at a specific point in time (usually the current time), and queries made via that object will ignore any transactions that occurred later. So you can effectively pass the entire DB around as an argument and your functions stay pure. (That also makes it easy to inspect historical snapshots, similar to looking through old git commits--I don't do it often, but it's very nice to have when you need it.)[1]
- Datalog instead of SQL. I find Datalog queries to often be more compact than the equivalent SQL, especially thanks to the implicit joins--you can query for things from multiple "tables" without having to type up a bunch of JOIN expressions. And there are various other handy doodads like pull expressions[2].
- Clojure ergonomics. You can store Clojure maps as XTDB documents as-is without needing to write code to translate them to records.
[1] XTDB's bitemporality also has some benefits over e.g. Datomic (https://www.datomic.com/, another immutable, Clojurey database), though I haven't needed to use it yet--Datomic's "monotemporality" would be sufficient for my current needs.
[2] https://docs.xtdb.com/language-reference/datalog-queries/#pu...
htmx doesn't render anything on the backend; rather it gives the frontend more ways to interact with the backend. e.g. say you make an inline form--htmx gives you the ability to display/submit that form without refreshing the entire page, but all the html that's sent to the frontend is still getting rendered first by Rum.
[1] See https://github.com/jacobobryant/biff/blob/6353c406adef034448... and https://github.com/jacobobryant/biff/blob/6353c406adef034448...
It is possible, but at least writers would have the option of importing those addresses or not. Those who are suspicious that Substack will lock down the app more down the road can always opt to "rip the band-aid off" and not import the Substack app addresses.
Perhaps my main argument is "If Substack doesn't let writers migrate without forcing a behavioral change on their readers, then it is solid evidence that Substack doesn't actually care that much about reducing lock-in." The inverse is not necessarily true, and certainly I'd advise anyone who's already convinced of the consequent to not write on Substack :).
I think https://beehiiv.com is another good alternative, though the styling isn't as nice as on ghost, and I personally found the editor to be glitchy and infuriating to use. Maybe it's just a problem on Firefox. I'd probably use that as my own recommendation for anyone looking for a newsletter platform and cross my fingers that they have better luck with the editor :).
[and the self-promo bit] I've also made one called Yakread[4], however it is quite unusual and won't be for everyone. Re: your requirements: it does 1 (via integration with pocket/instapaper) and 3 (it's a responsive website at least, no native app) but not 2 /exactly/. It has a home feed which is driven by a ranking algorithm, which is intended to solve the "too many newsletters/bookmarks clogging up your reading" problem, but might be a heavier solution than what you're looking for.
[4] https://yakread.com/ (see also https://tfos.co/p/introducing-yakread/)
If Substack actually cares about preserving writers' independence, they should provide a way for writers who switch platforms to continue delivering their newsletters to the app. Switching platforms should not force behavioral changes on readers. For example, they could give app users an @inbox.substack.com (or whatever) address. Anything sent to that address will show up in the app. When you export your list of Substack subscribers, you get both their regular address and the @inbox.substack.com address, so you can continue delivering to both their email inbox and the Substack app.
Until they do that, I'll continue to view their claims of putting writers in charge with a measure of wariness. I do think Substack/Substack's founders are sincere, actually. I don't think they're twirling their mustaches, thinking "How can we lock people into our platform?" They're just way too confident in the righteousness of their cause, and as a result I don't think they look inward enough in situations where the interests of Substack, writers, and readers conflict.[1]
(And no, using a paid subscription model instead of ads doesn't magically make all incentive alignment problems go away.)
[1] For example: https://twitter.com/bmorrissey/status/1501568928799244290. When the app was launched, by default they stopped sending emails to people who installed the app, which would hasten the inbox->Substack app behavioral shift I discussed above, strengthening lock-in. They switched it to opt-in after backlash from writers.