Relative lack of themes - am I missing something?

Wasn’t quite sure where to put this, apologies if it belongs elsewhere.

First off, I hope this doesn’t just come off as complaining. That’s not my intention at all. I love and use Discourse and I have implemented multiple Discourse instances for myself, clients, and friends over the past 6 months. Overall satisfaction is high, especially with functionality and customization in that respect (theme components, plugins, etc.).

That said, in the process I have definitely noticed a relative lack of theme options in general, and especially compared to say Wordpress, or even many other forum systems. I have yet to find a 3rd party marketplace for themes, for example, which many other systems have. Here in Meta, many themes seem to be quite old, although fortunately they are often kept up to date as well. A majority of them also seem to be created by a very small number of people. As a counter-example here is the ~150 theme directory of myBB (not even one of the most popular Discourse competitors):
https://community.mybb.com/mods.php?action=browse&category=themes
NodeBB appears to have a similarly lower number of themes. :thinking:

Another thing is that even among the available themes there does not seem to be that much variation. I appreciate that most of them stick to a fairly “clean” design, and I definitely don’t personally want e.g. a traditional (SMF, vB, PHPbb, etc.) look, but I can’t help but wondering if there is just fundamental limitation in what can be done with the theming system. If so, maybe it’s not prioritized in the dev process, and I can understand that if there is not much demand or it’s a tough problem to solve, but it would be good to know at least.

So why these disparities? Discourse is pretty popular, isn’t it? Is theme adjustment just not something most Discourse admins care very much about? Or are they generally more capable of creating their own so there is not much market for it? And if so, is that a chicken and egg situation (i.e. lack of easy, available customizing resources turns off more novice potential admins looking for forum options)?

To be clear, I am not saying myBB or Wordpress are better, I certainly prefer Discourse. But I do want some things to improve here over time, so I’m raising this more as an open question and area of potential discussion. It also ties in with a topic I contributed to (and need to get back into and follow-up on!) discussing some things that the Circle platform might be doing “right” (for a certain class of users). I continue to see things like a “simplified” interface to be potentially beneficial for attracting new users, and I’m hopeful such things can at least be partially achieved using the theme system.

I am also absolutely willing to pay for themes to be developed where warranted, and I know there are at least a few people here in #marketplace that can do that. I’m really just wanting to know what the reasons might be for the seeming lack of existing theme options and variety, and whether there are resources for themes that I’m missing.

Thanks!

8 Likes

Hi there, thanks for raising this, it is something that I have been actively thinking about for a while now.

You are correct about the limited variation, but it’s not a limitation of the theming system. We have built a tonne of very different custom themes for hosted customers, there just doesn’t seem to be the same demand for them in the open source community.

It is something that we are aware of and have been discussing internally. Our design team are actively working on some different variations of themes and theme components for addition into the setup wizard. Keep your eyes out!

10 Likes

Awesome, thank you, that’s very encouraging! I am really curious to see if it is, as I speculated, a “chicken and egg” thing, i.e. once there are more themes, will you get more people coming in to use them…

Actually, that brings up a question you might also be able to answer: how do you measure “demand for themes in the open source community”? (or interest in general from non-clients) And when you say “the open source community”, do you mean anyone who doesn’t host with Discourse official? E.g. those on Communiteq are considered in part of that?

4 Likes

No concrete measurement, just anecdotal evidence based on requests like yours, and the nature of the themes that are being built by people that aren’t on our team.

Yes, that is what I meant. Anyone that isn’t a paying customer of ours.

5 Likes

Do you have any examples of these that you can share by the way? I would just love to be able to see more of what is possible.

2 Likes

Sure thing. These are not all ones that we did, but they demonstrate a few different possibilities.

https://forum.uipath.com/
https://forum.asana.com/
https://forums.babypips.com/
https://community.ring.com/
https://answers.netlify.com/
https://community.anker.com/
https://discuss.hashicorp.com/
https://discourse.aurelia.io/
Figma Support Forum - Figma Support Forum
https://github.community/
https://community.nulab.com/
Chatterbug Community - Discuss everything about Chatterbug!
https://community.greythr.com/
https://community.automationcloud.net/
https://forum.diffblue.com/
https://forums.woot.com/
https://swapd.co/
https://community.atlasobscura.com/
https://forum.bonsaimirai.com/
Wirex Community - The Latest Feedback & Discussion | Wirex
https://discuss.codecademy.com/
https://discuss.circleci.com/
https://www.wer-weiss-was.de/

9 Likes

Simply visit the customers page; that’s what it is for: https://www.discourse.org/customers

3 Likes

I appreciate the pointer. However quite a number of those are fairly “vanilla”, and there is nothing about a “customers” page that explicitly says to me “we built these very different custom themes for all these sites”, which is more specifically what I was looking for. In other words that page seems to be, understandably, more about who is using Discourse, and less about how unique their use or design is, or that the Discousre team specifically did theme work for them. Honestly I think that might be a nice additional category or filter for that page: customers you did custom design/theme work for.

Anyway, I can appreciate that the info is there for people to sift through and find what they might be looking for, and I am grateful to @HAWK for taking the time to call out some specific instances that more directly met my expressed interest.

5 Likes

OK! It sounds like you have very specific needs. You might consider paying someone to help you meet those needs to expedite your experience.

4 Likes

Totally agree. We are in the process of updating that to show some more diverse design options.

5 Likes

Have you seen the > 150 entries in Search results for '#theme' - Discourse Meta? Many of those offer significant changes in functionality. There are only ~40 items in Search results for '#theme-full' - Discourse Meta, and some of those do make some rather significant changes to how things look.

One answer for where there aren’t 100s of themes is that there isn’t a marketplace for themes, I think because many developers are big open source people. In some sense, this is a blessing since it doesn’t give zillions of people the desire to create trivial themes on the off chance that someone will pay them for them.

Mostly, if there’s something that you know you want, you can ask in #marketplace.

2 Likes

I’m not sure if this actually has any effect on the number of themes or the willingness of other people to make them, but just from my own experience, the structure of Discourse’s HTML markup and CSS classes isn’t very well architected for easy or efficient theming.

If you want to make CSS-only theme changes, for the most part they’ll be tightly coupled to the forum’s markup and classes (that the theme doesn’t own unless you touch the HTML, too), and simple tweaks often take more work than they should, e.g. because there’s no single selector for them. (For example, the line separating posts in a topic isn’t actually a single border, it’s split between the avatar component and the post body. You can’t simply tweak it as you have to take into account various other elements that interact with it in non-obvious ways.)

For me personally this means that I’m only willing to make very minimal changes that don’t try to change too much, as I’d be worried that future forum updates would break my changes and it’d be hard to track down how to fix them.

8 Likes

Yeah the border above posts is a good example… I believe the way the markup is structured is 5+ years old and might even be a remnant of a different default layout.

The border change doesn’t seem like something that would need a huge refactor, but we’d have to touch a fair amount of CSS and HTML to get there because the parent container of topic-avatar and topic-body isn’t the correct width for the border… and if we change the parent container width or introduce another container, that requires more changes, and those changes may require their own changes… and suddenly you’re refactoring the entire post container. Then once we make those changes we have to support our customers through the change and update the themes we’ve built… so it can be quite an arduous process.

While I’d like to be able to do something like this and be done with it:

.topic-post {
  border-top: 1px solid red;
}

…it would eat up a lot of time and break existing themes to get there. And comparatively, one extra selector isn’t nearly as difficult as refactoring the markup:

.topic-avatar,
.topic-body {
  border-top: 1px solid red;
}

Though of course, you start multiplying the number of times you have to do something like that and it can be frustrating. I work on Discourse themes every day, so I understand that!

All that said… we definitely want to update the topic list and topic page markup in the near future. We dropped IE11 support last year, so we can structure things in a simpler way that allows us to better utilize modern CSS layout features like Flexbox and Grid. This will also make it easier to make more dramatic layout changes.

We’ve also started using CSS custom properties more since dropping IE11, and that’s something that can streamline styling too along with bigger underlying changes. Instead of having two separate elements to style we can do something like:

.topic-post {
  --border-color: red;
  .topic-avatar,
  .topic-body {
    border: 1px solid var(--border-color);
  }
}

and then a theme could do:

.topic-post {
 --border-color: green;
}

tl;dr: we hear you! and we’re thinking about how we can reduce these barriers too!

18 Likes

Really like

and

Great for inspiration for me, when I upgrade my forum in the summer

5 Likes

One additional note… there are often contractual limitations with enterprise customers that literally prevent us from discussing those customers and those customizations, from a legal perspective. It’s unfortunate, but what can you do? We have to stay in business and pay the salaries of the folks who work here. That’s something I feel quite strongly about; it’s my obligation to keep things running at Discourse so our team can put food on the table and raise their families with a reliable source of income. :woman_shrugging:

The good news is that these extensive customizations do slowly trickle down into the open source codebase over time. But it does take time.

8 Likes

Since I am working on multiple Discourse projects, mostly for others, the needs are quite varied, as are the budgets. But I am absolutely keeping custom dev in mind and would gladly use it where resources allow.

Excellent! I’m glad to hear you see the need for that as well.

Indeed I have! Theme Components are one of my very favorite things about Discourse and I make extensive use of them. But the core aesthetic and “ease of use”/“cleanliness” of the system stays fairly similar despite most of them.

Excellent, thank you for this perspective. I’m not very skilled with CSS, certainly not enough to feel confident saying that the architecture of Discourse (or any tool) could be better rather than it being just my lack of understanding that limits things. It’s good to know there is room for improvement here.

This is really good to hear. I can appreciate the difficulty involved in overhauling things, and how much one proposed, seemingly small change, can necessarily lead to many others. I’m glad that, despite the challenge, there is internal momentum to improve things over time. And an aside, thank you for all the theme and theme component work you do! I make frequent use of your creations. :slight_smile:

Thank you for the examples. The BabyPips one is particularly impressive and interesting!

Indeed! When I asked if there were any examples you “can” share, I was implying an understanding of this fact, but I realize it may not be clear or explicit.

I am absolutely supportive of Discourse as a company making money, and understand all the stuff that comes along with that, including NDAs, possible exclusivity agreements for certain custom features, and more. The fact that the customizations do trickle down to the open source code is testament to you doing it right, and I appreciate that.


Thanks everyone for the input! I now feel both more clear in understanding why things may be the way they are at present, and more hopeful that things will improve for those closer to my level of skill, use case, and budget in the future. Eventually I would love to see a thriving 3rd party theme ecosystem/community/market, and would gladly pay e.g. $50 for a nice, customized theme, as I and many others do frequently in the Wordpress (and other CMS/forum system) world.

I recognize there are potential problems with this approach, and many “garbage” themes as well. But after 15+ years of customizing off-the-shelf CMSs, themes, and plugins, and comparing them to the quotes I have gotten for full custom development of similar designs and features, I am confident that there is a valuable place for this type of ecosystem. I see it as sitting beneath the full custom commercial options that Discourse offers (where cost is a barrier), and “above”/alongside the full DIY open source approach (where skill and time are barriers). In my experience of other systems that work similarly, this “middle way” has enabled good results in a reasonable time for those who have more limited budgets/abilities/time lines (this is basically every small business, sole proprietor, etc. that I have ever worked with).

11 Likes

I appreciate the thoughtful way you brought it up! I’ll see if I can send you a little something in thanks, PM incoming :wink:

6 Likes

For the most part, if it’s something that I’d charge $50 for, I just do it for free. :slight_smile:

3 Likes

Indeed, I think many people do, and that’s a positive thing. But the idea, of course, is on a marketplace you might get 10 or 50 or 100 people paying that $50 and then it becomes more meaningful. It seems to work in the context of other platforms at any rate. Not that I’d rather pay than have free, but I also don’t expect more in-depth, challenging work to be done without compensation.

don’t necessarily know the best way to handle it all. Mainly I just know the overarching outcome I hope to see: wider availability of more deeply customized themes, components, etc. to enable more use of Discourse in more contexts (where its use is appropriate).

5 Likes

A Discourse problem solving marketplace is something that I’ve considered, but I’ve got another project that I’m trying to get launched first. :slight_smile:

3 Likes