Next.js Discord

Discord Forum

Difference between beta, canary, and preview releases

Unanswered
Polar bear posted this in #help-forum
Open in Discord
Polar bearOP
Hi! On npm, there are a few different tags for releases: "beta", "canary", "latest", "preview," and "rc." What are they each used for? How does a release progress through them? I understand that "latest" is stable and all the others are some level of unstable, I'm just confused as to the differences between them.

I'm asking because a bugfix I need has been merged, but isn't included in 16.2. So I'm trying to find the most stable version while I wait for 16.3.

(As a side note, does anyone know if there is an eta for 16.3? Or how frequently releases usually are? No worries at all if not!!)

2 Replies

Polar bearOP
&752637460550385834 looks like a bot
Elf Owl
Hey! Here is a quick breakdown of how those release tags work in the ecosystem. The progression usually goes like this: Canary ➡️ Preview/Beta ➡️ RC ➡️ Latest.

canary: The bleeding edge. This is usually auto-published by a CI/CD pipeline on every single commit merged to the main branch. It has the newest code, but it's the most unstable.

preview / beta: The upcoming minor/major release (like your 16.3) is taking shape. Core features are added, but they are still hunting for bugs.

rc (Release Candidate): This is essentially the final version of 16.3. The team believes it's stable and they are just letting the community test it for a few days to ensure there are no critical, game-breaking bugs before making it official.

latest: The stable, production-ready release (currently 16.2).

How to get your bugfix:
If the PR with your bugfix was just merged, it's almost certainly only in the canary tag right now. You can get it by running ⁠npm install [package-name]@canary⁠.

If you want to play it a bit safer, keep an eye on their GitHub releases and wait until they cut a ⁠16.3.0-beta⁠ or ⁠16.3.0-rc⁠ tag. Most maintainers push canaries daily, but RC/Latest drops depend entirely on their sprint cycles. Hope this helps!