Migrating to Zero YAML (Beta)
Guide on how to migrate to Zero YAML in Nango.
This guide will help you migrate your existing Nango integrations from the YAML-based approach to our new Zero YAML system, which uses pure TypeScript with modern tooling.
What is Zero YAML?
Zero YAML is Nango’s new approach to building integrations that eliminates the need for separate nango.yaml
configuration files. Instead, everything is defined in TypeScript using a configuration-as-code approach with full type safety.
Key benefits:
- Type Safety: Full TypeScript support with Zod schema validation
- Better Developer Experience: Modern tooling, enhanced CLI output, and better error messages
- Portability: Self-contained files that can be easily shared and version controlled
- No Custom Syntax: Pure TypeScript - no need to learn YAML-specific conventions and our previous custom model syntax
Here’s a quick example of the new syntax:
How Zero YAML Works
The new system is built around simplification
Simplified file Structure
Like a regular typescript codebase
Simplified configuration
Three core functions that replace YAML configuration. You’ll benefits from intellisense and type safety, directly in your IDE. No need to jump between files to find the right configuration.
createSync()
: Defines data synchronization jobscreateAction()
: Defines on-off jobscreateOnEvents()
: Defines event-based jobs
Quick Migration Guide
Automatic Migration
The easiest way to migrate is using our automated migration command:
This command will:
- Analyze your existing
nango.yaml
and TypeScript files - Generate new self-contained TypeScript files
- Create the required
package.json
if it doesn’t exist - Set up the
index.ts
entry point - Preserve your existing logic and configuration
Post-Migration Steps
The migration command should automatically transform all your files. However, you should review the changes and make sure everything is correct.
Migration Plan
We recommend:
- Backup your current nango integrations folder
- Use your dev env to migrate to test the new format
- Deploy to prod env after your have assesed that everything works properly
What Has Changed?
Configuration: YAML → TypeScript Objects
Before (nango.yaml + separate .ts file):
After (single self-contained file):
Models: YAML Definitions → Zod Schemas
Before:
After:
Before and After Examples
Sync Example
Before (issues.ts + nango.yaml excerpt):
After (self-contained fetchIssues.ts):
Action Example
Before (separate files):
After (self-contained):
Index File Structure
The new index.ts
file imports all your integrations:
Migration Gotchas & FAQ
Package.json Requirement
Q: Why is package.json now mandatory?
A: The new system uses modern JavaScript tooling that requires proper dependency management. The package.json
ensures:
- Consistent dependency versions across environments
- Proper module resolution
- Better integration with modern development tools
If you don’t have one, the migration command will create it automatically.
Backward Compatibility
Q: What still works the same?
A: Your core integration logic remains unchanged. No new features or breaking changes. All CLIs commands are still available.
Testing Migrated Integrations
Q: How do I test after migration?
A: Use the same testing commands:
Rollback Process
Q: Can I rollback if something goes wrong?
A: Yes, Nango’s platform remains compatible with nango.yaml at all time:
- Go to your backup folder
nango deploy dev
Keep your original files until you’ve fully validated the migration.
The Zero YAML approach represents a significant step forward in Nango’s developer experience. By eliminating custom syntax and embracing pure TypeScript, we’ve made integrations more maintainable, shareable, and enjoyable to work with. Many more features will be possible thanks to this new syntax.
If you encounter any issues during migration, our support team is ready to help. Happy integrating! 🚀
Questions, problems, feedback? Please reach out in the Slack community.