VitaSync is an app on your phone with an optional cloud backup behind it. This tab explains the mechanism for curious users and beta testers. It names methods where that helps.
Local first. Every log is written to the phone at once. The app works with no connection. Cloud backup is a background copy, never a step in logging. See Local first.The day is the unit. All your data hangs off one record per calendar day. Storage, backup and merging all work on days. See A day of data.Nothing leaves the phone unasked. Uploading needs one recorded choice, made on this phone. That choice is never copied to the cloud, so restoring a backup cannot switch uploading back on. See Privacy.
A private copy of entries and settings, only once cloud backup is on
Food database
Open Food Facts
Foods and barcodes. It receives your search term, nothing else
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"VitaSync","description":"Help and how-it-works pages for VitaSync, the Android life tracker that shows what moves together.","colors":{"primary":"#059669","light":"#34d399","dark":"#047857"},"logo":{"light":"https://mintcdn.com/azeon-software/NVRot-UaRZMuISHb/logo/light.svg?fit=max\u0026auto=format\u0026n=NVRot-UaRZMuISHb\u0026q=85\u0026s=48b340cb14cc9494e37ec3b3b6361541","dark":"https://mintcdn.com/azeon-software/NVRot-UaRZMuISHb/logo/dark.svg?fit=max\u0026auto=format\u0026n=NVRot-UaRZMuISHb\u0026q=85\u0026s=b95971fca621317c94ac7eae35137d19","href":"https://vitasync.io"},"favicon":"https://mintcdn.com/azeon-software/NVRot-UaRZMuISHb/favicon.svg?fit=max\u0026auto=format\u0026n=NVRot-UaRZMuISHb\u0026q=85\u0026s=0293e5da3be17ce2d1ed7682416069c6","navbar":{"links":[{"href":"mailto:hello@vitasync.io","label":"Contact"}],"primary":{"type":"button","label":"Get early access","href":"https://vitasync.io"}},"footer":{"links":[{"header":"VitaSync","items":[{"label":"Website","href":"https://vitasync.io"},{"label":"Roadmap","href":"https://vitasync.io/roadmap"},{"label":"Guides","href":"https://vitasync.io/guides"}]},{"header":"Trust","items":[{"label":"Privacy policy","href":"https://vitasync.io/privacy"},{"label":"Security","href":"https://vitasync.io/security"},{"label":"Sub-processors","href":"https://vitasync.io/sub-processors"},{"label":"Terms","href":"https://vitasync.io/terms"}]}]},"seo":{"indexing":"navigable"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"vitasync.io","icon":"globe","href":"https://vitasync.io"},{"anchor":"Privacy policy","icon":"shield-halved","href":"https://vitasync.io/privacy"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"azeon-software","hasAudioNarration":false,"actualSubdomain":"azeon-software","customDomains":[],"gitSource":{"type":"github","owner":"azeon-hq","repo":"azeon","deployBranch":"main","contentDirectory":"apps/vitasync-docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ad29cb47d92663cc99694be","clientVersion":"0.0.3869","searchFilterCounts":[]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"editor-v7-file-tree","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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","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":"teamspace","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":"editor-nav-generations","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":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"client-snapshot-docs-config","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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"how-it-works/overview","slug":"/how-it-works/overview","pageMetadata":{"title":"Overview","description":"The parts of VitaSync and what talks to what.","href":"/how-it-works/overview"},"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: \"The parts of VitaSync and what talks to what.\"\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`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Mermaid,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`VitaSync is an app on your phone with an optional cloud backup behind it. This tab explains the mechanism for curious users and beta testers. It names methods where that helps.`}),`\n`,_jsx(Mermaid,{chart:`flowchart LR\n subgraph phone[\"Your Android phone\"]\n direction TB\n app[\"VitaSync app\"]\n store[(\"Encrypted local store\")]\n hc[\"Health Connect\"]\n st[\"Screen time\u003cbr/>(usage access)\"]\n app --> store\n hc -. \"read, with permission\" .-> app\n st -. \"read, with permission\" .-> app\n end\n off[\"Open Food Facts\u003cbr/>food database\"]\n app -. \"search terms\" .-> off\n subgraph cloud[\"Only after you turn on cloud backup\"]\n db[(\"Your private account:\u003cbr/>entries and settings\")]\n end\n store \u003c-. \"changed fields,\u003cbr/>in the background\" .-> db`}),`\n`,_jsx(Heading,{level:`2`,id:`three-ideas-the-design-rests-on`,children:`Three ideas the design rests on`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Local first.`}),` Every log is written to the phone at once. The app works with no connection. Cloud backup is a background copy, never a step in logging. See `,_jsx(_components.a,{href:`/how-it-works/local-first`,children:`Local first`}),`.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`The day is the unit.`}),` All your data hangs off one record per calendar day. Storage, backup and merging all work on days. See `,_jsx(_components.a,{href:`/how-it-works/a-day-of-data`,children:`A day of data`}),`.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Nothing leaves the phone unasked.`}),` Uploading needs one recorded choice, made on this phone. That choice is never copied to the cloud, so restoring a backup cannot switch uploading back on. See `,_jsx(_components.a,{href:`/how-it-works/privacy`,children:`Privacy`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-is-where`,children:`What is where`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Part`}),_jsx(_components.th,{children:`Where it runs`}),_jsx(_components.th,{children:`What it holds`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`VitaSync app`}),_jsx(_components.td,{children:`Your phone`}),_jsx(_components.td,{children:`Logging, Insights, Health Connect reading`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Local store`}),_jsx(_components.td,{children:`Your phone`}),_jsx(_components.td,{children:`Every entry and setting, encrypted`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Your account`}),_jsx(_components.td,{children:`Our server (Supabase)`}),_jsx(_components.td,{children:`A private copy of entries and settings, only once cloud backup is on`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Food database`}),_jsx(_components.td,{children:`Open Food Facts`}),_jsx(_components.td,{children:`Foods and barcodes. It receives your search term, nothing else`})]})]})]})]})}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":"Overview","description":"The parts of VitaSync and what talks to what.","href":"/how-it-works/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Three ideas the design rests on","slug":"three-ideas-the-design-rests-on","depth":2,"children":[]},{"title":"What is where","slug":"what-is-where","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"azeon-software","siteName":"VitaSync","title":"Overview - VitaSync","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-16T21:53:07.599Z","originalFileLocation":"how-it-works/overview.mdx"},"headHtml":"\u003cmeta data-mint-head name=\"description\" content=\"The parts of VitaSync and what talks to what.\">\u003cmeta data-mint-head name=\"application-name\" content=\"VitaSync\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/azeon-software/XZBARjDXZ-zhkKjW/_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/azeon-software/XZBARjDXZ-zhkKjW/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/azeon-software/XZBARjDXZ-zhkKjW/_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/azeon-software/XZBARjDXZ-zhkKjW/_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/azeon-software/XZBARjDXZ-zhkKjW/_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/azeon-software/XZBARjDXZ-zhkKjW/_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/azeon-software/XZBARjDXZ-zhkKjW/_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/azeon-software/XZBARjDXZ-zhkKjW/_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/azeon-software/XZBARjDXZ-zhkKjW/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Overview - VitaSync\">\u003cmeta data-mint-head property=\"og:description\" content=\"The parts of VitaSync and what talks to what.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"VitaSync\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://azeon-software.mintlify.app/how-it-works/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Overview - VitaSync\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The parts of VitaSync and what talks to what.\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/azeon-software/XZBARjDXZ-zhkKjW/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"VitaSync\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#059669\">\u003clink data-mint-head rel=\"canonical\" href=\"https://azeon-software.mintlify.app/how-it-works/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/how-it-works/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://azeon-software.mintlify.app/#organization\",\"name\":\"VitaSync\",\"url\":\"https://azeon-software.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/azeon-software/NVRot-UaRZMuISHb/logo/light.svg?fit=max\u0026auto=format\u0026n=NVRot-UaRZMuISHb\u0026q=85\u0026s=48b340cb14cc9494e37ec3b3b6361541\"}},{\"@type\":\"WebSite\",\"@id\":\"https://azeon-software.mintlify.app#website\",\"name\":\"VitaSync\",\"url\":\"https://azeon-software.mintlify.app\",\"publisher\":{\"@id\":\"https://azeon-software.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://azeon-software.mintlify.app/how-it-works/overview#webpage\",\"url\":\"https://azeon-software.mintlify.app/how-it-works/overview\",\"name\":\"Overview\",\"description\":\"The parts of VitaSync and what talks to what.\",\"dateModified\":\"2026-10-16T21:53:07.599Z\",\"isPartOf\":{\"@id\":\"https://azeon-software.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://azeon-software.mintlify.app/how-it-works/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://azeon-software.mintlify.app/how-it-works/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"VitaSync\",\"item\":\"https://azeon-software.mintlify.app\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Overview\",\"item\":\"https://azeon-software.mintlify.app/how-it-works/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://azeon-software.mintlify.app/how-it-works/overview#article\",\"headline\":\"Overview\",\"name\":\"Overview\",\"description\":\"The parts of VitaSync and what talks to what.\",\"url\":\"https://azeon-software.mintlify.app/how-it-works/overview\",\"mainEntityOfPage\":{\"@id\":\"https://azeon-software.mintlify.app/how-it-works/overview#webpage\"},\"dateModified\":\"2026-10-16T21:53:07.599Z\",\"publisher\":{\"@id\":\"https://azeon-software.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://azeon-software.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"VitaSync\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"VitaSync","nav":{"global":{"anchors":[{"anchor":"vitasync.io","icon":"globe","href":"https://vitasync.io"},{"anchor":"Privacy policy","icon":"shield-halved","href":"https://vitasync.io/privacy"}]},"tabs":[{"tab":"Help","icon":"book-open","pages":[{"title":"Help","href":""}]},{"tab":"How it works","icon":"diagram-project","groups":[{"group":"Under the hood","pages":[{"title":"Overview","description":"The parts of VitaSync and what talks to what.","href":"/how-it-works/overview"},{"title":"A day of data","description":"One record per calendar day, with only the metrics you logged.","href":"/how-it-works/a-day-of-data"},{"title":"Local first","description":"Why logging never waits for the network, and what happens later in the background.","href":"/how-it-works/local-first"},{"title":"Cloud backup","description":"The states your account moves through, and how two phones agree on a day.","href":"/how-it-works/cloud-backup"},{"title":"Where a value comes from","description":"How VitaSync decides between what you typed and what Health Connect sent.","href":"/how-it-works/sources"},{"title":"Privacy","description":"What leaves your phone, when, and who holds it.","href":"/how-it-works/privacy"}]}]}]},"title":"Overview - VitaSync","buildId":"dpl_DMQXxPZd444kjahHSuSB7FkJbKrX","deploymentId":"dpl_DMQXxPZd444kjahHSuSB7FkJbKrX","dynamics":[],"chunks":[]}