# Understanding Discourse release channels

**URL:** https://meta.discourse.org/t/understanding-discourse-release-channels/264400
**Category:** Site Management
**Tags:** explanation
**Created:** [May 9, 2023, 1:39pm UTC](https://meta.discourse.org/t/understanding-discourse-release-channels/264400 "2023-05-09T13:39:21Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Discourse](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/discourse/32/148734_2.png) [@Discourse](https://meta.discourse.org/u/Discourse)
#### Post date: [May 9, 2023, 1:39pm UTC](https://meta.discourse.org/t/understanding-discourse-release-channels/264400/1 "2023-05-09T13:39:21Z")

</div>

> 🔖 This guide explains the different types of Discourse releases and how different channels are used for updates.
> 
> 🙋 Required user level: All users

## Release channels

Discourse has four primary release channels, each serving a different purpose: **main** , **latest** , **release** , and **esr**.

The default channel used when installing a production version of Discourse is **latest**.

Since November 2025, Discourse uses a date-based versioning scheme: `YYYY.MM.PATCH` (e.g., `v2026.2.0`). On the `latest` branch, versions include a `-latest` suffix (e.g., `v2026.3.0-latest`).

To see the current state of each release channel, check out:

> **[Discourse Releases](https://releases.discourse.org/)**
>
> Browse Discourse release history & changelogs.

### main

On GitHub: [https://github.com/discourse/discourse/tree/main](https://github.com/discourse/discourse/tree/main)

This channel represents the latest development version of Discourse. It contains the most recent features and improvements but may not be thoroughly tested and can be unstable, so **it is not recommended for production environments**. Developers and early adopters typically use this channel.

### latest

On GitHub: [https://github.com/discourse/discourse/tree/latest](https://github.com/discourse/discourse/tree/latest)

Previously known as “tests-passed”, this channel includes features and improvements from the main channel that have undergone a certain level of testing. It has the best balance between stability and access to the latest improvements. We commit new changes almost daily, and they are available in this channel.

### release

Approximately once a month, a release is cut from **latest** into its own branch (e.g., `release/2026.2`). Each release receives critical security fixes for two full release cycles after it is created.

On GitHub, each release has its own branch: [https://github.com/discourse/discourse/tree/release/2026.2](https://github.com/discourse/discourse/tree/release/2026.2)

The tag `release` always points to the most recent release.

> ℹ For backward compatibility, the `beta` tag still exists but is frozen and no longer actively updated.

### esr

ESR stands for **Extended Support Release**. Approximately every 6 months, one of the monthly releases is designated as an ESR. ESR versions receive critical security fixes for a longer period — they remain supported for 2 releases after the _next_ ESR is declared.

On GitHub: [https://github.com/discourse/discourse/tree/esr](https://github.com/discourse/discourse/tree/esr)

The tag `esr` always points to the latest ESR release. For backward compatibility, the `stable` branch and tag are aliased to `esr`.

The ESR channel is not necessarily more “stable” than **latest**. It’s more about the idea that the bugs are known, and it serves as a checkpoint for a specific set of features and improvements. With **latest** , there may be new bugs introduced, then fixed a few commits later.

> Last edited by @Moin 2026-03-30T08:59:33Z
> 
> Last checked by @hugh 2024-07-30T10:13:40Z
> 
> > **Check document**
> >
> > Perform check on document:
