# Should Features be Core or Plugin

**URL:** https://meta.discourse.org/t/should-features-be-core-or-plugin/15567
**Category:** Feature
**Created:** [May 12, 2014, 4:39pm UTC](https://meta.discourse.org/t/should-features-be-core-or-plugin/15567 "2014-05-12T16:39:34Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Mittineague](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mittineague/32/114259_2.png) [@Mittineague](https://meta.discourse.org/u/Mittineague)
#### Post date: [May 12, 2014, 4:39pm UTC](https://meta.discourse.org/t/should-features-be-core-or-plugin/15567/1 "2014-05-12T16:39:34Z")

</div>

Continuing the discussion from [Repetitive gutter links?](https://meta.discourse.org/t/repetitive-gutter-links/13495/29):

> [@katie](#):
>
> I am usually looking at perfecting something that would work better rather than think about plugins to enhance the current function. Because like this, we will say “you need to create a plugin for every improved feature” and it becomes a pattern in the language of development.
> 
> I’ve seen this being said on many forums like Vbulletin, IPB and so on, although now days VB is taking a better approach at listing rather than say “you can create an addon to do this or that”

I can see both sides and I think a balanced approach is best.

First, “You can’t please all of the people all of the time” is very true.

Some apps go for a bare-bones Core to keep it light weight. Users need to use plugins for just about everything.

Some apps succumb to feature bloat in an effort to do everything. The app is heavy, and for most users many features aren’t ever used. The features also present users with a lot of configurations done either by editing files or a complex ACP

IMHO either of these extremes is not the optimal solution.

Perhaps the best way is to have anything not “essential” be a plugin, and when a certain number of users find that plugin useful then consider incorporating it into the Core?

---

<div class="post-metadata">

### Author: ![mcwumbly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcwumbly/32/103861_2.png) [@mcwumbly](https://meta.discourse.org/u/mcwumbly)
#### Post date: [May 12, 2014, 4:46pm UTC](https://meta.discourse.org/t/should-features-be-core-or-plugin/15567/2 "2014-05-12T16:46:20Z")

</div>

> [@Mittineague](#):
>
> Perhaps the best way is to have anything not “essential” be a plugin, and when a certain number of users find that plugin useful then consider incorporating it into the Core?

There’s a 3rd approach in the mix too: Features that are implemented as plugins, but ship by default with the [standard install](https://meta.discourse.org/t/142537?silent=true) (eg, the emoji plugin and the docker plugin)

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [May 12, 2014, 8:31pm UTC](https://meta.discourse.org/t/should-features-be-core-or-plugin/15567/3 "2014-05-12T20:31:50Z")

</div>

It depends who is asking for them and how often. If it is a common request (or “everyone always installs the Foo plugin”) across many different, completely unrelated Discourse instances then it should be core.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [May 26, 2016, 10:25pm UTC](https://meta.discourse.org/t/should-features-be-core-or-plugin/15567/4 "2016-05-26T22:25:46Z")

</div>

For example: we made tagging core (essentially “promoting” it from plugin status) since it was used _so_ much and so deeply across so many Discourse instances. It was becoming difficult to even work on as a plugin due to how complex and rich (and highly integrated) the feature set became.

---

<div class="post-metadata">

### Author: ![sashailinsky](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sashailinsky/32/56795_2.png) [@sashailinsky](https://meta.discourse.org/u/sashailinsky)
#### Post date: [June 7, 2016, 12:02pm UTC](https://meta.discourse.org/t/should-features-be-core-or-plugin/15567/5 "2016-06-07T12:02:37Z")

</div>

- Categories,
- Flagging,
- Markdown composer,
- File uploading,
- Sharing, Likes, Invites,
- Bookmarks,
- Wiki,
- Footer of topics like «created, last reply»,
- Suggested topics,
- Pages: About, Guidelines, etc

In my opinion, they must be delivered as a plugins 🙂 But with one core design theme. They may be preinstalled, but I need a couple of big red buttons «Disable this and this, and this, and this».

---

<div class="post-metadata">

### Author: ![chapoi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chapoi/32/537252_2.png) [@chapoi](https://meta.discourse.org/u/chapoi)
#### Post date: [December 4, 2025, 11:14am UTC](https://meta.discourse.org/t/should-features-be-core-or-plugin/15567/6 "2025-12-04T11:14:23Z")

</div>


