vibestats 1.4.2 → 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/index.js +14 -2
  2. package/dist/web/404.html +1 -1
  3. package/dist/web/activity.html +1 -1
  4. package/dist/web/activity.txt +1 -1
  5. package/dist/web/changelog.html +1 -1
  6. package/dist/web/changelog.txt +55 -53
  7. package/dist/web/compare/claude-code-vs-codex-cli-tracking.html +1 -1
  8. package/dist/web/compare/claude-code-vs-codex-cli-tracking.txt +1 -1
  9. package/dist/web/compare/daily-vs-monthly-ai-usage-reports.html +1 -1
  10. package/dist/web/compare/daily-vs-monthly-ai-usage-reports.txt +1 -1
  11. package/dist/web/compare/local-vs-cloud-ai-analytics.html +1 -1
  12. package/dist/web/compare/local-vs-cloud-ai-analytics.txt +1 -1
  13. package/dist/web/compare/manual-tracking-vs-vibestats.html +1 -1
  14. package/dist/web/compare/manual-tracking-vs-vibestats.txt +1 -1
  15. package/dist/web/compare/querystring-shares-vs-stored-share-pages.html +1 -1
  16. package/dist/web/compare/querystring-shares-vs-stored-share-pages.txt +1 -1
  17. package/dist/web/compare/session-breakdown-vs-model-breakdown.html +1 -1
  18. package/dist/web/compare/session-breakdown-vs-model-breakdown.txt +1 -1
  19. package/dist/web/compare/single-source-vs-combined-tracking.html +1 -1
  20. package/dist/web/compare/single-source-vs-combined-tracking.txt +1 -1
  21. package/dist/web/compare/terminal-table-vs-json-output.html +1 -1
  22. package/dist/web/compare/terminal-table-vs-json-output.txt +1 -1
  23. package/dist/web/compare/token-volume-vs-cost-estimation.html +1 -1
  24. package/dist/web/compare/token-volume-vs-cost-estimation.txt +1 -1
  25. package/dist/web/compare/wrapped-vs-activity-heatmap.html +1 -1
  26. package/dist/web/compare/wrapped-vs-activity-heatmap.txt +1 -1
  27. package/dist/web/compare.html +1 -1
  28. package/dist/web/compare.txt +1 -1
  29. package/dist/web/dashboard/activity.html +1 -1
  30. package/dist/web/dashboard/activity.txt +1 -1
  31. package/dist/web/dashboard/usage.html +1 -1
  32. package/dist/web/dashboard/usage.txt +1 -1
  33. package/dist/web/dashboard/wrapped.html +1 -1
  34. package/dist/web/dashboard/wrapped.txt +1 -1
  35. package/dist/web/dashboard.html +1 -1
  36. package/dist/web/dashboard.txt +1 -1
  37. package/dist/web/docs/commands.html +1 -1
  38. package/dist/web/docs/commands.txt +1 -1
  39. package/dist/web/docs.html +1 -1
  40. package/dist/web/docs.txt +1 -1
  41. package/dist/web/features/ai-coding-activity-heatmap.html +1 -1
  42. package/dist/web/features/ai-coding-activity-heatmap.txt +1 -1
  43. package/dist/web/features/ai-coding-wrapped.html +1 -1
  44. package/dist/web/features/ai-coding-wrapped.txt +1 -1
  45. package/dist/web/features/claude-code-stats.html +1 -1
  46. package/dist/web/features/claude-code-stats.txt +1 -1
  47. package/dist/web/features/claude-diagnostics.html +1 -1
  48. package/dist/web/features/claude-diagnostics.txt +1 -1
  49. package/dist/web/features/codex-cli-stats.html +1 -1
  50. package/dist/web/features/codex-cli-stats.txt +1 -1
  51. package/dist/web/features/combined-ai-coding-stats.html +1 -1
  52. package/dist/web/features/combined-ai-coding-stats.txt +1 -1
  53. package/dist/web/features/json-and-automation-exports.html +1 -1
  54. package/dist/web/features/json-and-automation-exports.txt +1 -1
  55. package/dist/web/features/model-breakdown.html +1 -1
  56. package/dist/web/features/model-breakdown.txt +1 -1
  57. package/dist/web/features/privacy-first-analytics.html +1 -1
  58. package/dist/web/features/privacy-first-analytics.txt +1 -1
  59. package/dist/web/features/session-breakdown.html +1 -1
  60. package/dist/web/features/session-breakdown.txt +1 -1
  61. package/dist/web/features/share-pages.html +1 -1
  62. package/dist/web/features/share-pages.txt +1 -1
  63. package/dist/web/features/token-and-cost-tracking.html +1 -1
  64. package/dist/web/features/token-and-cost-tracking.txt +1 -1
  65. package/dist/web/features.html +1 -1
  66. package/dist/web/features.txt +1 -1
  67. package/dist/web/guides/how-to-build-ai-activity-heatmap.html +1 -1
  68. package/dist/web/guides/how-to-build-ai-activity-heatmap.txt +1 -1
  69. package/dist/web/guides/how-to-compare-model-usage.html +1 -1
  70. package/dist/web/guides/how-to-compare-model-usage.txt +1 -1
  71. package/dist/web/guides/how-to-create-ai-coding-wrapped.html +1 -1
  72. package/dist/web/guides/how-to-create-ai-coding-wrapped.txt +1 -1
  73. package/dist/web/guides/how-to-measure-ai-token-costs.html +1 -1
  74. package/dist/web/guides/how-to-measure-ai-token-costs.txt +1 -1
  75. package/dist/web/guides/how-to-read-claude-diagnostics.html +1 -1
  76. package/dist/web/guides/how-to-read-claude-diagnostics.txt +1 -1
  77. package/dist/web/guides/how-to-share-ai-coding-stats.html +1 -1
  78. package/dist/web/guides/how-to-share-ai-coding-stats.txt +1 -1
  79. package/dist/web/guides/how-to-track-claude-code-usage.html +1 -1
  80. package/dist/web/guides/how-to-track-claude-code-usage.txt +1 -1
  81. package/dist/web/guides/how-to-track-codex-cli-usage.html +1 -1
  82. package/dist/web/guides/how-to-track-codex-cli-usage.txt +1 -1
  83. package/dist/web/guides.html +1 -1
  84. package/dist/web/guides.txt +1 -1
  85. package/dist/web/index.html +1 -1
  86. package/dist/web/index.txt +1 -1
  87. package/dist/web/sitemap.xml +46 -46
  88. package/dist/web/use-cases/ai-agencies.html +1 -1
  89. package/dist/web/use-cases/ai-agencies.txt +1 -1
  90. package/dist/web/use-cases/consultants.html +1 -1
  91. package/dist/web/use-cases/consultants.txt +1 -1
  92. package/dist/web/use-cases/engineering-managers.html +1 -1
  93. package/dist/web/use-cases/engineering-managers.txt +1 -1
  94. package/dist/web/use-cases/freelancers.html +1 -1
  95. package/dist/web/use-cases/freelancers.txt +1 -1
  96. package/dist/web/use-cases/indie-hackers.html +1 -1
  97. package/dist/web/use-cases/indie-hackers.txt +1 -1
  98. package/dist/web/use-cases/monthly-reporting.html +1 -1
  99. package/dist/web/use-cases/monthly-reporting.txt +1 -1
  100. package/dist/web/use-cases/open-source-maintainers.html +1 -1
  101. package/dist/web/use-cases/open-source-maintainers.txt +1 -1
  102. package/dist/web/use-cases/personal-retrospectives.html +1 -1
  103. package/dist/web/use-cases/personal-retrospectives.txt +1 -1
  104. package/dist/web/use-cases/researchers.html +1 -1
  105. package/dist/web/use-cases/researchers.txt +1 -1
  106. package/dist/web/use-cases/weekly-reviews.html +1 -1
  107. package/dist/web/use-cases/weekly-reviews.txt +1 -1
  108. package/dist/web/use-cases.html +1 -1
  109. package/dist/web/use-cases.txt +1 -1
  110. package/dist/web/wrapped.html +1 -1
  111. package/dist/web/wrapped.txt +1 -1
  112. package/package.json +7 -8
  113. /package/dist/web/_next/static/{3pcP-Y7gHe02EnmTXxc9b → aQYb4B4UpDj-CZ4C2kvCF}/_buildManifest.js +0 -0
  114. /package/dist/web/_next/static/{3pcP-Y7gHe02EnmTXxc9b → aQYb4B4UpDj-CZ4C2kvCF}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><!--3pcP_Y7gHe02EnmTXxc9b--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/335de1248158d380.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-175b2f5685d7557b.js"/><script src="/_next/static/chunks/c476d598-9099ed8b975ae1d6.js" async=""></script><script src="/_next/static/chunks/498-74a3a367cb8442f0.js" async=""></script><script src="/_next/static/chunks/main-app-6619364ab1f13fb7.js" async=""></script><script src="/_next/static/chunks/app/layout-6ebd9b17af55ec02.js" async=""></script><script src="/_next/static/chunks/816-8960921093d57453.js" async=""></script><script src="/_next/static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Local vs cloud AI analytics | vibestats</title><meta name="description" content="Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,local vs cloud AI analytics,privacy first developer analytics,local AI usage tracker"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"/><meta property="og:title" content="Local vs cloud AI analytics | vibestats"/><meta property="og:description" content="Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"/><meta property="og:site_name" content="vibestats"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Local vs cloud AI analytics | vibestats"/><meta name="twitter:description" content="Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">[{"@context":"https://schema.org","@type":"WebPage","name":"Local vs cloud AI analytics","description":"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.","url":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Local vs cloud AI analytics","item":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Local-first analytics or Cloud dashboards?","acceptedAnswer":{"@type":"Answer","text":"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><div class="flex flex-wrap items-center gap-3 text-sm text-slate-500"><a class="transition hover:text-orange-700" href="/">vibestats</a><span>/</span><a class="transition hover:text-orange-700" href="/compare">Compare</a><span>/</span><span class="text-slate-700">Local vs cloud AI analytics</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Local vs cloud AI analytics</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.</p><div class="mt-6 grid gap-3 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Intent</div><div class="mt-2 text-sm leading-6 text-slate-700">Comparison</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Focus</div><div class="mt-2 text-sm leading-6 text-slate-700">This comparison is mostly about data boundaries and operating model, not about one side being universally better.</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Next step</div><div class="mt-2 text-sm leading-6 text-slate-700"><a class="text-slate-900 transition hover:text-orange-700" href="/docs/commands">Open the command reference</a></div></div></div></header><section class="mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Highlights</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>Local-first analytics and Cloud dashboards solve different reporting jobs.</li><li>Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Relevant commands</p><div class="mt-4 grid gap-3"><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --json</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --share</code></div></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><div class="mt-5 overflow-x-auto"><table class="min-w-full border-separate border-spacing-y-3 text-left text-sm"><thead><tr class="text-slate-500"><th class="px-4 py-2 font-medium">Dimension</th><th class="px-4 py-2 font-medium">Left side</th><th class="px-4 py-2 font-medium">Right side</th></tr></thead><tbody><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Data path</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Local artifacts stay on your machine until you choose to share aggregate output.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Raw or semi-raw usage often leaves the device by default.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Setup</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Fast for solo developers who already have local session data.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Useful when a team wants one hosted surface with centralized access.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Privacy</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Better when prompts, responses, and project paths should not leave the local environment.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Useful when collaboration beats strict local-only defaults.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Reporting shape</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Strong for centralized dashboards and multi-user permissions.</td></tr></tbody></table></div></section><section class="mt-6 grid gap-4 md:grid-cols-2"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Local-first analytics wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Data path: Local artifacts stay on your machine until you choose to share aggregate output. Setup: Fast for solo developers who already have local session data. Privacy: Better when prompts, responses, and project paths should not leave the local environment. Reporting shape: Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Cloud dashboards wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Data path: Raw or semi-raw usage often leaves the device by default. Setup: Useful when a team wants one hosted surface with centralized access. Privacy: Useful when collaboration beats strict local-only defaults. Reporting shape: Strong for centralized dashboards and multi-user permissions.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Decision rule</h2><p class="mt-4 text-sm leading-7 text-slate-600">Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.</p></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">FAQ</p><div class="mt-4 grid gap-4 md:grid-cols-2"><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Should I choose Local-first analytics or Cloud dashboards?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Is this comparison about replacing everything with one report?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.</p></article></div></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="flex items-center justify-between gap-4"><div><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Related pages</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Continue by intent</h2></div><a class="text-sm font-medium text-slate-700 transition hover:text-orange-700" href="/compare">View all <!-- -->compare</a></div><div class="mt-5 grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/privacy-first-analytics"><span class="block font-semibold text-slate-950">features privacy-first-analytics</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/share-pages"><span class="block font-semibold text-slate-950">features share-pages</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/use-cases/consultants"><span class="block font-semibold text-slate-950">use-cases consultants</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a></div></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n6:I[496,[],\"OutletBoundary\"]\n8:I[3737,[],\"AsyncMetadataOutlet\"]\na:I[496,[],\"ViewportBoundary\"]\nc:I[496,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"3pcP-Y7gHe02EnmTXxc9b\",\"p\":\"\",\"c\":[\"\",\"compare\",\"local-vs-cloud-ai-analytics\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"local-vs-cloud-ai-analytics\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/335de1248158d380.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-config\",\"strategy\":\"beforeInteractive\",\"children\":\"window.WOLF_ANALYTICS_CONFIG = {\\\"apiUrl\\\":\\\"https://analapi.wolfai.dev\\\",\\\"projectApiKey\\\":\\\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\\\",\\\"mode\\\":\\\"intl\\\",\\\"sourceApp\\\":\\\"vibestats\\\"};\"}],[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-script\",\"src\":\"https://analytics.wolfai.dev/wolf-analytics.min.js\",\"strategy\":\"beforeInteractive\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased min-h-screen bg-background text-foreground\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"compare\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"slug\",\"local-vs-cloud-ai-analytics\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"11:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"874\",\"static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5d9,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Local vs cloud AI analytics\",\"description\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\",\"url\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\",\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"vibestats\",\"url\":\"https://vibestats.wolfai.dev/\"}},{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"vibestats\",\"item\":\"https://vibestats.wolfai.dev/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compare\",\"item\":\"https://vibestats.wolfai.dev/compare\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Local vs cloud AI analytics\",\"item\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Local-first analytics or Cloud dashboards?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}},{\"@type\":\"Question\",\"name\":\"Is this comparison about replacing everything with one report?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}}]}]"])</script><script>self.__next_f.push([1,"5:[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$10\"}}],[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-3 text-sm text-slate-500\",\"children\":[[\"$\",\"$L11\",null,{\"href\":\"/\",\"className\":\"transition hover:text-orange-700\",\"children\":\"vibestats\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Compare\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Local vs cloud AI analytics\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl\",\"children\":\"Local vs cloud AI analytics\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Intent\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Comparison\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Focus\"}],\"$L12\"]}],\"$L13\"]}]]}],\"$L14\",null,\"$L15\",\"$L16\",\"$L17\",\"$L18\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"This comparison is mostly about data boundaries and operating model, not about one side being universally better.\"}]\n13:[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Next step\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":[\"$\",\"$L11\",null,{\"href\":\"/docs/commands\",\"className\":\"text-slate-900 transition hover:text-orange-700\",\"children\":\"Open the command reference\"}]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Highlights\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"Local-first analytics and Cloud dashboards solve different reporting jobs.\",{\"children\":\"Local-first analytics and Cloud dashboards solve different reporting jobs.\"}],[\"$\",\"li\",\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\",{\"children\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}],[\"$\",\"li\",\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\",{\"children\":\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Relevant commands\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-3\",\"children\":[[\"$\",\"code\",\"npx vibestats --json\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --json\"}],[\"$\",\"code\",\"npx vibestats --share\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --share\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"min-w-full border-separate border-spacing-y-3 text-left text-sm\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"text-slate-500\",\"children\":[[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Dimension\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Left side\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Right side\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Data path\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Data path\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Local artifacts stay on your machine until you choose to share aggregate output.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Raw or semi-raw usage often leaves the device by default.\"}]]}],[\"$\",\"tr\",\"Setup\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Setup\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Fast for solo developers who already have local session data.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Useful when a team wants one hosted surface with centralized access.\"}]]}],[\"$\",\"tr\",\"Privacy\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Privacy\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Better when prompts, responses, and project paths should not leave the local environment.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Useful when collaboration beats strict local-only defaults.\"}]]}],[\"$\",\"tr\",\"Reporting shape\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Reporting shape\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Strong for centralized dashboards and multi-user permissions.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Local-first analytics wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Local-first analytics wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Data path: Local artifacts stay on your machine until you choose to share aggregate output. Setup: Fast for solo developers who already have local session data. Privacy: Better when prompts, responses, and project paths should not leave the local environment. Reporting shape: Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.\"}]]}],[\"$\",\"article\",\"Where Cloud dashboards wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Cloud dashboards wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Data path: Raw or semi-raw usage often leaves the device by default. Setup: Useful when a team wants one hosted surface with centralized access. Privacy: Useful when collaboration beats strict local-only defaults. Reporting shape: Strong for centralized dashboards and multi-user permissions.\"}]]}],[\"$\",\"article\",\"Decision rule\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Decision rule\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"FAQ\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Should I choose Local-first analytics or Cloud dashboards?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Should I choose Local-first analytics or Cloud dashboards?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}]]}],[\"$\",\"article\",\"Is this comparison about replacing everything with one report?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Is this comparison about replacing everything with one report?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Related pages\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Continue by intent\"}]]}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"compare\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/features/privacy-first-analytics\",{\"href\":\"/features/privacy-first-analytics\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features privacy-first-analytics\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/share-pages\",{\"href\":\"/features/share-pages\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features share-pages\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/use-cases/consultants\",{\"href\":\"/use-cases/consultants\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"use-cases consultants\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Local vs cloud AI analytics | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,local vs cloud AI analytics,privacy first developer analytics,local AI usage tracker\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Local vs cloud AI analytics | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"Local vs cloud AI analytics | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--aQYb4B4UpDj_CZ4C2kvCF--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/335de1248158d380.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-175b2f5685d7557b.js"/><script src="/_next/static/chunks/c476d598-9099ed8b975ae1d6.js" async=""></script><script src="/_next/static/chunks/498-74a3a367cb8442f0.js" async=""></script><script src="/_next/static/chunks/main-app-6619364ab1f13fb7.js" async=""></script><script src="/_next/static/chunks/app/layout-6ebd9b17af55ec02.js" async=""></script><script src="/_next/static/chunks/816-8960921093d57453.js" async=""></script><script src="/_next/static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Local vs cloud AI analytics | vibestats</title><meta name="description" content="Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,local vs cloud AI analytics,privacy first developer analytics,local AI usage tracker"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"/><meta property="og:title" content="Local vs cloud AI analytics | vibestats"/><meta property="og:description" content="Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"/><meta property="og:site_name" content="vibestats"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Local vs cloud AI analytics | vibestats"/><meta name="twitter:description" content="Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">[{"@context":"https://schema.org","@type":"WebPage","name":"Local vs cloud AI analytics","description":"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.","url":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Local vs cloud AI analytics","item":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Local-first analytics or Cloud dashboards?","acceptedAnswer":{"@type":"Answer","text":"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><div class="flex flex-wrap items-center gap-3 text-sm text-slate-500"><a class="transition hover:text-orange-700" href="/">vibestats</a><span>/</span><a class="transition hover:text-orange-700" href="/compare">Compare</a><span>/</span><span class="text-slate-700">Local vs cloud AI analytics</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Local vs cloud AI analytics</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.</p><div class="mt-6 grid gap-3 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Intent</div><div class="mt-2 text-sm leading-6 text-slate-700">Comparison</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Focus</div><div class="mt-2 text-sm leading-6 text-slate-700">This comparison is mostly about data boundaries and operating model, not about one side being universally better.</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Next step</div><div class="mt-2 text-sm leading-6 text-slate-700"><a class="text-slate-900 transition hover:text-orange-700" href="/docs/commands">Open the command reference</a></div></div></div></header><section class="mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Highlights</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>Local-first analytics and Cloud dashboards solve different reporting jobs.</li><li>Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Relevant commands</p><div class="mt-4 grid gap-3"><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --json</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --share</code></div></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><div class="mt-5 overflow-x-auto"><table class="min-w-full border-separate border-spacing-y-3 text-left text-sm"><thead><tr class="text-slate-500"><th class="px-4 py-2 font-medium">Dimension</th><th class="px-4 py-2 font-medium">Left side</th><th class="px-4 py-2 font-medium">Right side</th></tr></thead><tbody><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Data path</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Local artifacts stay on your machine until you choose to share aggregate output.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Raw or semi-raw usage often leaves the device by default.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Setup</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Fast for solo developers who already have local session data.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Useful when a team wants one hosted surface with centralized access.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Privacy</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Better when prompts, responses, and project paths should not leave the local environment.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Useful when collaboration beats strict local-only defaults.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Reporting shape</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Strong for centralized dashboards and multi-user permissions.</td></tr></tbody></table></div></section><section class="mt-6 grid gap-4 md:grid-cols-2"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Local-first analytics wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Data path: Local artifacts stay on your machine until you choose to share aggregate output. Setup: Fast for solo developers who already have local session data. Privacy: Better when prompts, responses, and project paths should not leave the local environment. Reporting shape: Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Cloud dashboards wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Data path: Raw or semi-raw usage often leaves the device by default. Setup: Useful when a team wants one hosted surface with centralized access. Privacy: Useful when collaboration beats strict local-only defaults. Reporting shape: Strong for centralized dashboards and multi-user permissions.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Decision rule</h2><p class="mt-4 text-sm leading-7 text-slate-600">Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.</p></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">FAQ</p><div class="mt-4 grid gap-4 md:grid-cols-2"><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Should I choose Local-first analytics or Cloud dashboards?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Is this comparison about replacing everything with one report?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.</p></article></div></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="flex items-center justify-between gap-4"><div><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Related pages</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Continue by intent</h2></div><a class="text-sm font-medium text-slate-700 transition hover:text-orange-700" href="/compare">View all <!-- -->compare</a></div><div class="mt-5 grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/privacy-first-analytics"><span class="block font-semibold text-slate-950">features privacy-first-analytics</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/share-pages"><span class="block font-semibold text-slate-950">features share-pages</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/use-cases/consultants"><span class="block font-semibold text-slate-950">use-cases consultants</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a></div></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n6:I[496,[],\"OutletBoundary\"]\n8:I[3737,[],\"AsyncMetadataOutlet\"]\na:I[496,[],\"ViewportBoundary\"]\nc:I[496,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"aQYb4B4UpDj-CZ4C2kvCF\",\"p\":\"\",\"c\":[\"\",\"compare\",\"local-vs-cloud-ai-analytics\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"local-vs-cloud-ai-analytics\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/335de1248158d380.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-config\",\"strategy\":\"beforeInteractive\",\"children\":\"window.WOLF_ANALYTICS_CONFIG = {\\\"apiUrl\\\":\\\"https://analapi.wolfai.dev\\\",\\\"projectApiKey\\\":\\\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\\\",\\\"mode\\\":\\\"intl\\\",\\\"sourceApp\\\":\\\"vibestats\\\"};\"}],[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-script\",\"src\":\"https://analytics.wolfai.dev/wolf-analytics.min.js\",\"strategy\":\"beforeInteractive\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased min-h-screen bg-background text-foreground\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"compare\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"slug\",\"local-vs-cloud-ai-analytics\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"11:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"874\",\"static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5d9,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Local vs cloud AI analytics\",\"description\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\",\"url\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\",\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"vibestats\",\"url\":\"https://vibestats.wolfai.dev/\"}},{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"vibestats\",\"item\":\"https://vibestats.wolfai.dev/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compare\",\"item\":\"https://vibestats.wolfai.dev/compare\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Local vs cloud AI analytics\",\"item\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Local-first analytics or Cloud dashboards?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}},{\"@type\":\"Question\",\"name\":\"Is this comparison about replacing everything with one report?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}}]}]"])</script><script>self.__next_f.push([1,"5:[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$10\"}}],[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-3 text-sm text-slate-500\",\"children\":[[\"$\",\"$L11\",null,{\"href\":\"/\",\"className\":\"transition hover:text-orange-700\",\"children\":\"vibestats\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Compare\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Local vs cloud AI analytics\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl\",\"children\":\"Local vs cloud AI analytics\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Intent\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Comparison\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Focus\"}],\"$L12\"]}],\"$L13\"]}]]}],\"$L14\",null,\"$L15\",\"$L16\",\"$L17\",\"$L18\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"This comparison is mostly about data boundaries and operating model, not about one side being universally better.\"}]\n13:[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Next step\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":[\"$\",\"$L11\",null,{\"href\":\"/docs/commands\",\"className\":\"text-slate-900 transition hover:text-orange-700\",\"children\":\"Open the command reference\"}]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Highlights\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"Local-first analytics and Cloud dashboards solve different reporting jobs.\",{\"children\":\"Local-first analytics and Cloud dashboards solve different reporting jobs.\"}],[\"$\",\"li\",\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\",{\"children\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}],[\"$\",\"li\",\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\",{\"children\":\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Relevant commands\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-3\",\"children\":[[\"$\",\"code\",\"npx vibestats --json\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --json\"}],[\"$\",\"code\",\"npx vibestats --share\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --share\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"min-w-full border-separate border-spacing-y-3 text-left text-sm\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"text-slate-500\",\"children\":[[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Dimension\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Left side\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Right side\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Data path\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Data path\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Local artifacts stay on your machine until you choose to share aggregate output.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Raw or semi-raw usage often leaves the device by default.\"}]]}],[\"$\",\"tr\",\"Setup\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Setup\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Fast for solo developers who already have local session data.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Useful when a team wants one hosted surface with centralized access.\"}]]}],[\"$\",\"tr\",\"Privacy\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Privacy\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Better when prompts, responses, and project paths should not leave the local environment.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Useful when collaboration beats strict local-only defaults.\"}]]}],[\"$\",\"tr\",\"Reporting shape\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Reporting shape\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Strong for centralized dashboards and multi-user permissions.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Local-first analytics wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Local-first analytics wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Data path: Local artifacts stay on your machine until you choose to share aggregate output. Setup: Fast for solo developers who already have local session data. Privacy: Better when prompts, responses, and project paths should not leave the local environment. Reporting shape: Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.\"}]]}],[\"$\",\"article\",\"Where Cloud dashboards wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Cloud dashboards wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Data path: Raw or semi-raw usage often leaves the device by default. Setup: Useful when a team wants one hosted surface with centralized access. Privacy: Useful when collaboration beats strict local-only defaults. Reporting shape: Strong for centralized dashboards and multi-user permissions.\"}]]}],[\"$\",\"article\",\"Decision rule\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Decision rule\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"FAQ\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Should I choose Local-first analytics or Cloud dashboards?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Should I choose Local-first analytics or Cloud dashboards?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}]]}],[\"$\",\"article\",\"Is this comparison about replacing everything with one report?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Is this comparison about replacing everything with one report?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Related pages\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Continue by intent\"}]]}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"compare\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/features/privacy-first-analytics\",{\"href\":\"/features/privacy-first-analytics\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features privacy-first-analytics\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/share-pages\",{\"href\":\"/features/share-pages\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features share-pages\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/use-cases/consultants\",{\"href\":\"/use-cases/consultants\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"use-cases consultants\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Local vs cloud AI analytics | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,local vs cloud AI analytics,privacy first developer analytics,local AI usage tracker\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Local vs cloud AI analytics | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"Local vs cloud AI analytics | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
@@ -9,7 +9,7 @@ c:I[496,[],"MetadataBoundary"]
9
9
  d:"$Sreact.suspense"
10
10
  f:I[2207,[],""]
11
11
  :HL["/_next/static/css/335de1248158d380.css","style"]
12
- 0:{"P":null,"b":"3pcP-Y7gHe02EnmTXxc9b","p":"","c":["","compare","local-vs-cloud-ai-analytics"],"i":false,"f":[[["",{"children":["compare",{"children":[["slug","local-vs-cloud-ai-analytics","d"],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/335de1248158d380.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":[["$","head",null,{"children":[["$","$L2",null,{"id":"wolf-analytics-config","strategy":"beforeInteractive","children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};"}],["$","$L2",null,{"id":"wolf-analytics-script","src":"https://analytics.wolfai.dev/wolf-analytics.min.js","strategy":"beforeInteractive"}]]}],["$","body",null,{"className":"antialiased min-h-screen bg-background text-foreground","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":["compare",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["slug","local-vs-cloud-ai-analytics","d"],["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":["$L5",null,["$","$L6",null,{"children":["$L7",["$","$L8",null,{"promise":"$@9"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$La",null,{"children":"$Lb"}],null],["$","$Lc",null,{"children":["$","div",null,{"hidden":true,"children":["$","$d",null,{"fallback":null,"children":"$Le"}]}]}]]}],false]],"m":"$undefined","G":["$f",[]],"s":false,"S":true}
12
+ 0:{"P":null,"b":"aQYb4B4UpDj-CZ4C2kvCF","p":"","c":["","compare","local-vs-cloud-ai-analytics"],"i":false,"f":[[["",{"children":["compare",{"children":[["slug","local-vs-cloud-ai-analytics","d"],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/335de1248158d380.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":[["$","head",null,{"children":[["$","$L2",null,{"id":"wolf-analytics-config","strategy":"beforeInteractive","children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};"}],["$","$L2",null,{"id":"wolf-analytics-script","src":"https://analytics.wolfai.dev/wolf-analytics.min.js","strategy":"beforeInteractive"}]]}],["$","body",null,{"className":"antialiased min-h-screen bg-background text-foreground","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":["compare",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["slug","local-vs-cloud-ai-analytics","d"],["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":["$L5",null,["$","$L6",null,{"children":["$L7",["$","$L8",null,{"promise":"$@9"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$La",null,{"children":"$Lb"}],null],["$","$Lc",null,{"children":["$","div",null,{"hidden":true,"children":["$","$d",null,{"fallback":null,"children":"$Le"}]}]}]]}],false]],"m":"$undefined","G":["$f",[]],"s":false,"S":true}
13
13
  11:I[4816,["816","static/chunks/816-8960921093d57453.js","874","static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
14
14
  10:T5d9,[{"@context":"https://schema.org","@type":"WebPage","name":"Local vs cloud AI analytics","description":"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.","url":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Local vs cloud AI analytics","item":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Local-first analytics or Cloud dashboards?","acceptedAnswer":{"@type":"Answer","text":"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]5:["$","main",null,{"className":"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"$10"}}],["$","div",null,{"className":"mx-auto max-w-7xl","children":[["$","header",null,{"className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-3 text-sm text-slate-500","children":[["$","$L11",null,{"href":"/","className":"transition hover:text-orange-700","children":"vibestats"}],["$","span",null,{"children":"/"}],["$","$L11",null,{"href":"/compare","className":"transition hover:text-orange-700","children":"Compare"}],["$","span",null,{"children":"/"}],["$","span",null,{"className":"text-slate-700","children":"Local vs cloud AI analytics"}]]}],["$","p",null,{"className":"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Comparison"}],["$","h1",null,{"className":"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl","children":"Local vs cloud AI analytics"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better."}],["$","div",null,{"className":"mt-6 grid gap-3 md:grid-cols-3","children":[["$","div",null,{"className":"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4","children":[["$","div",null,{"className":"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Intent"}],["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":"Comparison"}]]}],["$","div",null,{"className":"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4","children":[["$","div",null,{"className":"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Focus"}],"$L12"]}],"$L13"]}]]}],"$L14",null,"$L15","$L16","$L17","$L18"]}]]}]
15
15
  12:["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":"This comparison is mostly about data boundaries and operating model, not about one side being universally better."}]
@@ -1 +1 @@
1
- <!DOCTYPE html><!--3pcP_Y7gHe02EnmTXxc9b--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/335de1248158d380.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-175b2f5685d7557b.js"/><script src="/_next/static/chunks/c476d598-9099ed8b975ae1d6.js" async=""></script><script src="/_next/static/chunks/498-74a3a367cb8442f0.js" async=""></script><script src="/_next/static/chunks/main-app-6619364ab1f13fb7.js" async=""></script><script src="/_next/static/chunks/app/layout-6ebd9b17af55ec02.js" async=""></script><script src="/_next/static/chunks/816-8960921093d57453.js" async=""></script><script src="/_next/static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Manual tracking vs vibestats | vibestats</title><meta name="description" content="Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,manual tracking vs vibestats,AI usage spreadsheet alternative,developer analytics alternative"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats"/><meta property="og:title" content="Manual tracking vs vibestats | vibestats"/><meta property="og:description" content="Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats"/><meta property="og:site_name" content="vibestats"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Manual tracking vs vibestats | vibestats"/><meta name="twitter:description" content="Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">[{"@context":"https://schema.org","@type":"WebPage","name":"Manual tracking vs vibestats","description":"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.","url":"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Manual tracking vs vibestats","item":"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Manual tracking or vibestats?","acceptedAnswer":{"@type":"Answer","text":"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><div class="flex flex-wrap items-center gap-3 text-sm text-slate-500"><a class="transition hover:text-orange-700" href="/">vibestats</a><span>/</span><a class="transition hover:text-orange-700" href="/compare">Compare</a><span>/</span><span class="text-slate-700">Manual tracking vs vibestats</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Manual tracking vs vibestats</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.</p><div class="mt-6 grid gap-3 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Intent</div><div class="mt-2 text-sm leading-6 text-slate-700">Comparison</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Focus</div><div class="mt-2 text-sm leading-6 text-slate-700">Manual tracking is cheap to start and expensive to maintain.</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Next step</div><div class="mt-2 text-sm leading-6 text-slate-700"><a class="text-slate-900 transition hover:text-orange-700" href="/docs/commands">Open the command reference</a></div></div></div></header><section class="mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Highlights</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>Manual tracking and vibestats solve different reporting jobs.</li><li>Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Relevant commands</p><div class="mt-4 grid gap-3"><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --wrapped</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --json</code></div></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><div class="mt-5 overflow-x-auto"><table class="min-w-full border-separate border-spacing-y-3 text-left text-sm"><thead><tr class="text-slate-500"><th class="px-4 py-2 font-medium">Dimension</th><th class="px-4 py-2 font-medium">Left side</th><th class="px-4 py-2 font-medium">Right side</th></tr></thead><tbody><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Setup</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Flexible, but repetitive and easy to abandon.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Needs the CLI workflow, but reporting becomes repeatable.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Accuracy</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Depends on discipline and manual copying.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Derived from local usage artifacts.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Reporting</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Usually one-off tables or notes.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Tables, model breakdowns, wrapped pages, activity heatmaps, and shares.</td></tr></tbody></table></div></section><section class="mt-6 grid gap-4 md:grid-cols-2"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Manual tracking wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Setup: Flexible, but repetitive and easy to abandon. Accuracy: Depends on discipline and manual copying. Reporting: Usually one-off tables or notes.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where vibestats wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Setup: Needs the CLI workflow, but reporting becomes repeatable. Accuracy: Derived from local usage artifacts. Reporting: Tables, model breakdowns, wrapped pages, activity heatmaps, and shares.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Decision rule</h2><p class="mt-4 text-sm leading-7 text-slate-600">Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.</p></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">FAQ</p><div class="mt-4 grid gap-4 md:grid-cols-2"><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Should I choose Manual tracking or vibestats?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Is this comparison about replacing everything with one report?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.</p></article></div></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="flex items-center justify-between gap-4"><div><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Related pages</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Continue by intent</h2></div><a class="text-sm font-medium text-slate-700 transition hover:text-orange-700" href="/compare">View all <!-- -->compare</a></div><div class="mt-5 grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/json-and-automation-exports"><span class="block font-semibold text-slate-950">features json-and-automation-exports</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/use-cases/freelancers"><span class="block font-semibold text-slate-950">use-cases freelancers</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/use-cases/monthly-reporting"><span class="block font-semibold text-slate-950">use-cases monthly-reporting</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a></div></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n6:I[496,[],\"OutletBoundary\"]\n8:I[3737,[],\"AsyncMetadataOutlet\"]\na:I[496,[],\"ViewportBoundary\"]\nc:I[496,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"3pcP-Y7gHe02EnmTXxc9b\",\"p\":\"\",\"c\":[\"\",\"compare\",\"manual-tracking-vs-vibestats\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"manual-tracking-vs-vibestats\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/335de1248158d380.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-config\",\"strategy\":\"beforeInteractive\",\"children\":\"window.WOLF_ANALYTICS_CONFIG = {\\\"apiUrl\\\":\\\"https://analapi.wolfai.dev\\\",\\\"projectApiKey\\\":\\\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\\\",\\\"mode\\\":\\\"intl\\\",\\\"sourceApp\\\":\\\"vibestats\\\"};\"}],[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-script\",\"src\":\"https://analytics.wolfai.dev/wolf-analytics.min.js\",\"strategy\":\"beforeInteractive\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased min-h-screen bg-background text-foreground\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"compare\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"slug\",\"manual-tracking-vs-vibestats\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"11:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"874\",\"static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5b0,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Manual tracking vs vibestats\",\"description\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\",\"url\":\"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats\",\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"vibestats\",\"url\":\"https://vibestats.wolfai.dev/\"}},{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"vibestats\",\"item\":\"https://vibestats.wolfai.dev/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compare\",\"item\":\"https://vibestats.wolfai.dev/compare\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Manual tracking vs vibestats\",\"item\":\"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Manual tracking or vibestats?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\"}},{\"@type\":\"Question\",\"name\":\"Is this comparison about replacing everything with one report?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}}]}]"])</script><script>self.__next_f.push([1,"5:[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$10\"}}],[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-3 text-sm text-slate-500\",\"children\":[[\"$\",\"$L11\",null,{\"href\":\"/\",\"className\":\"transition hover:text-orange-700\",\"children\":\"vibestats\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Compare\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Manual tracking vs vibestats\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl\",\"children\":\"Manual tracking vs vibestats\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Intent\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Comparison\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Focus\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Manual tracking is cheap to start and expensive to maintain.\"}]]}],\"$L12\"]}]]}],\"$L13\",null,\"$L14\",\"$L15\",\"$L16\",\"$L17\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Next step\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":[\"$\",\"$L11\",null,{\"href\":\"/docs/commands\",\"className\":\"text-slate-900 transition hover:text-orange-700\",\"children\":\"Open the command reference\"}]}]]}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Highlights\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"Manual tracking and vibestats solve different reporting jobs.\",{\"children\":\"Manual tracking and vibestats solve different reporting jobs.\"}],[\"$\",\"li\",\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\",{\"children\":\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\"}],[\"$\",\"li\",\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\",{\"children\":\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Relevant commands\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-3\",\"children\":[[\"$\",\"code\",\"npx vibestats\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats\"}],[\"$\",\"code\",\"npx vibestats --wrapped\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --wrapped\"}],[\"$\",\"code\",\"npx vibestats --json\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --json\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"min-w-full border-separate border-spacing-y-3 text-left text-sm\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"text-slate-500\",\"children\":[[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Dimension\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Left side\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Right side\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Setup\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Setup\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Flexible, but repetitive and easy to abandon.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Needs the CLI workflow, but reporting becomes repeatable.\"}]]}],[\"$\",\"tr\",\"Accuracy\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Accuracy\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Depends on discipline and manual copying.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Derived from local usage artifacts.\"}]]}],[\"$\",\"tr\",\"Reporting\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Reporting\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Usually one-off tables or notes.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Tables, model breakdowns, wrapped pages, activity heatmaps, and shares.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Manual tracking wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Manual tracking wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Setup: Flexible, but repetitive and easy to abandon. Accuracy: Depends on discipline and manual copying. Reporting: Usually one-off tables or notes.\"}]]}],[\"$\",\"article\",\"Where vibestats wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where vibestats wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Setup: Needs the CLI workflow, but reporting becomes repeatable. Accuracy: Derived from local usage artifacts. Reporting: Tables, model breakdowns, wrapped pages, activity heatmaps, and shares.\"}]]}],[\"$\",\"article\",\"Decision rule\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Decision rule\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"FAQ\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Should I choose Manual tracking or vibestats?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Should I choose Manual tracking or vibestats?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\"}]]}],[\"$\",\"article\",\"Is this comparison about replacing everything with one report?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Is this comparison about replacing everything with one report?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Related pages\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Continue by intent\"}]]}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"compare\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/features/json-and-automation-exports\",{\"href\":\"/features/json-and-automation-exports\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features json-and-automation-exports\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/use-cases/freelancers\",{\"href\":\"/use-cases/freelancers\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"use-cases freelancers\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/use-cases/monthly-reporting\",{\"href\":\"/use-cases/monthly-reporting\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"use-cases monthly-reporting\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Manual tracking vs vibestats | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,manual tracking vs vibestats,AI usage spreadsheet alternative,developer analytics alternative\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Manual tracking vs vibestats | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"Manual tracking vs vibestats | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--aQYb4B4UpDj_CZ4C2kvCF--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/335de1248158d380.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-175b2f5685d7557b.js"/><script src="/_next/static/chunks/c476d598-9099ed8b975ae1d6.js" async=""></script><script src="/_next/static/chunks/498-74a3a367cb8442f0.js" async=""></script><script src="/_next/static/chunks/main-app-6619364ab1f13fb7.js" async=""></script><script src="/_next/static/chunks/app/layout-6ebd9b17af55ec02.js" async=""></script><script src="/_next/static/chunks/816-8960921093d57453.js" async=""></script><script src="/_next/static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Manual tracking vs vibestats | vibestats</title><meta name="description" content="Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,manual tracking vs vibestats,AI usage spreadsheet alternative,developer analytics alternative"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats"/><meta property="og:title" content="Manual tracking vs vibestats | vibestats"/><meta property="og:description" content="Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats"/><meta property="og:site_name" content="vibestats"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Manual tracking vs vibestats | vibestats"/><meta name="twitter:description" content="Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">[{"@context":"https://schema.org","@type":"WebPage","name":"Manual tracking vs vibestats","description":"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.","url":"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Manual tracking vs vibestats","item":"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Manual tracking or vibestats?","acceptedAnswer":{"@type":"Answer","text":"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><div class="flex flex-wrap items-center gap-3 text-sm text-slate-500"><a class="transition hover:text-orange-700" href="/">vibestats</a><span>/</span><a class="transition hover:text-orange-700" href="/compare">Compare</a><span>/</span><span class="text-slate-700">Manual tracking vs vibestats</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Manual tracking vs vibestats</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.</p><div class="mt-6 grid gap-3 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Intent</div><div class="mt-2 text-sm leading-6 text-slate-700">Comparison</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Focus</div><div class="mt-2 text-sm leading-6 text-slate-700">Manual tracking is cheap to start and expensive to maintain.</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Next step</div><div class="mt-2 text-sm leading-6 text-slate-700"><a class="text-slate-900 transition hover:text-orange-700" href="/docs/commands">Open the command reference</a></div></div></div></header><section class="mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Highlights</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>Manual tracking and vibestats solve different reporting jobs.</li><li>Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Relevant commands</p><div class="mt-4 grid gap-3"><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --wrapped</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --json</code></div></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><div class="mt-5 overflow-x-auto"><table class="min-w-full border-separate border-spacing-y-3 text-left text-sm"><thead><tr class="text-slate-500"><th class="px-4 py-2 font-medium">Dimension</th><th class="px-4 py-2 font-medium">Left side</th><th class="px-4 py-2 font-medium">Right side</th></tr></thead><tbody><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Setup</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Flexible, but repetitive and easy to abandon.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Needs the CLI workflow, but reporting becomes repeatable.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Accuracy</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Depends on discipline and manual copying.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Derived from local usage artifacts.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Reporting</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Usually one-off tables or notes.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Tables, model breakdowns, wrapped pages, activity heatmaps, and shares.</td></tr></tbody></table></div></section><section class="mt-6 grid gap-4 md:grid-cols-2"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Manual tracking wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Setup: Flexible, but repetitive and easy to abandon. Accuracy: Depends on discipline and manual copying. Reporting: Usually one-off tables or notes.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where vibestats wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Setup: Needs the CLI workflow, but reporting becomes repeatable. Accuracy: Derived from local usage artifacts. Reporting: Tables, model breakdowns, wrapped pages, activity heatmaps, and shares.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Decision rule</h2><p class="mt-4 text-sm leading-7 text-slate-600">Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.</p></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">FAQ</p><div class="mt-4 grid gap-4 md:grid-cols-2"><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Should I choose Manual tracking or vibestats?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Is this comparison about replacing everything with one report?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.</p></article></div></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="flex items-center justify-between gap-4"><div><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Related pages</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Continue by intent</h2></div><a class="text-sm font-medium text-slate-700 transition hover:text-orange-700" href="/compare">View all <!-- -->compare</a></div><div class="mt-5 grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/json-and-automation-exports"><span class="block font-semibold text-slate-950">features json-and-automation-exports</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/use-cases/freelancers"><span class="block font-semibold text-slate-950">use-cases freelancers</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/use-cases/monthly-reporting"><span class="block font-semibold text-slate-950">use-cases monthly-reporting</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a></div></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n6:I[496,[],\"OutletBoundary\"]\n8:I[3737,[],\"AsyncMetadataOutlet\"]\na:I[496,[],\"ViewportBoundary\"]\nc:I[496,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"aQYb4B4UpDj-CZ4C2kvCF\",\"p\":\"\",\"c\":[\"\",\"compare\",\"manual-tracking-vs-vibestats\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"manual-tracking-vs-vibestats\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/335de1248158d380.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-config\",\"strategy\":\"beforeInteractive\",\"children\":\"window.WOLF_ANALYTICS_CONFIG = {\\\"apiUrl\\\":\\\"https://analapi.wolfai.dev\\\",\\\"projectApiKey\\\":\\\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\\\",\\\"mode\\\":\\\"intl\\\",\\\"sourceApp\\\":\\\"vibestats\\\"};\"}],[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-script\",\"src\":\"https://analytics.wolfai.dev/wolf-analytics.min.js\",\"strategy\":\"beforeInteractive\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased min-h-screen bg-background text-foreground\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"compare\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"slug\",\"manual-tracking-vs-vibestats\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"11:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"874\",\"static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5b0,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Manual tracking vs vibestats\",\"description\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\",\"url\":\"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats\",\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"vibestats\",\"url\":\"https://vibestats.wolfai.dev/\"}},{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"vibestats\",\"item\":\"https://vibestats.wolfai.dev/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compare\",\"item\":\"https://vibestats.wolfai.dev/compare\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Manual tracking vs vibestats\",\"item\":\"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Manual tracking or vibestats?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\"}},{\"@type\":\"Question\",\"name\":\"Is this comparison about replacing everything with one report?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}}]}]"])</script><script>self.__next_f.push([1,"5:[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$10\"}}],[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-3 text-sm text-slate-500\",\"children\":[[\"$\",\"$L11\",null,{\"href\":\"/\",\"className\":\"transition hover:text-orange-700\",\"children\":\"vibestats\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Compare\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Manual tracking vs vibestats\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl\",\"children\":\"Manual tracking vs vibestats\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Intent\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Comparison\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Focus\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Manual tracking is cheap to start and expensive to maintain.\"}]]}],\"$L12\"]}]]}],\"$L13\",null,\"$L14\",\"$L15\",\"$L16\",\"$L17\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Next step\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":[\"$\",\"$L11\",null,{\"href\":\"/docs/commands\",\"className\":\"text-slate-900 transition hover:text-orange-700\",\"children\":\"Open the command reference\"}]}]]}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Highlights\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"Manual tracking and vibestats solve different reporting jobs.\",{\"children\":\"Manual tracking and vibestats solve different reporting jobs.\"}],[\"$\",\"li\",\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\",{\"children\":\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\"}],[\"$\",\"li\",\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\",{\"children\":\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Relevant commands\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-3\",\"children\":[[\"$\",\"code\",\"npx vibestats\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats\"}],[\"$\",\"code\",\"npx vibestats --wrapped\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --wrapped\"}],[\"$\",\"code\",\"npx vibestats --json\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --json\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"min-w-full border-separate border-spacing-y-3 text-left text-sm\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"text-slate-500\",\"children\":[[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Dimension\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Left side\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Right side\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Setup\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Setup\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Flexible, but repetitive and easy to abandon.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Needs the CLI workflow, but reporting becomes repeatable.\"}]]}],[\"$\",\"tr\",\"Accuracy\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Accuracy\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Depends on discipline and manual copying.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Derived from local usage artifacts.\"}]]}],[\"$\",\"tr\",\"Reporting\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Reporting\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Usually one-off tables or notes.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Tables, model breakdowns, wrapped pages, activity heatmaps, and shares.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Manual tracking wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Manual tracking wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Setup: Flexible, but repetitive and easy to abandon. Accuracy: Depends on discipline and manual copying. Reporting: Usually one-off tables or notes.\"}]]}],[\"$\",\"article\",\"Where vibestats wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where vibestats wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Setup: Needs the CLI workflow, but reporting becomes repeatable. Accuracy: Derived from local usage artifacts. Reporting: Tables, model breakdowns, wrapped pages, activity heatmaps, and shares.\"}]]}],[\"$\",\"article\",\"Decision rule\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Decision rule\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"FAQ\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Should I choose Manual tracking or vibestats?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Should I choose Manual tracking or vibestats?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\"}]]}],[\"$\",\"article\",\"Is this comparison about replacing everything with one report?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Is this comparison about replacing everything with one report?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Related pages\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Continue by intent\"}]]}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"compare\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/features/json-and-automation-exports\",{\"href\":\"/features/json-and-automation-exports\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features json-and-automation-exports\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/use-cases/freelancers\",{\"href\":\"/use-cases/freelancers\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"use-cases freelancers\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/use-cases/monthly-reporting\",{\"href\":\"/use-cases/monthly-reporting\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"use-cases monthly-reporting\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Manual tracking vs vibestats | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,manual tracking vs vibestats,AI usage spreadsheet alternative,developer analytics alternative\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Manual tracking vs vibestats | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"Manual tracking vs vibestats | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>