+1 (415) 843-4662

Ionic 9 is here: what it means for your app

Ionic Framework 9 was released on August 19, 2026 — the first major since Ionic 8 in 2024, and a release that answers the three requests the community made loudest: React Router 6 support, a wider Angular range, and upgrades that do not eat a weekend. Here is what changed and what it means depending on where your app is today.

What is in Ionic 9

  • React Router 6. Ionic's React integration no longer depends on React Router internals; it owns view retention and cleanup itself. That is why v6 took so long, and why the team says React Router 7 should be a much smaller step next. Swipe-to-go-back on parameterised routes — a long-standing bug — is fixed along the way.
  • Vue Router 5. Routes, guards, and IonRouterOutlet stay as they are; the one migration is that calling next() in a guard is deprecated. Vue 3.5 is now the minimum.
  • Angular 18 through 22. Angular 16 and 17 drop off. Angular 22 brings OnPush by default, TypeScript 6, and a newer Node requirement, which is why it could not be supported in v8.
  • Zoneless by default. Angular 21 made zoneless change detection the default; Ionic 9's lifecycle and overlay integrations work without Zone.js across all supported Angular versions. Zone.js remains supported if you need it.
  • Standalone is the default import path. @ionic/angular/standalone becomes plain @ionic/angular; the module-based lazy imports move to @ionic/angular/lazy.
  • Stencil output-target updates, richer ion-select options, font icon support, and a handful of component-level breaking changes documented in the framework repo.
  • @ionic/migrate. A single-shot tool that applies the safe breaking changes, formats what it touched, reinstalls dependencies, and prints a checklist of the manual items with file and line numbers.

The full details are in the Ionic 9 announcement and the v9 upgrade guide.

Support windows

endoflife.date/ionic tracks which majors still receive fixes. The practical reading for August 2026: Ionic 8 is the line to be on if you are not moving to 9 immediately, and anything at 7 or below should be treated as unsupported for planning purposes, whatever the exact date on the table says.

Upgrade triage

If you are on Ionic 8 and a current Angular/React/Vue: this is the easiest major upgrade Ionic has shipped. Commit, run npx @ionic/migrate --dry-run, read the checklist, run it for real, fix the manual items, test overlays if you are on Angular 21+ without Zone.js. For most apps this is a day or two. React apps get the extra task of moving to React Router 6, which is the one part that can take longer depending on how much custom routing you wrote around v5.

If you are on Ionic 7: upgrade to 8 first using the v8 guide — mostly theming and typing changes — then use the migration tool for the 8 → 9 hop. Plan a week.

If you are on Ionic 4, 5, or 6 with Angular: this is an Angular upgrade project with Ionic along for the ride. We published a step-by-step guide to the version-by-version path; budget in weeks, not days, and build a screenshot and smoke-test harness before you start.

If you are on Ionic 1–3 or still on Cordova: the question is not "upgrade or not" but "incremental rewrite or full rewrite". Our legacy modernization page explains how we make that call.

Zoneless: the one thing that will surprise Angular teams

With Zone.js gone, Angular no longer re-renders automatically after an asynchronous callback. The typical Ionic case is awaiting a modal result:

const { data } = await modal.onWillDismiss();
this.selected = data;      // template does not update without Zone.js

The fix is to hold the state in a signal (this.selected.set(data)) or call markForCheck(). It is a small change per site, but there are many sites in a mature app, and they do not all show up in a quick manual test. Ionic's zoneless guide lists the patterns; your test suite is what finds the rest.

Should you upgrade now?

Yes if you are on Ionic 8 with a current framework — the cost is low and the React Router 6 and Angular 22 support remove real blockers. For older apps, the answer is "start the path now", because every major you are behind makes the next one harder, and the Appflow sunset in December 2027 means many Ionic teams will be doing platform work at the same time next year.

If you would like a second opinion on your app's specific path, send us your package.json and we will give you an honest read — contact us.