Core Concepts
​Why Nango?
Nango combines the best of two popular options:
- Building custom integrations in-house (full control, but slow to build & maintenance intense)
- Buying pre-built integrations (fast, but limiting)
It gives you both full control over the integrations and it lets you build production-ready integrations very fast.
​How does Nango achieve this?
Instead of pre-building entire integrations we pre-built the hard infrastructure.
When you write integrations with Nango, 95% of it is already built for you (see Introduction for a full features list).
All you have to do is write a little bit of code for the logic of your integration:
- Which data would you like to sync? How should it be transformed?
- What is the resulting data model?
- Which data would you like to write back and when?
Based on this Nango generates a fully typed SDK for you and runs your integrations reliably in production. Learn more here.
​When should I use Nango?
Nango is a good fit for you if:
- You want to build integrations fast
- Pre-built solutions such as embedded iPaaS or unified APIs are too limiting for you
- You want to minimize maintenance overhead in production
Nango was primarily built for SaaS products where integrations are core to the product experience: If your product (deeply) integrates with other SaaS products Nango is probably a good fit for you.
Nango has not been built for:
- Automating internal workflows
- Adding single sign-on login options
​Why Open Source?
Nango is open-source and leverages the community to:
- improve Nango’s infrastructure
- contribute new Integration Templates for OAuth flows & data syncs
- share knowledge about external API quirks
​Glossary
Terms we frequently use at Nango:
​Integration Templates
An Integration Template (e.g. the hubspot
template) contains the configuration in Nango that is specific to an external API. In particular:
- Auth-related configuration (auth type, OAuth URLs, auth quirks, etc.)
- Sync-related configuration (rate-limits, pagination strategy, etc.)
These templates are contributed and regularly improved by Nango and its community. Templates allow to rapidly adapt Nango to work with any API, by editing a .yaml
configuration file.
​Integrations
Developers create Integrations, based on Integration Templates, to work with external APIs from their app.
Integrations are created by you in the Nango Dashboard. You can then control them with SDKs and REST APIs.
Nango Auth is used to let users authorize your integrations (API access such as OAuth 2).
Nango Sync is used to let you exchange data with external APIs (API syncing). Nango Sync lets you write a minimal amount of code (API requests & transformation) to define your integration logic. It then runs your sync reliably in production for you.
​Connections
When a user of your app authorizes an Integration, Nango calls this a new Connection: E.g. user1
authorizes a Github
integration to sync issues in your app.
Connections represent the relation between an end user and an external API. It contains the necessary credentials to access the external API on behalf of the user together with metadata and per-user configuration.
​Nango Infrastructure
Nango’s infrastructure consist of the following components, that we see companies re-build over and over again:
- (O)Auth server
- Orchestrator to schedule sync jobs (Temporal)
- Background workers & ETL-like pipelines to sync data with external APIs
- Postgres database to store auth/sync-related configuration + cached data
- Tooling to write & deploy developer-supplied integration code
- SDKs, REST API & webhooks to access the data sync from external APIs
- Admin console to manage & observe integrations
- REST API to manage integrations programmatically