An update on moving away from Slack. I've talked ...
# administrivia
i
An update on moving away from Slack. I've talked with a bunch of folks here and elsewhere, explored Zulip and Discourse hands-on, an looked around for other alternatives. This has given me a renewed appreciation for Slack. The way we use it, it sits in a unique spot in the space, something between a forum and a chat. * The medium/format of Slack, plus our cultural norms, encourage people to make substantial posts which then foster lively discussion. It feels like a forum. * Everyone see new posts instantaneously; heck, you even see typing indicators and online/away status. It feels like a chat. * When looking at the top-level of a channel, you see the full content of each message, with a count of replies. It feels like… a blog index? There's WYSIWYG text editing, unobtrusive persistence of drafts, polished clients for every platform. The information hierarchy is clear: channel -> post -> reply. Slack is, by and large, rather nice. Slack is also an enterprise-bootlicking product suffering from continual enshittification. They're holding our history hostage. There are effectively zero moderation tools. User signup is flaky. The client is like an extravagant slice of cake — rich and thick to a fault. It's a service that runs over the internet, but it's not part of the web. It's not meaningfully extensible — there are "bots" and data exports, but they're basic and begrudging. It's siloed. It's proprietary. It's not the least bit malleable. Slack is antithetical to the ethos of this community. We champion the agency of individual people and wild experimentation. Slack, by design, opposes those. With every alternative product I've explored, a few of these issues are addressed, but comparatively more of the nice qualities of Slack are absent. I use Discord all day every day. It's like Slack but slower ("Installing updates 1 of 5"), buggier, bloated with features and ads ("Get Nitro"). It also makes novel but awkward design choices. For instance, to start a thread of replies to a message, you must name the thread. That's a friction point. It allows some flexibility, in that you can start more than one thread for a single top-level post. But I'd argue that it is strictly worse than having a single linear thread (like Slack) or a single tree of replies (like a mailing list / forum). And besides, it's just as bad as Slack, or worse, in every way that presently pains us, except the boots being licked are gamer boots. The organization behind Zulip is lovely. They're principled, self-sustaining without VC, focused on building a great product for their users. But, that product leans heavily into ephemeral chat, and suffers from a famously clunky user interface. Beyond just playing with the product, I spent some time in their Github (yay open source) looking at issues and discussions, and I don't see signs that they'll be able to fix the UI — it's hard for them to make even small styling changes, let alone restructure the information design. Discourse is… fine. It's a little bit more chaotic, a little bit more clunky, a little bit more web-y, a little bit more bloated. It has way too much structure, with a visual hierarchy that doesn't map to the conceptual hierarchy. Like our Slack, it aims to be a hybrid of a forum and a chat, but it does that by offering both separately rather than synthesizing them into a compelling hybrid. If the community had started on Discourse, I think we'd be less unhappy with it than we are now with Slack, but I still think we'd be unhappy. But the most charming alternative, and hands-down my favourite path forward… will take a bit of explaining. It's the Merveilles forum. It's brutally simple. Spartan! But it's tasteful. It's immaculate. Crucially, a member of the Merveilles community built and maintains the forum software, taking a decidedly principled approach. This forum is a reflection of the community it homes, because it was built by and for that community. (See where I'm going with this?) All the off-the-shelf options — Zulip, Discourse, Mattermost, Discord, IRC, phpBB, Mastodon — they'd let us get away from Slack. We could pick one that had some nice features. It'd be a pain in the butt to move, and a blast of fresh air to settle in. But even if we self-hosted, we'd still be held hostage — by product design decisions. Every one of these products and services makes a set of tradeoffs to satisfy as many customers as possible. None of them expect their customers to be like us — champions of individual agency and wild experimentation. I believe the only way to move up from Slack is to build our own thing. To take the Merveilles forum approach — be brutally simple, but tasteful. Figure out what core design decisions reflect our values; build some situated software just for ourselves. Design a final form that we'd like it to have, build the minimum viable version, and grow it from there slowly. Treat it like a collaborative project, accepting contributions from our members, but led by one or a few core people who are committed to putting in the work. Favour technical openness — open source, public data, protocols — so that anyone can hack on top. Building our own thing would be a stupid amount of work. Someone (maybe not always the same person) would need to continually invest time and energy. It'd more likely fizzle out and die than become a viable escape from Slack. But if it does succeed, I think it'd be better for us than any of the other Slack alternatives. So I propose we explore this option. Build it ourselves. If we manage to build something compelling, we move away from Slack onto that. If we don't, we stay on Slack, and wait for the situation to change further (either something better comes along, or Slack gets even worse and we have to jump ship.)
👆 1
👍 8
🎉 12
p
Have you considered Flarum? Brutally simple, mobile friendly.
d
I like this plan. And tbh I like slack. Yall feel like my colleagues 🥹
❤️ 2
d
The annoyances seem huge experiencing them almost daily. But the effort of building from ground up to fix them would be hugely disproportionate...
There'd have to be more than us to help, like 10x more than us, with 2x bigger issues than us, to bring the proportions into balance
i
Yes. I'm envisioning a radically different approach. Something that'd be infeasible for a product like Slack. For instance: all data is public; there's no authorization, just authentication; it feels like a chat, but doesn't need anywhere near realtime perf. Like, it wouldn't be absurd (for our scale) if the backend were literally a repo on github. Or a Dropbox folder. Or a single server in my basement. The thing we'd build would be situated software. I think that allows a dramatic complexity reduction.
❤️ 4
(Note: I'm not actually proposing any of these ideas. They're just illustrative of the difference between what we could build for our needs, in contrast to what's needed for commercial software)
d
The idea of there being a landing page that shows discussions immediately without authentication and the auth to post is really cool. And maybe we could download and prepopulate the slack history. Getting RTF and posts showing nicely seems tedius for the long tail of cases. But a lot of the optionality slack has isn’t needed so it is plausible. I’m sure other communities would love an open source opinionated thing like this too (jus sayin)
👍 1
m
@Duncan Cragg I feel like the difficulty of creating a forum is slightly exaggerated. Most web frameworks use online chat as one of the example web applications. Alternatively look for hacker news clones on GitHub to see more examples. I wouldn't worry about technical aspects a bit.
j
Building something new is a challenging path to take, but I am curious to see what happens next. 🙂
It may help to try to assemble a list of necessary features… I do worry this may be more challenging than it seems at first, but I suppose it all depends on features needed. I am probably too dependent on all the difficult things you often see in recent chat clients and forums… 😅
i
Yes! I've been hashing this out with a few folks. @Mariano Guerra came up with a good list. I've got my own list. I think at some point soon, we can spin up a discussion specifically about what this thing ought to be.
(At which point, I'd especially love to hear what features are on your wishlist)
One overarching design goal is to split this up into small, simple, independent parts that anyone could reimplement. I had a good experience with this game project recently. Having seen what Mariano and Kartik did with slack history dumps, and how people write TUIs for basically any service with a decent API, I feel like a pragmatic, ruthlessly minimalist approach to system architecture might allow for a sort of ... um... "marketplace" ... of implementations for each of the pieces. (Sorry, threw up in my mouth a little.) Like, we wouldn't want the project's success to hinge on people coming out of the woodwork to fill the gaps. But rather, if someone wants to put their FoC money where their mouth is, they could rebuild part of the system in their own way and show how and why their FoC vision kicks ass. This sort of opportunity for people to build stuff and demo it has been missing here. People build stuff, but it's all different kinds of stuff serving different purposes. That makes it hard for bystanders to understand and appreciate, or integrate with. Then there are things like TodoMVC, but they're soulless and vapid. (Sorry.. I really dislike TodoMVC for some reason. Need to unpack that. Anyone know a good group for commiserating about software?) If we built a community hub as, like, a handful of nicely isolated pieces, each requiring a few hundred lines of JS to do a bare-bones MVP... I think people might play in that space.
l
I'm very skeptical of a community-built tool being successful. It's a really hard thing to do, and it is possible, but will take loads of (unpaid) work and continual maintenance - even if it ends up fizzling out (no more ideas/tools and all that)
2
n
@Ivan Reese I didn't see your thoughts on a Mastodon-like instance for the community. The default Mastodon setup is optimized for individuals microblogging publicly, so it would need a few tweaks: • If we want to simulate Slack-like intimacy, we could keep our instance defederated (instance-only) or unindexed by Google. • To support long-form, we would have to customize the max char limit. Or support in-line articles. The good thing is: There is already a Mastodon-fork called Hometown which has made these tweaks among others. Because we'd save the effort of building client apps for various platforms (elk.zone is my fav and is quite beautiful), we could spend our energy on important things like making the content more browsable and searchable. In Mastodon, it is possible to subscribe to hashtags (i.e. topics) but we might need more than that in terms of discoverability of old content.
Microblogging emphasizes individuals more than it does topics. When I post something in #C050QK4917D , I am assured that everyone interested in that topic will see that eventually - which encourages me to post. This kind of interface for topics would be a minor tweak of the user-interface for Elk etc that is much more feasible to undertake.
d
Yes @Marek Rogalski to contradict myself, one of the few times I enjoyed coding for a living was when I'd discovered Django and two of us built an entire social network with groups and forums and tagging and uploads and profiles in a matter of weeks. I was literally smiling the whole time. Don't know if Django has succumbed to the usual bloatification by now though?
😁 1
But then again, advice from @Lu Wilson should always be heeded of course. So. I'm undecided.
Needless to say nowadays I'd resurrect my own Node/React jobby, https://github.com/DuncanCragg/ForestReact
i
IRC, or let's build something 😊
g
I would want someone/something to summarize each thread/conversation. I don’t volunteer. I know that Kagi.com provides a feature called “Universal Summarizer” which uses an LLM to produce summaries of information that it found. I wonder if Kagi would offer advice on how to ensure summarizability?
d
I use Kagi almost daily and the basic summary is great, just avoid the dialogue bit which is badly broken! I don't know how it would do on one of our threads, mind!
g
I saw Kagi Summarizer summarize a pile of Odin code. It did a good job. Makes me wonder what else LLMs can do...
m
Re marketplace of implementations: do I understand correctly that the community would live the in some publicly accessible database which any frontend would be able to query (and write - if authenticated) ?
i
Yes, precisely.
👍 1
k
As someone who is heavily exploring situated software, I really like this idea. Yes, it may turn out to be a lot of work, maybe to the point of not being up to our expectations, but at the very least it's going to be an interesting learning experience. I also like more specifically the idea of a minimal central core, meaning a repository. Among other advantages, it allows everyone to experiment with tools locally and without the risk of destroying the shared repository.
👍 3
j
I’m interested, but also wonder what exactly we would propose to add to such a system? There are many things I would remove from the Slack experience, but I don’t currently have a clear picture of what I would add to make a better chat/forum/wiki. Looking forward to the feature matrix, @Mariano Guerra!
amiga tick 1
h
New here, but I'm in Potentially some adjacent prior art in the "marketplace of implementations" is the RealWorld Demo App used for comparing implementations of basic CRUD applications. Specifically it's designed to allow comparisons for frontend only, backend only, and full stack approaches which is a constraint I think would be useful here as well?
🍰 2
t
For some reason I started working on a FoC slack alternative 4 months ago and then forgot about it 😅 I'm a bit swamped with work right now, but I could probably clean it up and have it running in a week or two
👀 4
I'd need help importing the existing slack history, and probably won't have enough time for CSS polish, but it might make a good starting point? I could also transfer the repo over to @Ivan Reese once its up
Ah, one more thing: The code I wrote seems pretty dang cheap/efficient (even for 2k+) users, so I'd be willing to eat the continued cost of hosting if that helps (consider it a donation)
i
@Taylor Troesh Hey, that's a fun coincidence. I'd be happy to take a look at it.
amiga tick 1
g
Google Groups, or any sort of similar thing, always seemed to me to be best for this sort of thing. Never really understood why everyone wanted to move to ephemeral chat.
i
Personally, I dislike the ephemerality, and have mixed feelings about the kinds of conversation encouraged by chat. But I love the feeling that someone is there on the other end. I don't get that nearly as much from most long form, async media. I think there's something special about presence indicators. I'm curious what the tasteful, subtle version of those could be.
Remind me — does Google Groups show a green dot for online users?
j
USENET doesn’t do presence indicators. There’s no current session because it’s a properly decentralized system. Also, no login/auth/&c. It’s very hard to monetize, which is probably why it isn’t used much these days. A mix of USENET and IRC might be interesting if you want to go full “brand new, it’s retro”…
2
k
For a small community like ours, Usenet could indeed be a viable option. What killed the news groups that I participated in long ago was spam and abuse, which in the absence of effective moderation lead to research labs blocking the NNTP protocol. If we run our own server (and thus have full moderation capacity), this shouldn't be an issue.
🍰 1
j
(Science Fiction prototyping / very biased wishlist) I’d love a system that replays conversations within topically based threads that dynamically accepts audio feedback like what Anchor for podcasts did back in the day and re-links or continues to add on the conversation with newer comments. The purpose of the audio potentially dictates the format. IE is this thread intended to teach/summarize topics/ideas, is this an exploratory thread, is this an action oriented thread with todo’s expected to come out of it, is it a thread of comments meant to encapsulate a specific idea from every angle? Sorry for the broken thought stream my attention is always under constant assault from outside.
j
I find Slack and all chat apps distracting. I don’t want constant intrusion. I don’t even want other people to know I am “present”. I prefer interaction optimized for pull rather than push. BBS and forums evolved to do this really well. They let you catch up to everything you missed since the last visit. They can email digests (auto-@Mariano Guerra). I only interact here via his digests.
❤️ 3
s
Can a USENET group be the minimal central core? The sync protocol already exists. Everyone gets a local copy of the repo if they want. Anyone can build advanced features on the repo, eg create a website that shows summaries, implements search or other views.
i
I'd need to learn a lot more about usenet before I could even begin to weigh pros and cons. I would enjoy learning about it — I like studying the history of our field. But, in this particular case, there are so many potential "just use X standard" suggestions to wade through that I don't have time to go study all of them to sufficient depth to weigh the tradeoffs. What I can do, though, is design something from scratch that approximates the shape I think would best suit this community, and then share it here, and then (A) do my best to be thick skinned as everyone tears into it, and (B) solicit opinions on what existing thing the design most resembles, so that we could decide whether to rework it into conformance, or continue down the path of just building something to scratch our own itches.
💯 2
👍 1
g
I’m finding that existing code and ideas are laced with crazy biases from the 1950s which are no longer valid. A fresh 2024 take on old problem(s) might just result in better and faster results...
💯 1
g
I created an acccount and clicked the thing in the email but it won’t let me log in.
😅 1
c
whoa, love the 2222 project. made an ant remix. starts around
T
and is somehow almost imperceptible on some audio speakers
🐜 1
m
how did you decide to leave Slack as the main community gathering place? What is the lacking things in Slack? I couldn't find it in the post you wrote
i
This has been a thing since 2020 or earlier. There’s some discussion in this episode of the podcast. Basically, it’s an online platform, but it’s not part of the web. We’re not a community to them, we’re just data sharecroppers. We exist here at their mercy, and they’re slowly making things worse for us.
g
I thought this might just be a challenge to the community. It’s a good one, actually. My research project will now adopt this as one of its first use cases. This doesn’t mean there will be anything public very soon… :-)