What categories should we have? or should we not have?

When I read the “Things which are okay to post” section in the Welcome to Elm Discourse! post, I half-expected these to be in their own categories - an assumption based on my past experience with other Discourse forums.

  • announcements of things people are working on
  • beginners requesting help, though they should be directed to the Slack channel or reddit for further questions.
  • openly exploring ideas for API design, language features, without expecting others to take action as a result
  • discussing pain points using specific code examples and a goal of identifying the right way to proceed right now

Note that Discourse also supports tagging. Users can “watch” and mute both tags and categories.

My general understanding of good practices around categories is:

  • Fewer is generally better, or at least, don’t over-categorize
  • Build them around different audiences; a category tend to be its own mini community

So I can see different categories for beginners, language design, and language usage being a thing.

Dropping some links to discussion on meta.discourse.org:


I yield the ultimate decision to the site moderators : )


I think we out to have at least some of the categories you mention. But I don’t think we should have a beginners category, as it could increase the activation energy for getting help.

1 Like

Can we have an “accouncing” tag? Once we have one I’ll post a package here that I recently published on slack and ask for feedback.

1 Like

I have been thinking about this idea of “intentional communities” for my next talk. One idea from that is “intentional posting” which works like this:

  1. You enter the goal of your post (e.g. Learn, Help, Seek Clarification, Self-Expression, etc.) This unlocks the ability to write a body.
  2. Fill in the body with content restrictions based on your goal. If you said the goal is “Learn” you must have a question mark. If you said self-expression, you can have profanity (but only in that category).

Point is, I think the categories should be highly goal oriented. If people just want to chit-chat, they should start a meetup in real life or go to slack. So lets start with these:

  • Learn
  • Coordinate
  • Inform

We can add or remove, but I think they should all be active verbs. People should be doing something online or they should be in real life. Another word that came to mind was “Fret” but I don’t want to encourage that.

What are some other active verbs that might help guide people towards goal-oriented discussions?

1 Like

This is a really interesting way to think about it. Now’s the time to experiment, so I’ll get these set up.

How about:

  • :new: Learn, Coordinate
  • :loop: News -> Inform
  • :loop: Site Feedback -> Report a problem / ask a question? I kinda want to call it “Meta” but that’s not an intent.

I’d say coordinate covers the feedback stuff. Your specific intent is to coordinate with other folks in the community about certain changes. You have specific work you are willing to do and you are soliciting feedback on that work.

Maybe this points to a better name for Coordinate. Perhaps Request Feedback? Or Coordinate / Request Feedback? Basically, I want people to say “I have this idea. What do you think of it?” and I think a meta tag instead promotes “I think this is bad.”

I think I kinda see where you’re going with this, but I’m not super clear yet. Could you clarify something?

I feel like “I want to inform someone about Elm” is different than “I want to inform someone about this forum.” So Murphy’s package announcement has a different character than the wiki post I made about formatting code here. They’re both for informing, but I wouldn’t expect to see them together. Do you think those should be categorized differently?

Another shade of this is “get help”. But that again depends on “help with Elm or help with this software”?

Also, would you say it’s fair to say that this categorization system is more about the people’s needs than the forum software’s needs?

I don’t think “I want to inform someone about this forum.” is a very productive goal. I think unsolicited informing-people-of-your-opinions does not work well, especially online. I’d always try to turn that into a question where there’s a chance I’ll learn something new. So instead of:

Currying is a bad idea. No one does it. It is hurting your growth.

It could ideally become:

I noticed that Elm does not use C-style function calls. What are the tradeoffs of that choice?

So this would be Learn by default or Request Feedback if they have a concrete idea they want to test with folks.

I was thinking of Help in the context of my idea where responses would be categorized as well. A Help would be a valid reply to a Learn post. I think I was going for announce with the Inform category: “Check out this thing I made!” I guess folks may take it as “Please allow me to inform you about … how stupid you are!” So maybe Announce is a better name for this category. I think Share captures the idea of “I’m so excited to tell you about what I made!” but it may be a bit to vague and encourage “I’d like to share … how stupid you are!”

I think Learn covers “get help”. If I have some code I am confused about, I want to learn something such that I’m not confused anymore.

So yeah, I’m thinking of the categories as “What is the goal of OP?”

Does that clarify things more?

Yeah, thanks!

So is the thesis here…

if we create good categories intentionally, people will engage with each other in healthy ways

I dig it. API design for humans.

I’ll set up those categories in the morning.

1 Like

Yes, that is definitely the thesis! Certain kinds of interactions are aligned with the goals of the forum, and the forum itself can help you be oriented towards those goal as well.

Based on this elaboration, I propose these categories:

  • Learn
  • Request Feedback
  • Show and Tell

The Show and Tell category takes the place of Announce because I don’t personally feel comfortable announcing things like its all official and final. I’d personally be way more inclined to do a Show and Tell of a package I am working on than an Announce of that package. I’d love to have 0.19 categorized as Show and Tell actually :slight_smile:


Got excited about this so I’m doing it now.

Descriptions could probably be better. Evan, you have the ability to edit these. If you decide to do so and edit them substantially, would you mind just changing authorship to your username?

I also removed the ability to post in “Uncategorized”, which is apparently a topic in it’s own right but gets special treatment.

Edit: forgot to add, I also gave these three of the primary logo colors. We have the dark blue left. It’s easier to see on Categories - Elm

1 Like

This is very exciting! Thanks for setting those up! (And setting everything up!)

I edited some to show examples. They are not perfect, but I wanted to model expected behavior more explicitly.

You bet, and thanks for clarifying the category topics. There’s a nice second benefit to these categories as set up: you can think of them as a spectrum or a cycle.

So let’s pretend elm-benchmark doesn’t exist. I start off in Learn: “how are people doing performance testing?”. Cool, I learn some stuff, like harnesses around benchmark.js.

Then, I’m like “we should have a benchmarking library… but I’m not sure what it should look like.” Those ideas go in Request Feedback, and the community collaborates.

Then, finally, I write something (handwaving over the native code in the actual package for the moment.) Once it’s done, I show back up in Show and Tell with the announcement.

Afterwards, I need to add more features. Back to Learn, then Request Feedback, and maybe Show and Tell when/if they get added.

My conclusion: if people use these categories in this way, it sets up virtuous cycles where nice things get made collaboratively. Does this seem like a reasonable way to moderate this forum?


Love what’s been suggested so far :slight_smile: One random thought is that to me Show and Tell is a one-way and directive sounding term and Show and Share feels more inviting and inclusive - would this make a better category name?

1 Like

I think Request Feedback fits that better.

It can be very frustrating when you share something with folks and all the reactions are “That’s cool, but when are you going to add X?” Rather focusing on the thing that exists and taking a moment to appreciate a bunch of work, people who have not thought about the project deeply are just telling you about all the work you didn’t release yet, as if you asked them for advice or as if you don’t know already. So I personally think it’s good to make a distinction between “Here is a thing” and “Can you give me advice on X?”

I have a personal theory that “unsolicited advice” is not such a valuable category of interaction. I think it can work coming from someone you really trust in real life, but I haven’t seen it work well online in general, possibly because the signal-to-noise ratio can be so bad that sifting through is not the fastest path to the insights.


It seems like we’ve acted on the current decision of Learn / Request Feedback / Show and Tell… I think the welcome post (link) ought to be updated to describe the categories and their purposes.

In particular, I think Learn is the least clear to understand what its purpose is just from reading its name.

Knowing that folks tend to not read anything, I think the existing welcome post is way too long. Here’s a draft of a next version:

Welcome to the Elm discourse!

The goal of this forum is to encourage friendships, mentorships, and collaborations in the Elm community. Beginner questions are welcome. We love to help out!

There are three categories of posts on here:

We hope this will guide folks towards goal-oriented discussions, where we take into account what the poster want to get out of the conversation, not just what we want to say. So before posting, ask yourself:

  • Is my post as concise as possible?
  • Is it helpful?
  • Is it respectful of other people’s feelings and time?
  • Does it link to evidence to support claims about other projects or languages?

High-quality contributions often get edited down quite a bit!

For more resources check out:


You know how we have little sheets here that pop up, “welcome to Discourse” or “similar topics to your title…”? I’m curious if we could add those guidelines as sheets that would automatically pop up. If so, what would the criteria be?

Also, a meta note: this thread is getting a little long and away from @ento’s original question. We should consider forking it.

I moved this to the Learn category, as my intention was that of inquiry and I didn’t have the means to execute on the feedbacks I received.

Sorry about that! I needed to recategorize all the existing posts when setting up the new categories, so I guessed a bunch. Guess I got this one wrong! :slight_smile: