# Introduction to Discourse Development

**URL:** https://meta.discourse.org/t/introduction-to-discourse-development/349939
**Category:** Developer Guides
**Created:** [January 31, 2025, 6:55pm UTC](https://meta.discourse.org/t/introduction-to-discourse-development/349939 "2025-01-31T18:55:18Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [January 31, 2025, 6:55pm UTC](https://meta.discourse.org/t/introduction-to-discourse-development/349939/1 "2025-01-31T18:55:18Z")

</div>

Discourse is a modern and highly-customizable platform for building communities. This documentation is intended for anyone who wants to build a customization for Discourse, or work on Discourse itself.

## Architecture

**Discourse Core** has a Ruby on Rails backend and an Ember JS frontend. This is the shared platform upon which Discourse communities are built.

**Discourse Themes** can be used to customize the frontend user experience using CSS and Javascript. Each theme has its own git repository, and community admins can generally install and manage them via the Discourse admin panel, even on shared hosting platforms.

**Theme Components** are themes which are intended for use alongside other Theme Components, as part of an overall Theme. From a development point of view, Theme Components and Themes are almost identical.

**Discourse Plugins** can customize the frontend in similar ways to themes. They can also customize the backend Ruby on Rails application, which allows them to introduce more extensive features. Plugins can only be installed by the server administrator, so their use may be restricted on shared hosting platforms.

## Getting Started

To work on Discourse Core, Themes or Plugins, you’ll need a community to develop against.

To develop Themes or Theme Components, you can use the discourse\_theme CLI against our public ‘Theme Creator’, your own production site, or a [dedicated development environment](https://meta.discourse.org/t/336366). Once you have a development environment, check out the [Theme Beginners Guide](https://meta.discourse.org/t/beginners-guide-to-developing-discourse-themes/93648).

To develop plugins or core, you’ll need to set up a dedicated development environment. Once that’s set up, check out the [Plugin Beginners Guide](https://meta.discourse.org/t/30515).

For general information about developing Discourse core, Themes and Plugins, check out the [Code Internals](https://meta.discourse.org/t/48891) section.

* * *

This document is version controlled - suggest changes [on github](https://github.com/discourse/discourse/blob/main/docs/developer-guides/docs/01-introduction/01-introduction.md).

---

<div class="post-metadata">

### Author: ![Hacxx](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hacxx/32/370225_2.png) [@Hacxx](https://meta.discourse.org/u/Hacxx)
#### Post date: [February 1, 2025, 10:34pm UTC](https://meta.discourse.org/t/introduction-to-discourse-development/349939/3 "2025-02-01T22:34:35Z")

</div>

A very documented entry about the forum software Discourse. As admin never used it, as a user, using right know. Thanks.
