# Is there a naming convention for theme component projects?

**URL:** https://meta.discourse.org/t/is-there-a-naming-convention-for-theme-component-projects/398572
**Category:** Development
**Created:** [March 16, 2026, 9:58pm UTC](https://meta.discourse.org/t/is-there-a-naming-convention-for-theme-component-projects/398572 "2026-03-16T21:58:42Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![das-g](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/das-g/32/441608_2.png) [@das-g](https://meta.discourse.org/u/das-g)
#### Post date: [March 16, 2026, 9:58pm UTC](https://meta.discourse.org/t/is-there-a-naming-convention-for-theme-component-projects/398572/1 "2026-03-16T21:58:42Z")

</div>

Is there a naming convention for theme component projects, so that they’re easily recognizable as such?

When seeing the folder on disk, or the repo on GitHub or the project on GitLab or another code forge, it’d be useful to be able to see at one glance that

- this is to be used _with Discourse_
- it’s a _theme component_ (in contrast to a full Discourse theme, a Discourse plugin, or something yet different)

Is there an existing convention on how to communicate that in the name or slug?

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [March 16, 2026, 10:33pm UTC](https://meta.discourse.org/t/is-there-a-naming-convention-for-theme-component-projects/398572/2 "2026-03-16T22:33:02Z")

</div>

We don’t enforce any naming conventions… the Discourse team will often prefix themes and components with `discourse-` but it’s not universal.

Beyond the directory name, hopefully the readme will include a little context that it’s for Discourse… otherwise themes and theme-components always have an `about.json` file with a little info, and plugins will contain a `plugin.rb`

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [March 16, 2026, 10:36pm UTC](https://meta.discourse.org/t/is-there-a-naming-convention-for-theme-component-projects/398572/3 "2026-03-16T22:36:42Z")

</div>

I use `discourse-tc-` to signify a theme component because it’s good practice and handy to distinguish those from themes and plugins.

---

<div class="post-metadata">

### Author: ![das-g](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/das-g/32/441608_2.png) [@das-g](https://meta.discourse.org/u/das-g)
#### Post date: [March 16, 2026, 10:40pm UTC](https://meta.discourse.org/t/is-there-a-naming-convention-for-theme-component-projects/398572/4 "2026-03-16T22:40:24Z")

</div>

> [@merefield](#):
>
> because it’s good practice and handy to distinguish those from themes and plugins.

I like that, because it’s short-ish, yet informative.

What naming convention (if any) do you use for themes and plugins?

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [March 16, 2026, 10:40pm UTC](https://meta.discourse.org/t/is-there-a-naming-convention-for-theme-component-projects/398572/5 "2026-03-16T22:40:55Z")

</div>

Same here

- `discourse-foo` for plugins
- `discourse-theme-foo` for full themes
- `discourse-tc-foo` for theme components
