Skip to content

Why you should NOT migrate (yet)

RSPFx is young. It mirrors official SPFx formats, but it's not the official toolchain and doesn't support everything. This is the honest decision guide — if a row matches you, staying on gulp/Heft is lower-risk. See Microsoft docs: SharePoint Framework overview and SPFx compatibility.

Tip: Try in a branch before deciding: rspfx migrate --dry-run, rspfx doctor, rspfx dev, rspfx package. You'll know within an hour if you're in the happy path. See migrating-from-gulp-heft.md.

Hard blockers — do not migrate if this is you

FeatureRSPFx statusWhat to do
SharePoint 2019 / on-premises❌ Not supportedStay on official. RSPFx targets SPFx Online only — see compatibility.md#spfx-version-matrix.
Other framework without a preset⚠️ Bring your own presetNo built-in preset for other frameworks. Any framework works via FrameworkPreset + BaseWebPart (see custom-framework.md). Don't migrate unless you can provide it.

Everything else is supported or has a workable alternative.

Supported — verified

All compile, preview locally and in the workbench, and install from the app catalog:

ComponentStatusNotes
Web parts (React, Vanilla, Solid, Preact, Vue, Svelte)rspfx new --framework <id>; see frameworks.md
Application extensionsrspfx new --component applicationcustomizer
Field customizersrspfx new --component fieldcustomizer
List view command setsMock list view with onExecute wiring
Form customizersrspfx new --component formcustomizer
SPFx libraries (src/libraries/)componentType: LibraryLibrary_<id>.xml
Teams tab / personal appteams/ folder with manifest.json v1.13 + icons

See real-tenant-validation.md for verification. See Microsoft docs: Extensions overview, Library component overview, and Integrate with Microsoft Teams.

Warnings — eyes open

FeatureConsequenceAlternative
Custom gulp pipelinesNo gulp task ecosystemUse plugin-api hooks or extend your bundler config — you own the scripting
Webpack config surgeryspfx-customize-webpack.js deleted; webpack-only loaders don't auto-portConfigure via RspfxPlugin / rspfxVite in your bundler file; most aliases are unnecessary
SPFx version pinningspfxVersion typed to supported targetsKeep sp-* pins in sync — rspfx doctor warns on drift. See compatibility.md#spfx-version-matrix
Multi-locale✅ WorksPer-locale AMD modules; preview honors ?locale=fr-fr
React 18/19 skewSame as officialBundle React per web part; watch version skew

Tip: If your webpack surgery only adds aliases or polyfills, you likely don't need it — try building without it and check rspfx doctor.

Softer risks

  • Young toolchain — fewer battle-tested users than gulp serve + spfx-fast-serve.
  • Framework APIs unstable until M5.
  • No build-extension ecosystem (no PnP CLI build plugins, no Heft rigs; PnPjs libraries still work).
  • Microsoft supports the official pipeline; Stack Overflow won't cover RSPFx.
  • CI is yours to port (~10 lines, see migrating-from-gulp-heft.md).
  • .sppkg format captured from official packages and validated by tenant install per real-tenant-validation.md and reference/FORMATS.md.

When migration IS the right call

  • Web parts, extensions, or libraries on SPFx Online.
  • Team wants fast builds (seconds vs minutes), zero Heft/webpack surface, one config file.
  • You can live without gulp-task plumbing.

Decision table

Your projectVerdict
1 web part, React, standard config✅ Migrate
4 web parts, localization, PnP controls✅ Migrate (?locale= works)
Extension or library✅ Migrate
Other framework without a preset⚠️ Bring a preset first — see custom-framework.md
Custom webpack doing real work⚠️ Try it — extend bundler config; webpack-only plugins may need equivalents
SPFx 1.16 / 2019 / on-prem❌ Don't
Risk-averse enterprise❌ Don't — revisit at stable release

Comparison vs official

AspectOfficial (gulp/Heft)RSPFx
Web parts + extensions + libraries (Online)✅ (verified)
On-premises / 2019
Other frameworks— no preset✅ one-file FrameworkPreset — see custom-framework.md
Build speedMinutesSeconds (Vite/Rsbuild/Rspack + SWC)
Config filesMany (gulpfile, Heft rig, webpack overlay)One optional bundler config, else zero-config
SupportMicrosoft + Stack OverflowCommunity

Released under the MIT License.