Reading mode
Same article — pick your depth.

In plain English

Both SuiteBundler and SDF answer the same question: “I built a customization in one NetSuite account — how do I move it to another?” SuiteBundler is the old point-and-click way: you build in the NetSuite UI, wrap everything into a bundle, and install that bundle elsewhere. SDF (SuiteCloud Development Framework) is the modern developer way: your customizations live as files on your computer, you keep them in Git, and you deploy them with a command. Bundler still works, but it’s frozen — NetSuite has stopped adding features to it and is steering everyone toward SDF.

SuiteBundler vs SDF, at a glance
SuiteBundlerbuild in UI · maintenance modepackage a bundle in the browserno Git / no line-by-line diffresets form layoutsno new featuresSDFfiles · CLI · actively developedXML files on your computerGit version control + CI/CDvalidate before deploypreserves form layoutmodern

Same job, two eras. Bundler is the friendly-but-frozen browser tool; SDF is the file-based, version-controlled way NetSuite now recommends.

Why does this matter right now?

Because NetSuite has drawn a line. SuiteBundler still works — your existing bundles aren’t going to break — but it’s in maintenance mode: bug fixes only, no new features. Every new platform capability ships to SDF first. So if you’re starting something new, or making a multi-year decision about how your team ships customizations, the direction is clear. The catch is that SDF asks more of you up front: it’s built for developers, not for clicking around a browser.

How to decide between them

You don’t pick by preference — you pick by what you’re shipping and who’s shipping it. Walk these five questions top to bottom.

Five questions that decide SDF vs SuiteBundler
1New build or finishing an old one?new → SDF · mature bundle near release → finish on Bundler2Need Git & CI/CD?yes → SDF (text files, diffs, pipelines)3Your accounts or external clients?own → SDF ACP / Copy to Account · external → SuiteApp4Form-heavy deployment?yes → SDF (Bundler resets form layouts)5Who owns deployment?developers → SDF · admins/functional → Bundler is simpler

New + developer-owned + form-heavy + version-controlled all point to SDF. Bundler’s remaining sweet spot is simple, non-developer distributions and mature bundles already in flight.

The jargon, in plain English

The expert version goes deep. Here are the seven terms you’ll keep hearing:

1

SuiteBundler

The browser tool that wraps customizations into a bundle you install in other accounts. Frozen — no new features.

2

SDF

SuiteCloud Development Framework — your customizations as XML files you build, validate, and deploy from your computer.

3

SuiteCloud SDK

The toolkit for SDF: the CLI (Node.js / Java) plus the VS Code and WebStorm plug-ins.

4

ACP

Account Customization Project — an SDF project for accounts you own. Can’t be uninstalled once deployed.

5

SuiteApp project

An SDF project for distributing to other accounts — the modern replacement for a managed bundle.

6

Copy to Account

A point-and-click way to copy one SDF object between your own accounts, with its dependencies and data.

7

manifest.xml

The file in an SDF project that declares dependencies — what your customization needs to exist in the target.

What to remember

  • SuiteBundler isn’t dead — it’s frozen. Your bundles keep working; new features go to SDF.
  • SDF means files + Git + CLI — great for developers, a steeper climb for admins.
  • An ACP can’t be uninstalled; pick your project type before you deploy, not after.
  • For form-heavy work, prefer SDF — Bundler resets form layouts on install and update.
Want the deep technical version? Tap Expert mode at the top — the two deployment models, a full head-to-head table, the decision guide, and how to move a bundle to SDF without duplication errors.
Talk to a NetSuite deployment engineer

Quick summary: SuiteBundler and SuiteCloud Development Framework (SDF) both package and move NetSuite customizations between accounts, but they represent two eras. SuiteBundler is a UI-driven bundling tool that is now in maintenance mode — supported, but receiving no new features. SDF is a file-based framework where customizations are XML definitions and SuiteScript files you build, version-control, validate, and deploy from an IDE or the SuiteCloud CLI. For new work, Oracle steers teams to SDF (plus Copy to Account and SuiteApp Control Center); SuiteBundler remains viable for simple, non-developer distributions and mature bundles already in flight. This guide compares them honestly and shows how to choose.

We’ve shipped customizations both ways across ecommerce, wholesale, and B2B finance accounts in the US, UK, CA, Australia, and New Zealand. The comparison below is the one we actually use with clients — not a feature checklist, but the handful of decisions that determine which tool saves you pain.

What each tool actually is

They solve the same problem — moving customizations between accounts — from opposite directions:

  • SuiteBundler — you build customizations in the NetSuite UI, group them into a bundle, and distribute it publicly, to a list of accounts, or shared. Installs and managed-bundle updates happen inside NetSuite. It’s approachable for non-developers but no longer being enhanced.
  • SDF — you represent customizations as XML SDF custom objects plus SuiteScript files in a project folder, develop them locally in VS Code or WebStorm (or via the CLI), and deploy with validation. It decouples development from any single account, so you get versioning and CI/CD. (See the SuiteCloud Development Framework docs.)
The headline fact: SuiteBundler is still supported but will not get new features — Oracle points you to SDF, Copy to Account, and SuiteApp Control Center for packaging and distribution. Treat Bundler as legacy-stable, not future-proof.

Two deployment models

The real difference is the mental model. SuiteBundler is account-centric: the source of truth is the customization living in a NetSuite account, and the bundle is a snapshot. SDF is file-centric: the source of truth is the project on disk, and the account is a deploy target. That single shift is why SDF unlocks Git diffs, branching, code review, and pipelines — and why it feels alien to admins used to clicking through the UI.

SDF projects come in two types. An Account Customization Project (ACP) is for accounts you own (production, sandbox, dev). A SuiteApp project is for distributing to accounts you don’t control — the modern equivalent of a managed bundle, published through SuiteApp Control Center. (Reference: SuiteCloud Project Types.)

my-acp-project/
├── manifest.xml          # project type + dependencies
├── deploy.xml            # what gets deployed
└── src/
    ├── Objects/          # XML: customrecord_*, customform_*, workflow_*
    ├── FileCabinet/      # SuiteScript files, templates
    └── Translations/

# validate, then deploy — from your terminal
suitecloud project:validate --server
suitecloud project:deploy

Head-to-head comparison

DimensionSuiteBundlerSDF
Where you buildNetSuite UI, in the browserLocal IDE / CLI, as XML files
Version controlNone native; manual XML exportGit-friendly text files, line-by-line diffs
CI/CDNot designed for itCLI enables pipelines and automation
Dependency controlCoarse; bundles can bloatExplicit dependencies in manifest.xml
Form layoutResets on install & on updatePreserved after the initial deploy
AudienceAdmins & functional usersDevelopers
New featuresFrozen (maintenance mode)Added every release
DistributionPublic / account list / sharedSuiteApp via SuiteApp Control Center

Two caveats keep this honest. SDF still doesn’t support every customization type — the list grows each release, but check the supported-objects reference before assuming coverage. And SDF’s validation errors can be verbose and cryptic, which raises the learning curve for teams new to it.

How to choose

"Don't choose by taste. Choose by who ships it, whether it's form-heavy, and whether you need Git. Those three answers decide it more often than any feature list."

Our rule of thumb:

  1. New, developer-owned work → SDF. The versioning and CI/CD payoff lands within the first year.
  2. Distributing to external clients → SDF SuiteApp project + SuiteApp Control Center; managed SuiteApps update automatically.
  3. Copying a single object between your own accounts → Copy to Account — lighter than a full project for one-offs.
  4. Simple distribution owned by admins, no Git need → SuiteBundler is still the path of least resistance.
  5. A mature bundle already near release → finish it on SuiteBundler; don’t switch horses mid-stream.

Moving bundles to SDF

You can convert a bundle you administer into an SDF account customization project; the converted customizations are saved as a zip in the File Cabinet for further development. What you can’t do is convert a bundle directly into a SuiteApp project — you convert to an ACP first, then copy objects into a SuiteApp project. (Reference: Moving from SuiteBundler to SDF.)

The duplication trap: if you deploy a SuiteApp SDF project to an account that already has the equivalent bundle installed, SDF treats every shared resource as a duplicate and errors out. And once clients are on an SDF SuiteApp, they no longer install from the bundle install page. Plan the cutover — including tokens and SDF being enabled on the target — before you flip anyone over.

Pitfalls & gotchas

  • ACPs can’t be uninstalled once deployed — never use an ACP for something you may need to remove from a client account.
  • Form layouts: Bundler resets them on each install/update; if forms matter, that alone justifies SDF.
  • Unsupported objects: some types still can’t be deployed by SDF — confirm before you commit an approach.
  • Project size: the deployed SDF project zip is capped (50 MB) — push large files to the File Cabinet rather than into the project.
  • Cryptic errors: budget time to learn SDF validation messages; they’re powerful but not always self-explanatory.

Key takeaways

  • Same job, two eras: Bundler is UI-driven and frozen; SDF is file-based and actively developed.
  • SDF’s superpower is the file-centric model — Git, diffs, review, and CI/CD.
  • Pick by audience, form-sensitivity, and version-control needs, not by habit.
  • ACP for your accounts, SuiteApp for external distribution, Copy to Account for one-off objects.
  • Mind the duplication trap and the no-uninstall ACP rule when migrating bundles.

If you’re sitting on a pile of legacy bundles and weighing the move, talk to one of our engineers — we’ll assess your estate and recommend a path, not a rewrite for its own sake. You can also browse our other NetSuite engineering articles.

Frequently asked questions

Is SuiteBundler deprecated or going away?

SuiteBundler is not removed, but it is in maintenance mode — it still works and is supported, yet it no longer receives new features. Oracle now points customers to SuiteCloud Development Framework (SDF), Copy to Account, and SuiteApp Control Center for packaging and distributing customizations. Your existing bundles keep working, but new platform capabilities ship to SDF first, so new development should target SDF.

Can I convert an existing SuiteBundler bundle to SDF?

Partly. You can convert a bundle you administer into an SDF account customization project (ACP); the converted customizations are saved as a zip in the File Cabinet and can be developed further in an IDE or the CLI. You cannot convert a bundle directly into a SuiteApp project — you convert to an ACP first, then copy the objects into a SuiteApp project. Note that ACPs cannot be uninstalled once deployed, so plan the target project type carefully.

Do I need to be a developer to use SDF?

Effectively yes. SDF is developer-oriented: customizations are XML files in a project folder, edited in an IDE like VS Code or WebStorm or driven through the SuiteCloud CLI, validated, and deployed from the command line. That’s a great fit for engineers who want Git history and CI/CD, but a higher bar for admins and functional users — who often find SuiteBundler’s point-and-click packaging easier for simple distributions.

Should I use SDF or SuiteBundler to distribute to clients?

For new distribution to external accounts, build an SDF SuiteApp project and publish through SuiteApp Control Center — managed SuiteApps update automatically and get Oracle’s newer capabilities. SuiteBundler can still distribute publicly, by account list, or shared, and remains simpler for non-developers, but it won’t gain new features. If you’re mid-flight on a mature bundle with a large install base, finishing on SuiteBundler is reasonable; new builds should start on SDF.

Does SDF support every customization type?

No. SDF supports more customization types than SuiteBundler and the list grows each release, but it still can’t deploy everything — always check the official supported-objects reference before assuming a record type is covered. SDF also preserves form layout far better than SuiteBundler, which resets form customizations on install and on subsequent updates, so form-heavy deployments are a strong argument for SDF.

How to move from SuiteBundler to SDF Step-by-step: inventory bundles, set up the SuiteCloud SDK, create the project, import objects, manage dependencies, validate, and deploy sandbox-first — with official NetSuite documentation. Open the guide