# Collections

**URL:** https://meta.discourse.org/t/collections/372817
**Category:** Plugin
**Tags:** sidebar
**Created:** [July 3, 2025, 6:21pm UTC](https://meta.discourse.org/t/collections/372817 "2025-07-03T18:21:46Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Alteras](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alteras/32/179824_2.png) [@Alteras](https://meta.discourse.org/u/Alteras)
#### Post date: [July 3, 2025, 6:21pm UTC](https://meta.discourse.org/t/collections/372817/1 "2025-07-03T18:21:46Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **Summary** | User created collections of linked Topics |
| 🛠 | **Repository Link** | [https://github.com/Alteras1/discourse-collections](https://github.com/Alteras1/discourse-collections) |
| 📖 | **Install Guide** | [How to install plugins in Discourse](https://meta.discourse.org/t/install-plugins-in-discourse/19157) |

### Preview

> **Mobile**
>

### Collections

This allows users to create collections of Topics that are visible when viewing said Topics. Collections may include any URL and will be visible on any linked Topic. Collections can be organized into sections, and any changes to a collection is reflected on all linked topics. There is no restriction on the Topic being linked, so users can create a collection across categories/tags.

##### Title & Description

Optional field available for input. If provided, these will be displayed at the top of the list.

##### Sections

Optional organizational feature. By adding a section header, the collection can be divided into sections, allowing collapsible sections to be displayed.

### Subcollections

Users can also create a subcollection, which is only displayed for a single topic, allowing users to link relevant URLs (i.e. specific posts/external resources) only for the single topic. Any topic URLs added will not be linked.

### Permissions

The plugin allows any user to create a collection for their own Topics. By default, users can only link to their own Topics, and must add other users as maintainers, who can add their own Topics to the collection. This setting can be disabled, allowing only specific groups full control over any collection (by default Staff & TL4).

> **Permissions Demo**
>

### Settings

| Name | Description |
| --- | --- |
| collections enabled | Enable/disable the plugin. Default: `true` |
| collection by topic owner | Allow topic OP to create collections. Default: `true` |
| collection by topic owner allow groups | Restrict topic OP who can create collections. Limits `collection by topic owner`. Default: `TL1` |
| subcollection by topic owner allow groups | Restrict topic OP who can create subcollections. Limits `collection by topic owner`. Default: `TL1` |
| collection modification by allowed groups | Groups allowed to create/modify **any** collection. Default: `Admin` `Moderators` `TL4`. |
| sections in subcollection | Allow section headers in subcollections. Default: `true` |

* * *

### Alternatives

This plugin is heavily inspired by (and was at one point based on) the [Discourse Doc Categories](https://meta.discourse.org/t/discourse-doc-categories/322376) plugin. While the Doc Categories plugin has a good indexing mechanism and the display is great, the design was meant for wiki style pages, where everything is collated in a single category. Similarly, the indexing relies on formatted text input in a separate Topic, which has its own pros & cons.

The [DiscoTOC - automatic table of contents](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143) theme component also allows for organizing links outside of the post body, but is limited to a single topic.

If your purpose is just a wiki style organization, [Discourse Doc Categories](https://meta.discourse.org/t/discourse-doc-categories/322376) would be a better fit. If you just need only some pages to have linked Topics, [DiscoTOC - automatic table of contents](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143) would be better.

### Notes

This was originally designed to support the forum I am apart of migrate over to Discourse. As a writing focused forum, separate topics are maintained by users for different purposes, resulting in a situation where links between topics across categories is practically required. To help facilitate this, I’ve created this plugin to support users self-organize.

There is an alternate timeline where this is just a theme component, where indexing would occur with user inputted divs with URLs to other post. But after developing 90% of the tools, wizards, and code to do it, I realized it just wasn’t worth it and that the user would likely skip over every tutorial written and still complain about why things weren’t working. So that path was ditched. It honestly isn’t a bad solution, as it would be far more lightweight than a plugin, but it would’ve put a lot of unnecessary burden on users to make sure they had the correct formatting on not just one post, but on multiple.

I have currently marked this as #experimental, as I’m still not 100% set on the UI features (ie icons) and the permissions system. Also, I need to add automated unit tests.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [July 3, 2025, 7:14pm UTC](https://meta.discourse.org/t/collections/372817/2 "2025-07-03T19:14:51Z")

</div>

FYI: all videos were broken 🤔 (iPad)

---

<div class="post-metadata">

### Author: ![Alteras](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alteras/32/179824_2.png) [@Alteras](https://meta.discourse.org/u/Alteras)
#### Post date: [July 3, 2025, 7:41pm UTC](https://meta.discourse.org/t/collections/372817/3 "2025-07-03T19:41:39Z")

</div>

Huh, I thought iOS Safari supported WebM…

I’ve swapped out the videos for MP4. Ty!

---

<div class="post-metadata">

### Author: ![satonotdead](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/satonotdead/32/447830_2.png) [@satonotdead](https://meta.discourse.org/u/satonotdead)
#### Post date: [July 9, 2025, 6:59pm UTC](https://meta.discourse.org/t/collections/372817/4 "2025-07-09T18:59:45Z")

</div>

It’s possible to enable 'public‘ collections like on Discourse Docs?

---

<div class="post-metadata">

### Author: ![Alteras](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alteras/32/179824_2.png) [@Alteras](https://meta.discourse.org/u/Alteras)
#### Post date: [July 9, 2025, 8:23pm UTC](https://meta.discourse.org/t/collections/372817/5 "2025-07-09T20:23:52Z")

</div>

Sorry if it wasn’t clear, all collections are “public.” All users will see the same collection on the same topic. This plugin is meant to organize topics, not be a kind of private “folder of bookmarks” for users.

 ![Discourse Topic with Collection as viewed from an anonymous user](https://global.discourse-cdn.com/meta/original/4X/5/7/0/5705714b3876dbdcdefb89036a20c5fcb445e02e.jpeg)

---

<div class="post-metadata">

### Author: ![Alteras](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alteras/32/179824_2.png) [@Alteras](https://meta.discourse.org/u/Alteras)
#### Post date: [October 7, 2025, 12:04am UTC](https://meta.discourse.org/t/collections/372817/6 "2025-10-07T00:04:02Z")

</div>

Updated the plugin with support for Emojis and Color Squares in sidebar!

[https://github.com/Alteras1/discourse-collections/pull/17](https://github.com/Alteras1/discourse-collections/pull/17)

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [October 7, 2025, 2:02am UTC](https://meta.discourse.org/t/collections/372817/7 "2025-10-07T02:02:17Z")

</div>

This looks really quite amazing. And absolutely brilliant documentation - this has my vote for the best documented #Customization > Plugin in [meta.discourse.org](http://meta.discourse.org)!!

Have you considered extending this so that it also covers topic lists too?

I often find that it would be very helpful having per-category or per-tag collection of links. An example is a private category dedicated to specific group, which also uses some other tools (such as a few folders in Google Docs, a local government portal, an associated chat channel, and a group inbox). It would be ideal to have category moderators control over it.

---

<div class="post-metadata">

### Author: ![Alteras](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alteras/32/179824_2.png) [@Alteras](https://meta.discourse.org/u/Alteras)
#### Post date: [October 7, 2025, 3:21am UTC](https://meta.discourse.org/t/collections/372817/8 "2025-10-07T03:21:15Z")

</div>

Thank you very much!

It’s definitely something I’ve considered before, but I don’t think it would fit well with the current design of being a user driven way to organize topics. Not ideal for category/tag level, as it would have to be limited to moderator control. The original use case was to cover linking related topics too big for 1-2 topics, but too small for a tag/category.

Making topic lists display the indexing in the sidebar for categories can be done via [Discourse Doc Categories](https://meta.discourse.org/t/discourse-doc-categories/322376?silent=true) plugin, albeit with a different configuration method. Definitely a hassle having to have two plugins do two very similar things, but I think the original philosophy for each is different enough to warrant the separate approaches.

Adding a compat extension for the [Private Topics Plugin](https://meta.discourse.org/t/private-topics-plugin/268646?silent=true) is a very cool idea from a user standpoint. I’ll have to consider that…

That just leaves the per-tag level. Making a PR for Discourse Doc Categories (or making a new plugin/TC) for tags is an option tho, but not actively on my mind. Perhaps in the future.

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [October 7, 2025, 4:55am UTC](https://meta.discourse.org/t/collections/372817/9 "2025-10-07T04:55:45Z")

</div>

> [@Alteras](#):
>
> Making topic lists display the indexing in the sidebar for categories can be done via [Discourse Doc Categories](https://meta.discourse.org/t/discourse-doc-categories/322376?silent=true) plugin,

Actually, this would probably work nicely for my use-case. I’m not sure if it is adaptable enough for it though (will play around with it later this week).

> [@Alteras](#):
>
> Adding a compat extension for the [Private Topics Plugin](https://meta.discourse.org/t/private-topics-plugin/268646?silent=true) is a very cool idea from a user standpoint. I’ll have to consider that…

Sounds very interesting. What use case do you have in mind?

---

<div class="post-metadata">

### Author: ![Alteras](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alteras/32/179824_2.png) [@Alteras](https://meta.discourse.org/u/Alteras)
#### Post date: [October 7, 2025, 6:55am UTC](https://meta.discourse.org/t/collections/372817/10 "2025-10-07T06:55:41Z")

</div>

> [@nathank](#):
>
> What use case do you have in mind?

To regular users, the category with Private Topics enabled would only display their own topics. So I could see this being one of the few places where letting the Collections plugin hoist a collection from the topics level to the category level per user makes sense.

The forum I’m part of actually has a private category for users to use as a personal drafting/testing ground. And they make _alot_ of topics, so user driven topic organization sometimes happen here.

---

<div class="post-metadata">

### Author: ![Hyteller](https://avatars.discourse-cdn.com/v4/letter/h/b77776/32.png) [@Hyteller](https://meta.discourse.org/u/Hyteller)
#### Post date: [December 25, 2025, 3:58am UTC](https://meta.discourse.org/t/collections/372817/11 "2025-12-25T03:58:38Z")

</div>

I was really hoping it’s a system of collection where users can create categories and put there topics of their choice, like a gallery. Oh well.

---

<div class="post-metadata">

### Author: ![denvergeeks](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/denvergeeks/32/327671_2.png) [@denvergeeks](https://meta.discourse.org/u/denvergeeks)
#### Post date: [December 26, 2025, 7:04am UTC](https://meta.discourse.org/t/collections/372817/12 "2025-12-26T07:04:56Z")

</div>

How is this not that?

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [December 26, 2025, 9:52am UTC](https://meta.discourse.org/t/collections/372817/13 "2025-12-26T09:52:09Z")

</div>

You can’t create categories is my guess.

---

<div class="post-metadata">

### Author: ![denvergeeks](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/denvergeeks/32/327671_2.png) [@denvergeeks](https://meta.discourse.org/u/denvergeeks)
#### Post date: [January 9, 2026, 7:10pm UTC](https://meta.discourse.org/t/collections/372817/14 "2026-01-09T19:10:41Z")

</div>

I really appreciate this Plugin’s drag-and-drop UI for creating arbitrary sequences of Topics like chapters of a book, which can be easily re-arranged.

I’ve initiated a Theme Component to add sequential navigation for Collections such as \< Previous and Next \> and Paging in a Modal …

Here is my working repository

[https://github.com/denvergeeks/discourse-collections-navigator](https://github.com/denvergeeks/discourse-collections-navigator)

---

<div class="post-metadata">

### Author: ![jordanjay29](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordanjay29/32/529474_2.png) [@jordanjay29](https://meta.discourse.org/u/jordanjay29)
#### Post date: [January 9, 2026, 10:37pm UTC](https://meta.discourse.org/t/collections/372817/15 "2026-01-09T22:37:09Z")

</div>

Much needed, looking into this today and this was the last component it seemed to need.

@Alteras I’m having a bug with the modal close X on the Create Collections modal. It can be hovered and clicked but does not close the modal until a page refresh.

---

<div class="post-metadata">

### Author: ![Alteras](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alteras/32/179824_2.png) [@Alteras](https://meta.discourse.org/u/Alteras)
#### Post date: [January 10, 2026, 1:23am UTC](https://meta.discourse.org/t/collections/372817/16 "2026-01-10T01:23:03Z")

</div>

> [@denvergeeks](#):
>
> Theme Component to add sequential navigation for Collections

Oooo, this is a nice concept. I love the modal for quick viewing the different linked topic posts. Also helps inform users that there is a collection for those who don’t have/keep the sidebar open 24/7.

I’m curious about the decision to swap the contents of the post instead of just redirecting to the user to the topic.

I really like the idea of using \< Prev and Next \> above the timeline to navigate across topics without needing the sidebar. Maybe it could be with the timeline like the toc, so that it can be easily accessed on long 1st post topics without having to scroll back up… Or maybe just decorate the top/bottom post itself…

If you’re okay with it, I’d like to explore adding some of those ideas directly into the plugin, maybe with extra site settings for admins. Of course I have no objection to having a TC built off of the plugin, more customization to the users. Let me know if you need any help with your TC. You should be able to pull the currently displayed collection information from the ember service `service:collection-sidebar` without having to parse the DOM.

> [@jordanjay29](#):
>
> bug with the modal close X on the Create Collections modal

Hmm… that’s truly odd. I can’t seem to replicate it. I recently made some changes updating the plugin to address some deprecation issues, so that might have affected it? Please check if the plugin is updated. Please also share the details of your setup (browser, mobile/desktop, discourse version).

---

<div class="post-metadata">

### Author: ![jordanjay29](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordanjay29/32/529474_2.png) [@jordanjay29](https://meta.discourse.org/u/jordanjay29)
#### Post date: [January 10, 2026, 1:55am UTC](https://meta.discourse.org/t/collections/372817/17 "2026-01-10T01:55:01Z")

</div>

> [@Alteras](#):
>
> I recently made some changes updating the plugin to address some deprecation issues, so that might have affected it?

I’m outdated, ~~maybe~~ that’s why. I was still on the Nov 6 commit.  
ETA: Disregard, updating solved.

---

<div class="post-metadata">

### Author: ![denvergeeks](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/denvergeeks/32/327671_2.png) [@denvergeeks](https://meta.discourse.org/u/denvergeeks)
#### Post date: [January 10, 2026, 2:22am UTC](https://meta.discourse.org/t/collections/372817/18 "2026-01-10T02:22:01Z")

</div>

> [@Alteras](#):
>
> I’m curious about the decision to swap the contents of the post instead of just redirecting to the user to the topic.

I like the quickness. Not a reasoned design. My initial vision is that the modal pops up a content-focused slideshow.

> [@Alteras](#):
>
> I really like the idea of using \< Prev and Next \> above the timeline to navigate across topics

Since arbitrary ordering of items is the opportunity here, where sequencing is decidedly not tethered to any timeline, my initial aim is to reuse the nested horizontally scrolling menu behaviors from core as we have in the display of User Profiles, e.g. where, beneath the (stationary) Collection Title and Description (if/when present), are two horizontally scrollable/swipeable rows – Section Headers and their associated Topic Titles below those.

 ![multilevel-horizontal-swiping](https://global.discourse-cdn.com/meta/original/4X/a/a/5/aa58ba62480e88d9d544a1107b7dfb47b1b5828d.png)

Also within the modal is a collapsible (quick slide in/out from left) vertical display replicating the behavior of the left sidebar outside of the modal. I like the idea that what rises up off the page in the modal looks and feels mostly the same as what is seen and experienced (in the centered, non-modal view), including navigation elements, but just surrounding the cooked content.

I’m working also toward re-purposing your provided Subcollections to also display in a modal – iframes in a slider – which can display sequences of external links, and can also re-use internal content (since currently a Topic can only be used in one Collection.)

> [@Alteras](#):
>
> If you’re okay with it, I’d like to explore adding some of those ideas directly into the plugin, maybe with extra site settings for admins.

## Please, Go For It !

I can also see adapting this TC, or otherwise providing these types of navs and displays for Doc Categories 📃

---

<div class="post-metadata">

### Author: ![jordanjay29](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordanjay29/32/529474_2.png) [@jordanjay29](https://meta.discourse.org/u/jordanjay29)
#### Post date: [January 10, 2026, 2:45am UTC](https://meta.discourse.org/t/collections/372817/19 "2026-01-10T02:45:11Z")

</div>

Now that I have it working (thanks for the head’s up on the update above), a couple things that I found:

1. Collections button is visible even when the user is not part of the allowed groups. Results in an Internal Server Error (displayed gracefully in a red bar on the modal) when attempting to create a collection.
2. On the collections sidebar, the button at the bottom offers the original Create Collection option. Have to use the button on the original post in order to manage it, it would be very useful to have a Manage option immediately from the button on the collection sidebar.
3. Would it be possible to separate Collection and Subcollection permissions? Subcollections could be immensely useful for individuals who would like to collate topics on their own, without the widespread impact a Collection has on all linked topics.

Lastly, how does this plugin handle two collections linking the same topic? Two subcollections? This makes me lean more into suggestion #3 for easier management of overlapping goals for users who like the collections feature.

EDIT: I realized #1 is an error related to Collection modification by allowed groups that allows non-owned topics. Still, a better error message could be useful!

---

<div class="post-metadata">

### Author: ![Alteras](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alteras/32/179824_2.png) [@Alteras](https://meta.discourse.org/u/Alteras)
#### Post date: [January 10, 2026, 5:23am UTC](https://meta.discourse.org/t/collections/372817/20 "2026-01-10T05:23:55Z")

</div>

> [@jordanjay29](#):
>
> - Collections button is visible even when the user is not part of the allowed groups. Results in an Internal Server Error (displayed gracefully in a red bar on the modal) when attempting to create a collection.
> - On the collections sidebar, the button at the bottom offers the original Create Collection option. Have to use the button on the original post in order to manage it, it would be very useful to have a Manage option immediately from the button on the collection sidebar.

> [@jordanjay29](#):
>
> Collection modification by allowed groups that allows non-owned topics.

So the setting `collection modification by allowed groups` is meant for staff and users who are highly privileged, i.e. helpers maintaining wikis. Though it seems like I’ll need to fix the errors.

> [@jordanjay29](#):
>
> Would it be possible to separate Collection and Subcollection permissions? Subcollections could be immensely useful for individuals who would like to collate topics on their own, without the widespread impact a Collection has on all linked topics.

As long as `collection modification by allowed groups` is set properly high enough, collection and subcollections should only be created/modified by the topic owner (and staff). Topic owners should be able add ordinary users as maintainers to collections or subcollections, who can then add their own topics. I’m not quite sure of what your settings are to warrant separating them.

> [@jordanjay29](#):
>
> Lastly, how does this plugin handle two collections linking the same topic? Two subcollections?

Two collections cannot link to the same topic. An error should be displayed when attempt to link a topic already in a collection. Similarly, only one subcollection is allowed per topic. This is because the collection are all public and should only be made by topic owners.

* * *

Hmmm… I get the feeling that it might be better to make a separate plugin that’s just folders of bookmarks that can be viewed publicly or privately… “Personal Collections?” “Bookmark Library?” “Topic Playlists?” Or maybe I just extend this one. But the underlying code and philosophy would be quite different between the two features… It’s a bit unfortunate the name “Collections” is quite broad and can be interpreted in quite a number of ways.

[Next page](https://meta.discourse.org/t/collections/372817.md?page=2)
