The nango.yaml configuration file is deprecated and should not be used for new integrations. If you are still using it, 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.
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
Three core functions that replace YAML configuration. You’ll benefit from IntelliSense and type safety, directly in your IDE. No need to jump between files to find the right configuration.
err - github/syncs/issues.ts:57:43 Argument of type '{ id: number; owner: string; repo: string; issue_number: number; title: string; author: string; author_id: string; state: string; date_created: Date; date_last_modified: Date; body: string; }[]' is not assignable to parameter of type 'RawModel[]'. Type '{ id: number; owner: string; repo: string; issue_number: number; title: string; author: string; author_id: string; state: string; date_created: Date; date_last_modified: Date; body: string; }' is not assignable to type 'RawModel'. Types of property 'id' are incompatible. Type 'number' is not assignable to type 'string'.
Previously you were setting the ID property of a sync to a number when it should always be a string.
Q: When will nango.yaml stop being supported?A: nango.yaml integrations will be supported until the end of 2025. Zero YAML will be the only supported way to build integrations after that. An official roadmap will be published soon.
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.
Note: Bundling custom dependencies is not yet possible but is now on our roadmap thanks to this update.
Q: What still works the same?A: Your core integration logic remains unchanged. No new features or breaking changes. All CLI commands are still available.
Q: Can I rollback if something goes wrong?A: Yes, Nango’s platform remains compatible with nango.yaml at all times:
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.