When you are building a SaaS application, one of the key problems you need to solve is how to manage your billing and packaging.
Not only you need to decide the right strategy, you also need to implement it in a way that allows you to scale and adapt to your
users’ needs. You will not create the correct pricing and packaging strategy in your first iteration. Many pricing and packaging
experts would actually say that you will never stop iterating over it.As a developer, this is a challenge. We need to somehow charge our clients and keep all the systems in sync.
But, how do we create a system that allows us to manage our billing and packaging in a way that enables us to iterate as much as we need?
How can we easily migrate from a flat features model to one that is more complex and usage-based?Atlas solves this problem.
There are multiple solutions that you can use to charge your customers. However, all these providers offer a lot of complexity.
And it’s not their fault, they serve an extremely big variety of customers, and each one of them needs something slightly different.So, what do we do? We integrate on top of them and make your journey painless. Right now, we integrate with Stripe and we offer a
simple way to charge your customers. You don’t need to worry about webhooks, payment processing failing later, or syncing everything.Our system works as a single source of truth. Just using our frontend widgets and our clients in the backend,
the immediate and recurrent payments are automatically handled and in sync in all your systems.
We have many widgets and utilities that will help you to manage your billing and packaging. However, if there is some case that we
don’t cover or you need the pricing and packaging information for a specific use case, you can use our API to get the information.We have a single source of truth for all your pricing and packaging information and you can use it to get the information for any
use case.
We are not reinventing the wheel. We use your authentication system to verify the requests: you can use any authentication system you want
and just tell us how to use it.
Everything comes down to a single concept: features. Features are what you are selling to your users. They are the functionalities
that your users can access. Everything in your company relates to that. What are the best features? How do we offer them? How do we
price them? How do we limit them?Atlas recognizes the importance of features and puts them at the center. It’s simple: every time you develop a new feature, you
only need to register it. Atlas and the product team will take care of the rest.How do we do this? For example, let’s say that you have a bunch of endpoints in your application that are related to the “data exploration”
feature. Using Atlas, you simply need to register the feature in the endpoint and forget about it.How is this done? For example, in Express.js, you can do the following:
If your product team wants to change who can access this feature, engineers don’t care. Atlas will automatically start rejecting
(or accepting) access to users who don’t have the feature enabled. Simple.
All our libraries have robust caching mechanisms that will make your application performant. We also have caching invalidation
mechanisms that will make sure that your application is always up to date and in sync, even if you have horizontally scaled your application.
All our libraries are designed to be easy to use. We have a lot of documentation and examples that will help you to get started.
Is something confusing? Reach out on our Discord and we will help you out.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Atlas","colors":{"primary":"#9A47D5","light":"#c498e3","dark":"#9A47D5"},"logo":{"light":"https://mintcdn.com/atlas-e6c381cc/CZyope2K7u39JYzl/logo/atlas-lightmode.png?fit=max\u0026auto=format\u0026n=CZyope2K7u39JYzl\u0026q=85\u0026s=8936437d0db9d56dba50ba9b17d3f4aa","dark":"https://mintcdn.com/atlas-e6c381cc/CZyope2K7u39JYzl/logo/atlas-darkmode.png?fit=max\u0026auto=format\u0026n=CZyope2K7u39JYzl\u0026q=85\u0026s=a47eb49a72beae5a86f8e2a12ed85a23"},"favicon":"/favicon.ico","api":{"playground":{"display":"interactive"},"examples":{"prefill":true}},"navbar":{"links":[{"href":"https://www.runonatlas.com/contact-us","label":"Support"}],"primary":{"type":"button","label":"Application","href":"https://app.runonatlas.com"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/runonatlas","discord":"https://discord.gg/ZjejsUX7"}},"contextual":{"options":["copy","chatgpt","claude","view"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Community","icon":"discord","href":"https://discord.gg/ZjejsUX7"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"atlas-e6c381cc","hasAudioNarration":false,"actualSubdomain":"atlas-e6c381cc","customDomains":["docs.runonatlas.com"],"gitSource":{"type":"github","owner":"runonatlas","repo":"atlas-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21f63eb595a58a20e51b55","collectionId":"a3937cec-6d4d-43f6-a185-34f34756a96a","schemaVersion":"v2"},"entitlements":{},"buildId":"6a21f63eb595a58a20e51b55:success","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":19},{"language":"default","tag":"Get Started","count":10},{"language":"default","tag":"Customers","count":9},{"language":"default","tag":"Subscriptions","count":8},{"language":"default","tag":"Developer Portal","count":6},{"language":"default","tag":"Getting Started with Atlas","count":5},{"language":"default","tag":"SDK Documentation","count":4},{"language":"default","tag":"Advanced Atlas","count":3},{"language":"default","tag":"Events","count":1},{"language":"default","tag":"Invoices","count":1}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"developer-portal/how-does-atlas-work","slug":"/developer-portal/how-does-atlas-work","pageMetadata":{"title":"How does Atlas work?","description":"Understand how to use Atlas to manage your billing and packaging.","icon":"gear","href":"/developer-portal/how-does-atlas-work","hidden":false},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Understand how to use Atlas to manage your billing and packaging.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`what-problem-does-atlas-solve`,children:`What problem does Atlas solve?`}),`\n`,_jsxs(_components.p,{children:[`When you are building a SaaS application, one of the key problems you need to solve is `,_jsx(_components.strong,{children:`how to manage your billing and packaging`}),`.\nNot only you need to decide the right strategy, you also need to implement it in a way that allows you to scale and adapt to your\nusers’ needs. You will not create the correct pricing and packaging strategy in your first iteration. Many pricing and packaging\nexperts would actually say that you will `,_jsx(_components.strong,{children:`never stop iterating`}),` over it.`]}),`\n`,_jsx(_components.p,{children:`As a developer, this is a challenge. We need to somehow charge our clients and keep all the systems in sync.\nBut, how do we create a system that allows us to manage our billing and packaging in a way that enables us to iterate as much as we need?\nHow can we easily migrate from a flat features model to one that is more complex and usage-based?`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Atlas solves this problem.`})}),`\n`,_jsx(Heading,{level:`2`,id:`how-does-atlas-solve-it`,children:`How does Atlas solve it?`}),`\n`,_jsx(Heading,{level:`3`,id:`payment-integrations`,children:`Payment integrations`}),`\n`,_jsx(_components.p,{children:`There are multiple solutions that you can use to charge your customers. However, all these providers offer a lot of complexity.\nAnd it’s not their fault, they serve an extremely big variety of customers, and each one of them needs something slightly different.`}),`\n`,_jsxs(_components.p,{children:[`So, what do we do? `,_jsx(_components.strong,{children:`We integrate on top of them and make your journey painless`}),`. Right now, we integrate with Stripe and we offer a\nsimple way to charge your customers. You don’t need to worry about webhooks, payment processing failing later, or syncing everything.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Our system works as a single source of truth.`}),` Just using our frontend widgets and our clients in the backend,\nthe immediate and recurrent payments are automatically handled and in sync in all your systems.`]}),`\n`,_jsx(Heading,{level:`3`,id:`single-source-of-truth`,children:`Single Source of truth`}),`\n`,_jsx(_components.p,{children:`We have many widgets and utilities that will help you to manage your billing and packaging. However, if there is some case that we\ndon’t cover or you need the pricing and packaging information for a specific use case, you can use our API to get the information.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`We have a single source of truth`}),` for all your pricing and packaging information and you can use it to get the information for any\nuse case.`]}),`\n`,_jsx(Heading,{level:`3`,id:`authentication`,children:`Authentication`}),`\n`,_jsxs(_components.p,{children:[`We are not reinventing the wheel. We use your authentication system to verify the requests: `,_jsx(_components.strong,{children:`you can use any authentication system you want`}),`\nand just tell us how to use it.`]}),`\n`,_jsx(Heading,{level:`3`,id:`features-at-the-core`,children:`Features at the core`}),`\n`,_jsxs(_components.p,{children:[`Everything comes down to a single concept: `,_jsx(_components.strong,{children:`features`}),`. Features are what you are selling to your users. They are the functionalities\nthat your users can access. Everything in your company relates to that. What are the best features? How do we offer them? How do we\nprice them? How do we limit them?`]}),`\n`,_jsxs(_components.p,{children:[`Atlas recognizes the importance of features and `,_jsx(_components.strong,{children:`puts them at the center`}),`. It’s simple: every time you develop a new feature, you\nonly need to register it. Atlas and the product team will take care of the rest.`]}),`\n`,_jsx(_components.p,{children:`How do we do this? For example, let’s say that you have a bunch of endpoints in your application that are related to the “data exploration”\nfeature. Using Atlas, you simply need to register the feature in the endpoint and forget about it.`}),`\n`,_jsx(_components.p,{children:`How is this done? For example, in Express.js, you can do the following:`}),`\n`,_jsx(CodeBlock,{filename:``,highlight:`[3]`,numberOfLines:`7`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"/data-exploration\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line line-highlight`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` atlasExpress`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createFeaturesMiddleware`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`([`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"data-explorer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`send`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Hello, world!\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`If your product team wants to change who can access this feature, engineers don’t care. Atlas will automatically start rejecting\n(or accepting) access to users who don’t have the feature enabled. `,_jsx(_components.strong,{children:`Simple.`})]}),`\n`,_jsx(Heading,{level:`3`,id:`performant`,children:`Performant`}),`\n`,_jsxs(_components.p,{children:[`All our libraries have `,_jsx(_components.strong,{children:`robust caching mechanisms`}),` that will make your application performant. We also have caching invalidation\nmechanisms that will make sure that your application is always up to date and in sync, even if you have horizontally scaled your application.`]}),`\n`,_jsx(Heading,{level:`3`,id:`easy-to-use`,children:`Easy to use`}),`\n`,_jsxs(_components.p,{children:[`All our libraries are designed to be easy to use. We have a lot of documentation and examples that will help you to get started.\nIs something confusing? Reach out on our `,_jsx(_components.a,{href:`https://discord.gg/runonatlas`,children:`Discord`}),` and we will help you out.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"How does Atlas work?","description":"Understand how to use Atlas to manage your billing and packaging.","icon":"gear","href":"/developer-portal/how-does-atlas-work","hidden":false}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What problem does Atlas solve?","slug":"what-problem-does-atlas-solve","depth":2,"children":[]},{"title":"How does Atlas solve it?","slug":"how-does-atlas-solve-it","depth":2,"children":[{"title":"Payment integrations","slug":"payment-integrations","depth":3,"children":[]},{"title":"Single Source of truth","slug":"single-source-of-truth","depth":3,"children":[]},{"title":"Authentication","slug":"authentication","depth":3,"children":[]},{"title":"Features at the core","slug":"features-at-the-core","depth":3,"children":[]},{"title":"Performant","slug":"performant","depth":3,"children":[]},{"title":"Easy to use","slug":"easy-to-use","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"atlas-e6c381cc","siteName":"Atlas","title":"How does Atlas work? - Atlas","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2025-10-14T16:55:39.507Z","originalFileLocation":"developer-portal/how-does-atlas-work.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Understand how to use Atlas to manage your billing and packaging.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Atlas\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/atlas-e6c381cc/6DYCW_jaZNkVq4EJ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/atlas-e6c381cc/6DYCW_jaZNkVq4EJ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/atlas-e6c381cc/6DYCW_jaZNkVq4EJ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/atlas-e6c381cc/6DYCW_jaZNkVq4EJ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/atlas-e6c381cc/6DYCW_jaZNkVq4EJ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/atlas-e6c381cc/6DYCW_jaZNkVq4EJ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/atlas-e6c381cc/6DYCW_jaZNkVq4EJ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/atlas-e6c381cc/6DYCW_jaZNkVq4EJ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/atlas-e6c381cc/6DYCW_jaZNkVq4EJ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"How does Atlas work? - Atlas\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understand how to use Atlas to manage your billing and packaging.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Atlas\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.runonatlas.com/developer-portal/how-does-atlas-work\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://atlas-e6c381cc.mintlify.app/_mintlify/api/og/v2?division=Get+Started\u0026amp;title=How+does+Atlas+work%3F\u0026amp;description=Understand+how+to+use+Atlas+to+manage+your+billing+and+packaging.\u0026amp;theme=fad73015577ccd4d16edaa20\u0026amp;signature=5023b6eadc43efe12e968e6adeb2ef9b3aea8c542730a6fff86a790eb2c4e7f4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"How does Atlas work? - Atlas\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understand how to use Atlas to manage your billing and packaging.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://atlas-e6c381cc.mintlify.app/_mintlify/api/og/v2?division=Get+Started\u0026amp;title=How+does+Atlas+work%3F\u0026amp;description=Understand+how+to+use+Atlas+to+manage+your+billing+and+packaging.\u0026amp;theme=fad73015577ccd4d16edaa20\u0026amp;signature=5023b6eadc43efe12e968e6adeb2ef9b3aea8c542730a6fff86a790eb2c4e7f4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/atlas-e6c381cc/6DYCW_jaZNkVq4EJ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Atlas\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9A47D5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.runonatlas.com/developer-portal/how-does-atlas-work\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/developer-portal/how-does-atlas-work.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.runonatlas.com/#organization\",\"name\":\"Atlas\",\"url\":\"https://docs.runonatlas.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/atlas-e6c381cc/CZyope2K7u39JYzl/logo/atlas-lightmode.png?fit=max\u0026auto=format\u0026n=CZyope2K7u39JYzl\u0026q=85\u0026s=8936437d0db9d56dba50ba9b17d3f4aa\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.runonatlas.com#website\",\"name\":\"Atlas\",\"url\":\"https://docs.runonatlas.com\",\"publisher\":{\"@id\":\"https://docs.runonatlas.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.runonatlas.com/developer-portal/how-does-atlas-work#webpage\",\"url\":\"https://docs.runonatlas.com/developer-portal/how-does-atlas-work\",\"name\":\"How does Atlas work?\",\"description\":\"Understand how to use Atlas to manage your billing and packaging.\",\"dateModified\":\"2025-10-14T16:55:39.507Z\",\"isPartOf\":{\"@id\":\"https://docs.runonatlas.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.runonatlas.com/developer-portal/how-does-atlas-work#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.runonatlas.com/developer-portal/how-does-atlas-work#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Atlas\",\"item\":\"https://docs.runonatlas.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How does Atlas work?\",\"item\":\"https://docs.runonatlas.com/developer-portal/how-does-atlas-work\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.runonatlas.com/developer-portal/how-does-atlas-work#article\",\"headline\":\"How does Atlas work?\",\"name\":\"How does Atlas work?\",\"description\":\"Understand how to use Atlas to manage your billing and packaging.\",\"url\":\"https://docs.runonatlas.com/developer-portal/how-does-atlas-work\",\"mainEntityOfPage\":{\"@id\":\"https://docs.runonatlas.com/developer-portal/how-does-atlas-work#webpage\"},\"dateModified\":\"2025-10-14T16:55:39.507Z\",\"publisher\":{\"@id\":\"https://docs.runonatlas.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.runonatlas.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Atlas\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Atlas","nav":{"global":{"anchors":[{"anchor":"Community","icon":"discord","href":"https://discord.gg/ZjejsUX7"}]},"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":""}]},{"tab":"Developer Portal","groups":[{"group":"Get Started","pages":[{"title":"How does Atlas work?","icon":"gear","href":"/developer-portal/how-does-atlas-work"},{"title":"Stripe Integration","description":"Integrate Atlas with Stripe to receive payments","icon":"square-dollar","href":"/developer-portal/stripe-integration"}]},{"group":"SDK Documentation","pages":[{"title":"Next.js","icon":"n","href":"/developer-portal/sdk/next"},{"title":"React","icon":"react","href":"/developer-portal/sdk/react"},{"title":"Express","icon":"e","href":"/developer-portal/sdk/express"},{"title":"JavaScript","icon":"js","href":"/developer-portal/sdk/javascript"}]}],"global":{"anchors":[{"anchor":"Application","icon":"server","href":"https://app.runonatlas.com"}]}},{"tab":"Advanced Atlas","pages":[{"title":"Advanced Atlas","href":"/advanced-atlas"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/events/ingest-events"}]}]},"title":"How does Atlas work? - Atlas","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}