welcome to cag.exchange / affordances of discourse

Welcome to cag.exchange—

I’ve long wanted to set up a Discourse server for talking to myself. So here it is!

Discourse checks all the boxes for what I might want out of blog software (like Jekyll or Ghost) in 2020:

  • Open source
  • Themes and customizability
  • Markdown
  • Version control
  • Media embeds
  • Tags and categories
  • Mobile editing
  • Scheduled posting
  • Search

BUT because Discourse is purpose-built for community discussions (rather than the “broadcast model” of most blog software, or the “mass private messaging model” of a newsletter), it’s also full of affordances that make it a super weird and exciting space for writing and thinking:

  • Talking to myself in public / threading
    • One thing I REALLY MISS ABOUT FACEBOOK(!) was using it to talk to myself. I would often paste in the first line of a book, and then continue dropping in quotes in the comments and I continued to surf and think and free-associate. It just felt really fast and easy. Sometimes the algorithm would surface the “memory” a year later, and the thread would continue across time.
    • The idea of hitting “publish” or “send” on other platforms just feels too weighty to me. I know that’s just in my head, but there’s something nice about small text boxes, suggesting that their contents are to be posted right away, or at the slowest, in a sitting. With threads, a post forms in a kind of additive drip-drop across time.
    • Twitter has been the best for threads, though it also has its limits. Namely, threads are kind of hard to use, feel arbitrarily limited in terms of length (first 120 and 280??), and like they just really don’t work very well. In any case, I’ve enjoyed several epic multi-year Twitter threads with myself: particularly this photo thread from 2015 to 2018.
    • These threads happen in public but they’re not really addressing anyone in particular, or asking for a response. It’s fun when people pick up on them.
  • Robust participation
    • Beyond just “commenting”, all users here can in theory create new topics and participate in moderating discussions. This can be assigned manually, but Discourse also has a “trust” system built in where users automatically gain more agency through increased participation.
    • If I wanted to make Discourse extremely “blog-like” I could shut off the ability for anybody except me to create new posts, but for now I’ve left it on just to see if any use case emerges for this ¯\_(ツ)_/¯
  • Tiered and flexible permissions by category and user group
    • The permissions above (basically: reading, commenting, creating, moderating) can be assigned category-by-category to specific groups of users.
    • Categories can be private to different groups of users — which seems really useful!
    • Currently there are 3 public categories: Exchange (you are here), Commonplace (for reading notes), and Sandpile (for testing). But I’ve already set up a few categories and user groups with specific permissions. For example, I made a “Weeknotes” category that is just visible to me, though I may eventually invite specific friends or collaborators as readers and/or writers there. In the past, I think I’ve found myself oversharing, in part because of the blunt permission models of certain platforms.
  • Bidirectional linking/forking
    • Discourse automatically keeps track of internal backlinks. So anytime a post references another post on this site, a reference will show up on the original post. My brain is almost constantly operating in terms of internal cross-references, so platforms that lack an easy way to deal with this are almost unusable for me.
  • API-like / RSS feeds for every url
    • Discourse has an API (which means it can plug and play with other tools and systems), and it’s built in a way that feels, to me, “API-like”. For example: you can get a JSON representation of any page by adding .json to the URL. You can also generate RSS feeds for any page (including the whole site, a category, or a single topic) by adding .rss to the URL.
  • The front end is the backend
    • I love editing my federated wiki because there is no distinction between frontend and backend: double-clicking any block of text changes it in-place to an editable field, and clicking again makes that edit public.
    • Lots of blog software operates on a split frontend/backend model. For example: in Wordpress you edit in /wp-admin, in Ghost you edit in /ghost, in Kirby you edit in the /panel. I don’t know why the disconnection (dissociation??) between separate interfaces for writing and reading bothers me, but I really prefer to “write where I read”, so to speak. (I have a theory that this is why Medium’s editor has really resonated with a lot of people.)
    • On Discourse, there is a superadmin backend for site configuration, but by-and-large the interface for posting and reading is the same the creating, removing, updating, deleting, and lots of other moderation and configuration functions happen in situ and are not necessarily restricted to an admin user.
    • One of my longest running and most generative relationships with a platform was between 2004-2015 on Tumblr, before it imploded. What was worked so well for me about Tumblr was that the site allowed for a frontend that looked a lot like a publication or customizable archive, but it operated on the backend like a really fun social network, so it was the best of both worlds. Like Facebook and Twitter, Tumblr also had super low-friction posting for different media types, where posts could contain a single image or quote and didn’t even need a title. Over the course of a few mergers and acquisitions, the site slowed to a crawl, got bogged down with spam, and start pushing ads on both the front and back end. (It appears to be in the process of making a major comeback, though!)
  • Longform and asynchronous, but also realtime with presence
    • I think Discourse is set up to encourage longer-form writing than Twitter or Facebook, and to generally be more asynchronous than realtime. However, new posts are updated in realtime, and there is a “presence” feature that shows if somebody is currently typing. Again, these remind of features that I surprisingly really miss from my time on Facebook :joy:.
  • Beyond reverse-chronological
    • Chronology has turned out to be one of the most controversial parts of existing on social media platforms. Most blogs are good, old-school reverse-chronological archives, meaning the newest posts show up at the top and the archive moves backwards from there.
    • Twitter and Facebook have both royally fucked this up for everybody with attention-suckering algorithms that have obliterated any sense of linear time.
    • Discourse has several overlapping models of time:
      • Categories are manually ordered. (They can be sorted by most recent activity date, but I found this constant rescrambling on the highest level to be a little jarring.)
      • Topics are ordered by date of most recent activity. That means that editing or replying to a topic will “bump” it to the top of the list. I’m really excited about posting in an environment like this, because I feel like reverse chronologies have worked REALLY badly for me. I don’t find that because two posts were written around the same time, they have much if anything to do with eachother. And everything just slips into the archive, after hitting page 2, just getting lost forever in the mists of time. I’ve seen lots of the best blogs actually resort to a manually index.
      • Replies to a topic appear chronologically, from original post at the top to most recent reply at the bottom. Threading doesn’t reorganize the stream of posts, but allows users to preview and skip to related comments.
      • Each topic has an extremely handy timeline sidebar for quickly scrubbing through potentially long conversations (reminiscent of how Netflix or Kindle lets you scrub through a longform media). I wish for this to exist on even more platforms!
  • Wiki-like / living documents
    • A special post-type called a “wiki post” allows for anybody that can read a post to also edit it. Version control shows edit history and allows for rolling back. On other instances, I’ve seen people use this for generating shared definitions, consolidating resource lists, and collecting event attendance. I don’t know how or if I’ll use this but I love that it exists.
  • Keyboard shortcuts/navigation
    • You can tell that Discourse is built by nerds because it’s almost entirely keyboard navigable. Press Shift + ? for an index of these.
  • Lots of post-states: draft/open/closed/archived/unlisted
    • Topics (a.k.a. Posts) have a multitude of states in Discourse. “Drafts” are only visible to the author; “Open” topics are published and open for interaction; “Closed” topics no longer permit replies; “Archived” posts additionally disable likes, voting, and inclusion in lists or emails; and “Unlisted” posts are effectively disappeared from the site except that they remain accessible directly via URL. One single topic can be Closed, Archived, and Unlisted all at the same time.
  • User memory / last read posts and locations
    • If you are a signed in user, you will be granted an “unread” tab. Here, you’ll see everything posted since your last visit to the site.
    • If you revisit a long thread after reading partway, Discourse will remember where you left off and mark that location for you. If you go away and come back after the conversation has continued, Discourse will also mark new replies since your last visit.
    • While a lot of sites collect analytics for no clear reason, these features strike me as useful reasons to make an account: personal, contextual reminders, and some added functionality for readers.
  • Email and notifications built-in
    • Discourse has very intelligent and flexible on- and off- site notifications. By default Discourse “subscribes” you to all activity on topics you create, and threads you participate in. It also sends periodic email notifications which can be configured in detail or turned off. For example, if you haven’t visited in the last week, and there has been new activity, Discourse will send you a consolidated summary.
  • Syndicate in and out
    • Some blogs actually use Discourse as a kind of super-powered comment system. For example, here is a blog post on Boingboing. Each time a post is published, Discourse automatically creates a mirror topic with a link to the post. Discourse has a web embed that can shows comment previews back on the original website. (I quite like this model! Though I don’t have any current use for it, this site could essentially serve as the comments or discussion section on some other future website, if that makes any sense.)
  • Moderation features
    • Discourse has a full suite of collaborative moderation tools, including flagging content and blocking and suspending users. These are functions so sorely missing from other platforms that the Discourse team has done a really thorough job thinking through. I don’t anticipate having to make much use of these, but knowing that moderation is core to Discourse makes me feel comfortable leaving the entire site’s permissions relatively open, because the tools are in place to take care of any problems which might arise.
  • "Ads" as form, not revenue
    • Discourse is not ad-supported, but there is a plugin for inserting “advertisements” a.k.a interspersing blocks of content inside of threads. I’m interested in having access to “ads”, just as another form.

There are also some things that I’m less excited about or still have questions around:

  • Sometimes slow
    • Discourse is a complicated, dynamic web application that relies heavily on javascript, and sometimes slows down a bit when loading lots of content. I’m so used to working with static sites which front-load all of the page generation, so any lag feels very unfamiliar.
  • Relatively expensive
    • I’m spoiled from working on static sites which often have no cost at all, aside from a domain name. Discourse is sort of resource intensive. It is said to not work well on the cheapest Digital Ocean droplets, with a $40/mo droplet recommended, which also requires a non-trivial install process, and occasional maintenance. I previously attempted to install Discourse on a $5/mo droplet and it took a long time, was buggy, and eventually crashed. Official managed hosting starts at $100/mo. I found a slightly confusing but also very intuitive service called Nodechef which offers $10/mo managed Discourse hosting, so that’s where this site lives! This comes with 1gb database storage, 5gb file storage, and 100k monthly pageviews which should be plenty for the foreseeable future or perhaps the life of this experiment.
  • Confusing
    • Discourse does a lot of things, most of which I will never need. It also presents readers with more options than they probably want. It’s more maximalist than minimalist.
  • Using it wrong
    • Is it possible to use this wrong in the way I’m trying to?
  • Overkill
    • I don’t yet know what if any aspects of what interests me about using Discourse as a place for writing and thinking are most important. Could those aspects eventually be ported to a platform that’s much less complex?
  • Pesky
    • Discourse comes with a lot of “onboarding” related to developing a community. It also comes with suggested rules for post length, community guidelines, etc. I’m turning off this stuff off or ignoring it whenever I see it. Some of it will be interesting to customize but in the first day, Discourse was constantly getting in my way with pesky reminders.
  • Apparent ghost town
    • By design, Discourse is for many users, so it sometimes already feels or looks kind of silly to be a sole poster here. I have to remind myself that’s OK! I feel like this is a huge stumbling block for most people setting up Discourse for its normal purpose, since the design sort of reinforces the absence of a community, before it is thriving.
  • Indicatorful
    • While I find Discourse’s indicators useful and well-designed relative to other platforms, I don’t generally find badges, likes, notifications, or emails to be all that great. I might end up disabling some of these features as I go to try and “quiet” the interface a bit.
  • Online only
    • Discourse has a phone app, but it’s essentially just a shell for the mobile web interface. I would love for Discourse to operate more like the decentralized platform Scuttlebutt where the entire network can live locally on your device. It will actually be a huge hindrance to way I would like to use this site that I can’t post or draft without an internet connection, but I am exploring some workarounds.
  • No blog-like “stream” view
    • Maybe this is something I could build with the API if I find a need for it, though.

So, welcome to town. Feel free to lurk or sign up, and hope to see you around.


So, I was greeted by a bot, but I am really curious if you have pointed some bots to old collections to facilitate this conversation with yourself/yourpastselves.

(I like the way that Discourse recognized I was looking at a specific phrase and placed it into this reply for me. It also did the markdown for me when I copied a link from Are.na in another reply. Nice.)

1 Like

I hope it comes back. Well, I have more trust that it won’t be shuttered, but I don’t know if the momentum in my Tumblr circles will reappear or if I will ever be back there as regularly as I was. Feels like Are.na, despite its differences, has replaced that for me.

Flickr also seemed to be back from the brink with a new owner but with the recent plea for money maybe that’s not really the case.

1 Like

Have you seen Urbit (a few more refs here)? I don’t really understand it and I don’t have a way to try it just yet, but I am fascinated by the idea. Also, for some reason or another that I can’t pin down, and in part as a product of looking around at some of the people adjacent to Urbit, I get some vague Space Collective vibes, in which I simultaneously feel intellectually inadequate and cult skeptical.

1 Like

Yes! That’s Discobot. It’s customizable too, though I haven’t gotten around to it. I love that everything in Discourse is at once robust and entirely customizable.

Will you elaborate on this??

Yes! Discourse reminds me a lot of the “delight” people experienced with Medium’s editor at one point, before Medium went to shit. It’s thoughtful in a lot of really small and contextually specific ways that other software seems to miss. I’ve thought “Nice!” about a hundred times since installing this here :slight_smile:

(sidenote: I have the sense that everything I once liked about Medium had to do with Marcin Wichary, who is now onto new amazing projects)

That’s a good point. I think Automattic will bring the technology back around, but the community has probably dispersed. Were you part of MLKSHK? And MLTSHP? That’s where my mind goes now when I think of community dispersion both averted and inevitable.

Website are people! Flickr is, to me, an almost mythical time and place and group of people making a website. So many internet people whose work I still follow, I first came across on Flickr. When I think of Flickr I think of Caterina, Stewart, Aaron, Heather, George, Ben, Cal, Kellan, Dunstan. I barely know these folks. Like maybe I’ve met two of them once in passing? And I don’t even know how much they overlapped with eachother. But at one point they all worked on this absolutely iconic website and somehow in there I started following their arcs beyond it, too.

I don’t have any thoughts on SmugMug. Seems, like Automattic, a better overlord than Yahoo! but yeah not like they will recreate that moment within the same lineage of what Flickr was.

I think about what Tumblr was in a really similar way, actually. Beyond the community, the group building it was this assembly of really specific people at a really particular moment in time, too. They’ve all moved on by now too, and I think I still follow most of them. :exploding_head:

It’s almost midnight so I’m gonna go to bed but I have A FEW malformed thoughts on Arena and Urbit. So maybe we can pick up on that soon. I’d love to chat more about it with you.

I know what you mean about Space Collective. I still don’t really understand what that is/was. Somehow it was related to the Cargo people? Yeah, those tools are all super cool — very “L.A.” :joy: (From there, I’ve continued in particular to follow Jon-Kyle’s work with interest.)

Thanks for all your thoughts this eve! And for jumping in here, this-way-and-that.

Like, have a bot scrape some old tweets, bookmarks, blog posts, wiki entries, etc. or even all of the above, and then engage you with them by asking for what you think now, wondering what it makes come to mind, or even just offering to resurface it.

Never did get into those.

Me too, but a few of those I don’t know. Caterina and I still engage from time to time on Twitter – I think that might have begun mostly regarding children and education, and now it’s whenever each of us notice something from the other in our timelines. Never met her though.

Part of that diaspora is on Are.na in a serious way now, right? I never (to my knowledge, at least) followed the Tumblr tool-builders.

Yup, the Cargo people were behind that.

Ha, that’s SUCH a good idea! I hadn’t thought of it.

Looks like it’s very possible:

Except that I went with the cheapest easiest setup, so I actually can’t install custom plugins here. I bet I could hack something together with IFTTT or Zapier, though? I will work on it :slight_smile:

I used to have my browser start page open to a random bookmark from my gigantic archive, which was kind of a similar exercise.

They were really fun. It was basically image bookmarking, but where Pinterest feels really about personal style, and Arena feels to me like performing intellect and taste, Mlkshk was like standup comedy.

The community-led migration effort to clone and restart the site, after the owner could no longer keep up with it, was incredible:

Why not just join imgur/Tumblr/Reddit/etc.?

There are a few reasons - for one, we are trying to save and maintain the close-knit community of users that has grown around MLKSHK, and the concern is that this community energy would dissipate and dissolve if we tried to merge with a larger site.

Other reasons are technical - in that we would lose some of the functionality we’ve grown used to, or that another site would have problems with us trying to import terabytes of existing images and associated metadata.

Lastly, it’s good to remember that Andre could have sold his existing code to someone else (and probably have it end up just another advertising/content distribution platform). But -instead - he gave that code to the volunteers in this community to take over, and that is a big deal. We try to honor the spirit in which MLKSHK was created by keeping it going in a by-us-for-us manner.

Still going to punt on this while I work out my feelings about Arena :rofl:

@robertogreco I got the daily link bot working :slight_smile: see here: