Slack is going to delete data more than 1 year old...
# administrivia
k
Slack is going to delete data more than 1 year old. This means I can't download a single archive containing everything, I have to stitch things out of multiple archives. Which introduces the possibility of history slipping through the cracks into oblivion. I vote we switch to Zulip: https://merveilles.town/@akkartik/112666113683429314
šŸ‘ 5
i
I'm willing to bet we could get on their community plan. So that's nice. Is there some sort of web interface to zulip? I'm interested in both of the following: 1. All posts and replies are publicly viewable and indexible by search engines 2. People can log in and post via the web I also like the idea of Zulip being open source with a robust API, since that would give folks something to hack on with their FoC tools. But I have no sense whether Zulip's API would be any good for that.
IIRC there are also mobile apps, but that they're a bit clunky. Don't love that, but at this point I'm in general agreement that Slack's focus on being a tool for the enterprise is harming our community.
k
I use Zulip exclusively through the web interface. On both computer and phone. No idea how hackable it is, though. Open Source in itself doesn't mean much.
We all know how these community plans work. You'll have to fill out some invasive, debasing form. Then you'll have to do it again in a year. And every year you'll wonder if you'll get rejected. And one year you will be, when you're least prepared for it. (And of course, you know it'll be YOU doing all this.) Probably privilege, but I personally have no patience for that sort of arrangement. Life is too short, and I have enough interactions with bureaucracies as it is.
s
Is Discourse off the table?
šŸ“ 1
i
I've found discourse's SPA-ified approach to forums to be a bit grating. The lazy loading hinders find-on-page, and it forgets my scroll position. I'm open to all options… but I'm biased toward just making a choice and executing rather than trying to build broad consensus (because that failed last time)
šŸ‘ 1
s
I sense some qualified questions incoming from @Ivan Reese, so let me preemptively say that I know nothing about Discourse hosting, APIs, or plans. I just like using it in several communities and it feels like a good fit for this community. I’m not a fan of Zulip. Recurse Center uses it and it’s the single most effective reason for me to not connect with that lovely community as much as I should.
😢 1
k
Full disclosure: my usage of Zulip isn't very heavy so far. One private 3-person group and some weak links with the Pijul community. I'm just really enamored lately by their late-binding approach to forum organization.
j
It doesn’t meet my ideals. But I feel like if we are going to switch, we might as well go where people are, which is discord.
🤮 1
šŸ¤” 1
šŸ“ 1
s
I took this as a reason to log into RC Zulip again. I find the mobile web version… functional, but not great. And the mobile app is hard for me to find words for that aren’t offensive; let’s just say I’m pretty sensitive about mobile app design. šŸ™‚ Immediately cross-checked with Malleable Systems Collective, which I believe uses Discourse. Have nothing to complain. (I mean, that’s a lie, but come on, compare those for yourself, if you can, it’s night and day, and I don’t mean one of them supports night mode and the other doesn’t. (They both do. šŸ˜‰)) I use phone, tablet, and desktop platforms in equal proportions to access FoC, probably biased towards tablet/mobile at this point. I assume that’s still unusual, which would explain why so many ā€œFutureā€ of Coding projects still design for mouse & keyboard interfaces first. FWIW, I’m also actively using Discord, including hosting a community there. I don’t think the way threads/forums work is a good fit for this community. My feeling is also that if we switch to Discord we are basically just arriving in a similar situation that we are trying to get out of here. There’s a lot of buttons there lately that try to upsell people to something.
j
I’m confused on how zulip is a better situation. Unless we self host, looks like the same kind of terms as slack for free users.
s
It’s true that theoretically the structure of the business relationship with all three is probably close to identical, making us vulnerable to the same issues. However, if there’s one good thing I have to say about Zulip then that there is a reason why RC uses it, and that is the close relationship to the founders and developers who clearly seem to have aligned values in terms of openness and conduct and support for communities like ours.
k
@Jimmy Miller I don't follow. Does Zulip have limited history? I wasn't aware. My idea is that since the sources are open it's harder for them to "change the deal further." Another idea: the market leader has leverage to change the deal. But if you use 10%-market-share #2 or #3 they're usually more careful about losing users. They just have less headroom. Zulip as a new entrant is unlikely to dethrone Slack or Discord. You can get a sense for this perceived leverage based on the upselling actions @Stefan mentioned. (On the other hand, the way we think about industry segments might change, causing Zulip to think it has 99% market share of some category that doesn't include Slack and Discord. It does happen from time to time.) So yes, there are no ideal solutions. Or rather, I have an ideal solution but then I'd be using it by myself šŸ˜‚
j
It says 10000 messages. Admittedly I have no idea how many messages we have. But we will hit that limit at some point and then be in the same position where we just need to incrementally archive. If slack cut off all access that would make more sense to me. But having to do things incrementally doesn’t seem like a huge deal. In my view, switch will just mean we lose some percent of casual lurkers/posters and not gain a whole lot. I think there has to be a real inciting incident for it to be work it for us to leave.
😮 1
k
Ok fuck Zulip.
Re real inciting incident: yes, this is me trying to incite a real incident.
I'm switching my vote to Discourse.
j
I mean one that affects everyone who chats on here. One that the casual person here feels and makes it hard for them to participate
k
Yes. I'm biased, but I think this affects everyone who chats on here. The ability to resurface old threads shapes the character of the community for the better, IMO. (As I grow older I grow aware of many things that I thought didn't affect me, but really do.)
j
For discourse we’d have apply as a ā€œcreatorā€ to get a free plan. Their limitations are based on storage (5gb) and page views (50k a month). Eligibility is based on either listeners or patreon money we make.
But we can still download the history. It just doesn’t come in one chunk. I’m happy to help to make sure to preserve that content if we need help.
k
Ohh are you at Discourse? That's a plus (albeit temporary on the timescale of these things).
j
I don’t know how to interpret that last message. I was just giving the terms for discourse. Not personally a fan on the contingency of that arrangement. (Of course all of these arrangements are contingent. I just don’t like the idea of entering into a new one)
k
Sorry I interpreted you to be saying you have an in with the company, maybe that you work there. Absolutely agreed on not liking the contingency of the arrangement. I said at the top of this thread that I don't like applying for special plans that a company gives out out of the goodness of its heart, so šŸ’Æ there.
j
No I know nothing about discourse. Just looking their terms. Seems like the only way we could not have a special plan or a plan with limitations is to self host. I’m not sure we want that burden.
My message about downloading history was about slack. If we need to make sure we preserve that history and we have to do it incrementally, happy to help make sure we get that history preserved
k
Ohh got it. Appreciate it. Yeah, we could take on a little more pain with reminders and whatnot to preserve history. I'll subside from inciting.
u
It's possible to upgrade, temporarily, to a higher-tier plan and then perform the export.
Even with an export, though, you won't get any files people have uploaded.
k
Yeah, that's been a known pain point. We just don't share files here in response.
It's possible to upgrade, temporarily, to a higher-tier plan and then perform the export.
From the email today: "If your team chooses to upgrade to a paid plan after the policy goes into effect, you will not be able to recover any content that has been deleted under our new policy."
u
It'd be impossible to upgrade as I imagine with several thousand users, you'd incur an incredible cost.
šŸ’Æ 1
You'd spend $10,000 migrating away at $5/person.
Mattermost and Zulip are attractive options.
Ivan, Kartik, if y'all wanna test out and/or break a Zulip instance, I have one functioning at https://foc.paradigital.org for this occasion.
I'll give you ownership permissions.
ā¤ļø 1
k
Yes! I saw your message, plan to hop on there in a few hours.
šŸ‘ 1
I noticed today while trying to kick the wheels on the Zulip community plan application that there's apparently already a https://futureofcoding.zulipchat.com. Looking in our archives it seems to be a test we created back in 2019. I never got on it. I don't know if anybody here has ownership over it. We can ping Steve Krouse if we need to. Then again, it might also be fine to create a new name on Zulip if we decide to go beyond a test instance. Do a mild fork. Still give Ivan, Lu and Mariano admin privileges but let the community decide over time if we want to: • Remain in Slack • Move over entirely into Zulip • Use both but in different ways. One thing that makes a cutover difficult is imagining we have to do it atomically in a single big bang. I think there may be something to keeping a Plan B in our back pockets and keep feeding it some engagement. Insurance against things getting even worse with Slack. (We also have an IRC channel, but that's probably Plan D šŸ˜„)
u
If Zulip is the desired destination, it'd definitely make more sense to push towards a self-hosted instance of it to circumvent all limitations but push notifications.
<http://chat.futureofcoding.com|chat.futureofcoding.com>
šŸ˜ 1
k
I think it's a trade-off: • Somebody has to be willing to sign up for indefinite thankless maintenance of a self-hosted instance. I don't know how frequently they put out updated versions and so on. But if there's a volunteer this really does seem quite excellent. • A community license lets us offload the maintenance, and also seems pretty limitation-free if we trust Zulip to not do a rug pull at some point.
u
If a "Free Standard Plan" is possible, I'd say go for it. Provided they don't kill the export options..
k
Yeah, exactly. (I just went to Discord and saw your ping there, BTW. Thanks for hopping on here.)
šŸ‘ 1
I'm not at all concerned about the hosting cost, that'll be in the noise compared to ongoing manual maintenance burden with most software. (I don't really know anything about how easy Zulip is on this score.)
u
Zulip is.. actually quite easy to maintain from the perspective of upgrades. The instance I have is running on DigitalOcean with daily backups, running on a $12/mo droplet.
ā¤ļø 2
šŸ’” 1
That may be enough for 2k users.
ā¤ļø 1
k
u
The downside is that we won't get mobile push notifications without that community plan, but that's something we can negotiate after the fact.
šŸ’” 1
i
@Kartik Agaram
I noticed today while trying to kick the wheels on the Zulip community plan application that there's apparently already a https://futureofcoding.zulipchat.com. Looking in our archives it seems to be a test we created back in 2019. I never got on it. I don't know if anybody here has ownership over it. We can ping Steve Krouse if we need to.
I am the eggman. I am the owner. Goo goo g'joob.
šŸŽ‰ 1
Oh wait I'm wrong! I just have an account. Steve is the owner.
šŸ˜‚ 1
k
That was my impression from reading the old thread.
i
I have a positive impression of Zulip, and a neutral to negative impression of everything else (including staying on Slack). I'm also biased toward action. So I think at this point I'm going to do the following: A) More research about Zulip and other options. (Discourse has already soured me because they list 2 types of AI at the top of their feature matrix.) B) Put together a short write-up stating my findings, and reflections on Slack, to be shared here. C) Determine whether this is a "vote on it" sort of thing or a "we're doing it" sort of thing or a "god dammit, we still can't shake Slack, what the hell is wrong with us?" sort of thing. (Can you sense that I'm unhappy with Slack? :) )
šŸ’“ 1
šŸ«‚ 1
Buying Slack Pro for a month would be roughly US$2500.
u
If file uploads are rare/nonexistent, you wouldn't need it to do the export. I re-read their export feature table.
(Thankfully.)
k
@(wryl) you might be interested in the solutions we currently have for archival: https://futureofcoding.org/community#tools
i
I'm poking around more and more in Zulip and it's really good. It has so many little nice touches. For instance, you can tag code blocks with a specific language, and then also specify which playground should open if you click a link on that code block. (Eg: you could set it up so that JS code blocks open CodePen.) The most painful thing seems to be that it's ugly. It's super duper ugly. It's just so hideous to look at. The iOS app is painful. (The iPad one is slightly better.)
āž• 1
ā¤ļø 1
u
Perhaps Mattermost is an option? It's more Slack-like.
i
We ruled it out last time we were thinking about moving off Slack. I believe it has all the downsides of Slack, and few to no upsides. (I'm open to being wrong about this — I only looked at it for a few minutes today, so I'm going mostly by memory.)
šŸ‘ 1
u
(I've only had cursory glances at Mattermost and it was a pain to self-host, which turned me away. You're more than likely right.)
šŸ’Æ 1
Zulip also has some really neat extension features. Web channels are also a solution to the public visibility problem.
i
They're working on a long-term redesign. Some of it shipped in 8.0 back in Dec. Some of it is coming in 9.0 (presumably launching soon, looking at their release history).
Here's an interactive preview of some of the upcoming redesign. It's certainly an improvement. ^ The fact that I can link to an interactive preview of their upcoming redesign is fantastic. Like, I'm so fucking tired of closed-off enterprise SaaS. Seems like a big feature of 9.0 will be adjustable information density. That addresses about half of my GUI complaints (for the web client). Here's their board for 9.0: https://github.com/orgs/zulip/projects/9/views/1 Target release date is July 10th.
u
Oh WOW.
That looks amazing!!
k
Interesting. I can fuzzily make out that the preview is somehow better. But I can't articulate why, and 'uglier' or 'prettier' aren't the words I immediately reach for. This is what it's like to have no taste.
u
It makes better use of space (IMO).
Loosely resembles a tiling window manager.
k
Interesting. When I compare side by side I only see the similarities between them. I do notice the font size is larger in the redesign. And that is appreciated.
Like, if you asked me which looks better, Slack or Zulip, I'd say Slack. But the question doesn't arise unbidden for me. The look of Zulip doesn't bother me like it clearly bothers @Stefan.. šŸ¤”
i
Here, Tantacrul has you covered:

https://youtu.be/4hZxo96x48A?feature=shared&amp;t=395ā–¾

ā¤ļø 1
(It's like a little 10 min segment of the overall video. You can watch at 2x, it's fine.)
k
Wow, that's great.
s
That video was delightful. Kudos to him for trying to teach engineers some design. Yeah, @Kartik Agaram, we might represent opposite ends of a spectrum. I can’t really understand how people can’t see it. Then those people can’t understand why I’m so worked up about something so clearly completely irrelevant. But @Ivan Reese’s comment sums it up best: ā€œLook how hideous this is! Oh, feature!ā€ Even if you can see it you’re immediately distracted by some tiny detail of functionality which somehow snowballs into the most important thing ever, just because there was this one time in 1998 where you really missed it, and it was this traumatic experience that took over your life, turned you into an alcoholic, destroyed your family, and you’re still going to therapy because of it, but now you can get closure and have code blocks tagged with a specific language and the universe is finally back in balance. A still hideous looking universe, but finally back in balance. Thank god! Meanwhile, I can’t unsee how hideous it looks. And how the mobile apps are clearly an afterthought. Which is obviously a much more important issue, because let me tell you, back in 1993…
🤣 2
j
Discourse has been straightforward to self-host (speaking as the admin of the Malleable instance). Happy to answer any questions if that's something you're interested in for this community. šŸ™‚ It's true they do seem to be adding AI features lately for some reason, but they are all off by default. In general, Discourse is heavily customisable through settings, plugins, etc.
I suppose something to ponder here is what sort of "medium" you want to have... Chat (Slack, Matrix, Discord, etc.) in general is more suited to shorter messages. Forums (Discourse, etc.) allow more space for longer topics that get replies over stretches of time. But then there are hybrids like Zulip that are kind of "topic-focused chat". This community's usage of Slack threads is also forum-esque as well. Anyway, worth considering this before making a move.
ā¤ļø 1
n
Zulip is quite friendly to communities. In fact, it is probably the last standing group chat platform that still serves communities. Everyone else found it more lucrative to serve small business teams. Including all the open-source ones like MatterMost, RocketChat etc. This is why even open-source communities have been moving to Discord. I am a user of the Lean language community's zulip instance at https://leanprover.zulipchat.com/ A few tidbits about Zulip that I know from a few months ago: • Their paid plans are gated by # of users who will have mobile push notifications enabled. This was important to me, but was able to sidestep this because they provided free hosting for my community. • They have two Android apps. One is old and a new one is being built in Flutter. Screenshot for the new one is attached. • A small annoyance I felt (I was comparing it with Discord which has both threads and forums) was that every thread needs a manually entered Topic. Discord generates thread topics automatically. This might not be a problem for us. • They are responsive to feature requests and bug reports. Their own Zulip is public and things are discussed openly. I asked for some improvements in custom profile fields and a reasonably solution was implemented. Overall, I felt that Zulip can work for technical users where density of content is important. If low friction for non-technical users is needed, Zulip will feel quite sub-standard compared with bigtech consumer apps like WhatsApp / Discord / Telegram.
ā¤ļø 1
s
In terms of ā€œwhat sort of medium do we want to haveā€ I find myself more and more open to fragmenting this community into a chat and into a proper forum. What I’m really craving for is a proper forum, which I believe is how most people here (have been conditioned to) use this Slack instance. I host my own chat community on Telegram, which I deliberately wanted to have the lighter and less structured feel of a chat, so I’m not against that medium in general. But in my mind FoC is more of a forum than it is a chat, and what I would like to see more than just migrating away from some potential issues is migrating towards something that makes this characteristic of FoC come out more. Perhaps that is why I dislike Zulip. To me it seems like another one of those things that wants to be both and therefore isn’t really either. To a certain extent that applies to Slack as well, but it seems that we have made it work somehow. Perhaps we can make it work with Zulip too.
b
Despite loving Discourse, I find myself more involved here than https://forum.malleable.systems/ in part because here is a chat, and somehow that works... well? I feel a lot of the momentum here is driven by people sharing "here is something I did / obsessed over today, or this week", and the "most recent" nature of chat works well with that. A proper forum might encourage a long-lived thread about a project, with the downside that only people who subscribed to that thread even see one's "this week" update. Of course it's possible to normalize "start a new thread every week" or something like that, but that feels wrong in losing the thread benefits of having a forum in the first place? I think the quality I'm trying to question here is does a forum force "premature structuring"? In slack you don't exactly decide "this deserves a new thread"; you just post a single top-level message and leave it to people who'll respond to you whether it deserves promotion to a thread. In theory, I appreciate Zulip's attempt to "be both" and seek some middle ground. In practice, I'm occasionally visiting Oilshell.zulipchat.com for over a year now and I'm still foggy on how zulip "topics" work and what's the etiquette šŸ˜†
k
Oddly enough, this feels pretty much like a forum to me given our fairly strict requirement to respond in comments. So is the only difference between our usage pattern and a forum the requirement that new threads in forums receive a subject line? šŸ¤” @Beni Cherniavsky-Paskin I totally agree with you about the problems of premature structuring: https://forum.merveilles.town/thread/86/%5bmeta%5d-forum-utilisation-16/#1654
šŸ‘ 1
But it's interesting that you think this Slack doesn't have that problem.
There's also some precedent here for nudging people to add more structure to their posts -- even if it costs something in engagement: https://futureofcoding.slack.com/archives/C5U3SEW6A/p1715659640206519 So this is a two-sided problem. We don't just want the solution that engages people the most. There's some value in adding friction.
šŸ° 1
šŸ‘ 1
u
May be worth codifying, in a bulleted list form, the desired traits of the tools the community uses to organize, and then find loose approximations of those traits in existing tools.
šŸ‘ 1
šŸ‘šŸ¼ 1
i
@Beni Cherniavsky-Paskin:
In slack you don't exactly decide "this deserves a new thread"; you just post a single top-level message and leave it to people who'll respond to you whether it deserves promotion to a thread.
Yes, this! @Kartik Agaram
So is the only difference between our usage pattern and a forum the requirement that new threads in forums receive a subject line?
Yes, and you see that subject line from the index page (rather than the whole post).
k
Yes, this!
I don't follow this enthusiastic agreement šŸ™‚ Your preferred rules are for people to be careful about what they post at the top level. We do each of us in this Slack have to explicitly decide "this deserves a new thread" before we post. So to that extent we're already a forum. (Just not with mandatory subjects, but I get the sense you'd also prefer that?) I don't think of somebody choosing to comment on a post as "promoting it to a thread." It's already a thread! Perhaps this seems nitpicky.. I'm just trying to get at what we each like and dislike about forums vs chat. And I feel like there's a disagreement lurking beneath the surface here.
šŸ‘ 1
c
I support whatever decision @Ivan Reese makes 🫔
ā¤ļø 1
n
Subject/Topic are now optional in Zulip. All such messages without topic get collected under "No Topic" (and can be moved later). However they still don't do automatic subject/topic detection like Discord does.
šŸ’” 1
i
Taking some time to deal with work/family stuff. Will weigh in on this issue again next week. Thanks everyone for all your input and ideating so far! If I've (re)learned anything from this (re)exploration, it's that slack, despite all the crummy enterprise nonsense, sits at a fairly unique point in the possibility space and thus replicating what we have here will be difficult or impossible. There's no easy choice, including the choice to stay.
ā¤ļø 2
j
I'm also looking for a self-hosted chat app for a project I'm working on because reasons. I was intrigued to see that Campfire from 37signals has come back from the dead and is available from their "Once" campaign (buy it and own it forever) for only $299. https://once.com/campfire This looks like a really strong option.
šŸ¤” 1
k
Hosted?! They do still have a reputation that makes this plausible šŸ¤”
Ah, self-hosted. I had no idea 37signals sold their source code.
h
> ONCE ā„¢ products are designed, built, and backed by 37signals ā„¢. Copyright Ā© 37signals LLC. All rights reserved. Anyone buying, using, or receiving a ONCE ā„¢ product is subject to our software license agreement. I imagine folks would have objections to using a 37signals project especially paying them for it (even if just once). The library system at Duke published a blog post about why they moved away from 37signals .
šŸ’Æ 1
i
Yes, I'm opposed to giving money to dhh.
šŸ‘ 1
Adding to the "slack is growing increasingly unfit for our needs" pile: I'm getting multiple reports that longstanding members are now getting permissions errors when trying to post to certain channels. I've changed nothing. So this is either a bug or a change by slack that I can't figure out how to remedy.
šŸ‘ 1
😬 2
Check this out @Kartik Agaram — The other day, I launched Slack on my iPad and it just sat there with this blank screen. I could flip to other views (DMs, Activity), and they were only partly functional. Just stayed like this until I force-quit.
😬 1
Also, belated update on putting together some options: All the options have painful tradeoffs 🫤 I'm still exploring.
ā¤ļø 1
k
Have you been making a list of features we'd have to add to cerca? I suppose mobile notifications would be a big, hard one..
i
No, I haven't started that yet.
šŸ‘šŸ¼ 1
i
Nice that they're doing so much. Regular major releases every six months is great for a small team.
However... this new redesign is still just as confusing as ever. There are so many choices in this UI that are baffling to me — things I would change in a heartbeat if I were empowered to do so. My sense from spelunking through their github issues and discussions is that they really struggle with wrangling complexity, both on the surface and in the internals.
I hope they manage to pull a Blender, and every five years or so do a massive redesign that's a dramatic improvement, and after 3 or 4 of those land on something that is truly world class.
I think they're well-positioned to do that, too. Self-sustaining, no VC, good set of ethics. I'm really rooting for them.
n
I mean who else provides a terminal client like this? šŸ˜„
🤯 2
i
Yes, that is baller. But who will be the first community platform to provide a client inside a visual programming system, hmm?
n
Not that this helps us immediately, but there's a working group for "Threadiverse" - the subset of ActivityPub-enabled applications built around a topic-centric model of content representation: https://community.nodebb.org/topic/17908/threadiverse-working-group
I've submitted a feature request to Elk (my fav ActivityPub client app) for adding topic-wise browsing of local content. Let's see what the devs think about it: https://github.com/elk-zone/elk/discussions/2923
ā¤ļø 1
Update: This needs to be implemented by Mastodon before custom clients can show a sidebar of topics similar to Slack/Discord: https://github.com/mastodon/mastodon/issues/31505
ā¤ļø 1
k
Very interesting ideas, @Nilesh Trivedi.
n
https://whalebird.social is probably most similar to Slack in terms of UI, but like all Mastodon clients, topic-oriented content discovery is what's needed. BTW, this ability in the fediverse to mix and match your preferred client app with your preferred server, though the opposite of "situated software", still brings a smile to my face. It takes "To each his own" to its extreme. Is there a name for this kind of software? šŸ™‚
k
It seems like every new protocol gives us a little bit of grace, some measure of temporary freedom for clients to look and act differently while respecting the protocol. It dissipates over time, though, as the protocol adds complexity.
n
I implemented "Followed hashtags in the sidebar" feature in the Whalebird desktop client for Mastodon. @Ivan Reese If this feature were to be implemented in people's favorite mastodon client apps, it could make mastodon a reasonably good choice for our community. Good thing is that this is a client-only change. API to get a user's followed hashtags already exist in all the client apps. Here are the relevant discussions for two other client apps. TBH it could be a while for these to move forward, but would be much easier in forks like Hometown: • Mastodon web UI: https://github.com/mastodon/mastodon/issues/20802 • Elk: https://github.com/elk-zone/elk/issues/1866
ā¤ļø 1
i
@Nilesh Trivedi I appreciate all these references. By all means, keep them coming! But at this point I'm quite interested in figuring out if we could build our own service rather than adopt some existing one.
šŸ‘ 1
c
Is this thread terminal?
i
Not sure what you mean, @Ch
c
i'm following this thread with interest, and am curious if there will be a terminal point at which a decision is made
i
c
thanks, didn't see that, love the direction!
such a plot twist. so delightful. cool community!
n
Came across this at IndiaFOSS conference: https://thecommit.company/products/raven