Go & Node upgrade calendar · 2027
An example schedule for keeping a small-business Go or Node.js application on supported runtimes, without upgrading every time a new release appears.
The rules:
- Major and minor versions change only in two maintenance windows a year: March and September.
- Patch and security releases are applied as soon as their announcement warrants it, outside this plan.
- Go: move to the newest major in the window after it ships, once its
.1point release is out. - Node.js: only LTS in production. Each March, move to the line that became LTS the previous October. Each line runs about 12 months in production, not its full 30-month LTS.
Production target by month
| Month | Go | Node.js |
|---|---|---|
| January | 1.27 | 24 LTS |
| February | 1.27 | 24 LTS |
| March | → 1.28 | → 26 LTS |
| April | 1.28 | 26 LTS |
| May | 1.28 | 26 LTS |
| June | 1.28 | 26 LTS |
| July | 1.28 | 26 LTS |
| August | 1.28 | 26 LTS |
| September | → 1.29 | 26 LTS |
| October | 1.29 | 26 LTS |
| November | 1.29 | 26 LTS |
| December | 1.29 | 26 LTS |
Bold rows are the months where versions change. The next Node move is Node 27 LTS in March 2028.
Month by month
January · quiet
- Production: Go 1.27 · Node 24 LTS
- Mid-month: add the Go 1.28 release candidate to the CI matrix
- Weeks 3–4: add Node 26 LTS to the CI matrix; plan spring work
February · watch
- Early: Go 1.28 released, Go 1.26 reaches end of life
- Week 1: read the release notes, especially
GODEBUGchanges - Weeks 2–4: fix anything CI flags on Go 1.28 or Node 26
March · maintenance window
- Week 1: confirm Go 1.28.1 is out
- Week 2: Go 1.27 → 1.28.x
- Week 2: Node 24 → 26 LTS
- Week 3: update dependencies, deploy to staging, smoke tests
- Week 4: release v2027.1, bundled with low-priority bug fixes
April · features
- Mid-month: Node 27.0.0 released as Current; not for production
- Week 1: buffer for regressions from v2027.1
- Weeks 2–4: feature development
May · features
- Mid-month: feature release A
June · features
- Feature development
July · features
- Early: feature release B
- Mid-month: add the Go 1.29 release candidate to the CI matrix
- Late: collect the autumn bug-fix backlog
August · watch
- Early: Go 1.29 released, Go 1.27 reaches end of life
- Holidays: read release notes only
September · maintenance window
- Week 1: confirm Go 1.29.1 is out
- Week 2: Go 1.28 → 1.29.x
- Week 2: Node stays on 26, latest minor
- Week 3: update dependencies, deploy to staging, smoke tests
- Week 4: release v2027.2, bundled with low-priority bug fixes
October · features
- Late: Node 27 becomes LTS; Node 26 enters its maintenance phase
- Week 1: buffer for regressions from v2027.2
- Weeks 2–4: feature development
November · features
- Mid-month: feature release C
- Late: add Node 27 LTS to the CI matrix, ready for March 2028
December · quiet
- No version changes
- Late: plan 2028 (Go 1.30, Node 27 LTS)
Why Node 27 waits until March 2028
Node 27 becomes LTS in late October, just after the September window. Waiting for March keeps two change windows a year, gives Node 27 five months of LTS fixes, and avoids changes during clients’ November–December peak season. Node 26 still receives security fixes until April 2029, so staying on it until March carries no real risk.
Always running
- Go:
golang-announcemailing list andgovulncheckin CI - Node.js: nodejs.org security announcements,
npm audit, committed lockfile andnpm ciin builds - Renovate or Dependabot opening update PRs, batch-merged during maintenance windows
Go 1.28 (February 2027) and 1.29 (August 2027) are projected from Go’s six-month cadence. Node.js dates come from the Node.js project’s published release schedule (Node 26 LTS October 2026, Node 27 Current April 2027, LTS October 2027). Check go.dev/doc/devel/release and the nodejs/Release schedule before committing dates to clients.
Madalin
AI integrator🚀 Senior Architect | SRE & Database Expert | AI Orchestrator 👋 Building the future at the speed of thought. ⚡️ I don't just write code; I architect high-performance, bulletproof ecosystems. With a foundation in Systems Engineering and a mastery of Go and TypeScript, I bridge the gap between heavy-duty backend reliability and seamless, high-conversion frontends.
Continue the conversation
If this article reflects the challenges your organisation is navigating, explore more practical guidance across Madalin.