vibestats 1.3.13 → 1.4.1
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.
- package/README.md +15 -3
- package/dist/index.js +1010 -199
- package/dist/web/404.html +1 -0
- package/dist/web/_next/static/chunks/231.de8a9ee791ed9eef.js +1 -0
- package/dist/web/_next/static/chunks/498-74a3a367cb8442f0.js +1 -0
- package/dist/web/_next/static/chunks/562.a5731acd5543100e.js +1 -0
- package/dist/web/_next/static/chunks/816-8960921093d57453.js +1 -0
- package/dist/web/_next/static/chunks/832-93b990b7ceeaa2c5.js +1 -0
- package/dist/web/_next/static/chunks/971-0ab6a23b2af361a6.js +1 -0
- package/dist/web/_next/static/chunks/app/_not-found/page-91f35a114767b957.js +1 -0
- package/dist/web/_next/static/chunks/app/activity/[slug]/page-bd4706aecd453508.js +1 -0
- package/dist/web/_next/static/chunks/app/activity/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/changelog/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/compare/[slug]/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/compare/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/dashboard/activity/page-e84049538e03061e.js +1 -0
- package/dist/web/_next/static/chunks/app/dashboard/layout-bd4706aecd453508.js +1 -0
- package/dist/web/_next/static/chunks/app/dashboard/page-4834f263664e8663.js +1 -0
- package/dist/web/_next/static/chunks/app/dashboard/usage/page-b42b457b8fd3865c.js +1 -0
- package/dist/web/_next/static/chunks/app/dashboard/wrapped/page-268dced4ee2726f7.js +1 -0
- package/dist/web/_next/static/chunks/app/docs/commands/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/docs/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/features/[slug]/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/features/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/guides/[slug]/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/guides/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/images/[...slug]/route-bd4706aecd453508.js +1 -0
- package/dist/web/_next/static/chunks/app/layout-6ebd9b17af55ec02.js +1 -0
- package/dist/web/_next/static/chunks/app/page-dfb7bbdb5999dc75.js +1 -0
- package/dist/web/_next/static/chunks/app/robots.txt/route-bd4706aecd453508.js +1 -0
- package/dist/web/_next/static/chunks/app/s/[slug]/route-bd4706aecd453508.js +1 -0
- package/dist/web/_next/static/chunks/app/sitemap.xml/route-bd4706aecd453508.js +1 -0
- package/dist/web/_next/static/chunks/app/usage/[slug]/page-bd4706aecd453508.js +1 -0
- package/dist/web/_next/static/chunks/app/use-cases/[slug]/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/use-cases/page-5d0587c1d5910e68.js +1 -0
- package/dist/web/_next/static/chunks/app/wrapped/[slug]/page-bd4706aecd453508.js +1 -0
- package/dist/web/_next/static/chunks/app/wrapped/page-66b00de7736097db.js +1 -0
- package/dist/web/_next/static/chunks/c476d598-9099ed8b975ae1d6.js +1 -0
- package/dist/web/_next/static/chunks/framework-1c6a486f6592f084.js +1 -0
- package/dist/web/_next/static/chunks/main-app-6619364ab1f13fb7.js +1 -0
- package/dist/web/_next/static/chunks/main-f6fa273a9100cc16.js +1 -0
- package/dist/web/_next/static/chunks/pages/_app-55552e79b4ca5b96.js +1 -0
- package/dist/web/_next/static/chunks/pages/_error-da3c1b00689f457b.js +1 -0
- package/dist/web/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/dist/web/_next/static/chunks/webpack-175b2f5685d7557b.js +1 -0
- package/dist/web/_next/static/css/335de1248158d380.css +3 -0
- package/dist/web/_next/static/gPirvBMhpRSdtR0tsMj2H/_buildManifest.js +1 -0
- package/dist/web/_next/static/gPirvBMhpRSdtR0tsMj2H/_ssgManifest.js +1 -0
- package/dist/web/activity.html +1 -0
- package/dist/web/activity.txt +19 -0
- package/dist/web/changelog.html +1 -0
- package/dist/web/changelog.txt +60 -0
- package/dist/web/compare/claude-code-vs-codex-cli-tracking.html +1 -0
- package/dist/web/compare/claude-code-vs-codex-cli-tracking.txt +25 -0
- package/dist/web/compare/daily-vs-monthly-ai-usage-reports.html +1 -0
- package/dist/web/compare/daily-vs-monthly-ai-usage-reports.txt +24 -0
- package/dist/web/compare/local-vs-cloud-ai-analytics.html +1 -0
- package/dist/web/compare/local-vs-cloud-ai-analytics.txt +25 -0
- package/dist/web/compare/manual-tracking-vs-vibestats.html +1 -0
- package/dist/web/compare/manual-tracking-vs-vibestats.txt +24 -0
- package/dist/web/compare/querystring-shares-vs-stored-share-pages.html +1 -0
- package/dist/web/compare/querystring-shares-vs-stored-share-pages.txt +25 -0
- package/dist/web/compare/session-breakdown-vs-model-breakdown.html +1 -0
- package/dist/web/compare/session-breakdown-vs-model-breakdown.txt +25 -0
- package/dist/web/compare/single-source-vs-combined-tracking.html +1 -0
- package/dist/web/compare/single-source-vs-combined-tracking.txt +25 -0
- package/dist/web/compare/terminal-table-vs-json-output.html +1 -0
- package/dist/web/compare/terminal-table-vs-json-output.txt +24 -0
- package/dist/web/compare/token-volume-vs-cost-estimation.html +1 -0
- package/dist/web/compare/token-volume-vs-cost-estimation.txt +24 -0
- package/dist/web/compare/wrapped-vs-activity-heatmap.html +1 -0
- package/dist/web/compare/wrapped-vs-activity-heatmap.txt +25 -0
- package/dist/web/compare.html +1 -0
- package/dist/web/compare.txt +32 -0
- package/dist/web/dashboard/activity.html +1 -0
- package/dist/web/dashboard/activity.txt +20 -0
- package/dist/web/dashboard/usage.html +1 -0
- package/dist/web/dashboard/usage.txt +20 -0
- package/dist/web/dashboard/wrapped.html +1 -0
- package/dist/web/dashboard/wrapped.txt +20 -0
- package/dist/web/dashboard.html +1 -0
- package/dist/web/dashboard.txt +20 -0
- package/dist/web/docs/commands.html +1 -0
- package/dist/web/docs/commands.txt +33 -0
- package/dist/web/docs.html +1 -0
- package/dist/web/docs.txt +25 -0
- package/dist/web/features/ai-coding-activity-heatmap.html +1 -0
- package/dist/web/features/ai-coding-activity-heatmap.txt +25 -0
- package/dist/web/features/ai-coding-wrapped.html +1 -0
- package/dist/web/features/ai-coding-wrapped.txt +24 -0
- package/dist/web/features/claude-code-stats.html +1 -0
- package/dist/web/features/claude-code-stats.txt +24 -0
- package/dist/web/features/claude-diagnostics.html +1 -0
- package/dist/web/features/claude-diagnostics.txt +24 -0
- package/dist/web/features/codex-cli-stats.html +1 -0
- package/dist/web/features/codex-cli-stats.txt +24 -0
- package/dist/web/features/combined-ai-coding-stats.html +1 -0
- package/dist/web/features/combined-ai-coding-stats.txt +25 -0
- package/dist/web/features/json-and-automation-exports.html +1 -0
- package/dist/web/features/json-and-automation-exports.txt +25 -0
- package/dist/web/features/model-breakdown.html +1 -0
- package/dist/web/features/model-breakdown.txt +24 -0
- package/dist/web/features/privacy-first-analytics.html +1 -0
- package/dist/web/features/privacy-first-analytics.txt +25 -0
- package/dist/web/features/session-breakdown.html +1 -0
- package/dist/web/features/session-breakdown.txt +24 -0
- package/dist/web/features/share-pages.html +1 -0
- package/dist/web/features/share-pages.txt +24 -0
- package/dist/web/features/token-and-cost-tracking.html +1 -0
- package/dist/web/features/token-and-cost-tracking.txt +24 -0
- package/dist/web/features.html +1 -0
- package/dist/web/features.txt +33 -0
- package/dist/web/guides/how-to-build-ai-activity-heatmap.html +1 -0
- package/dist/web/guides/how-to-build-ai-activity-heatmap.txt +24 -0
- package/dist/web/guides/how-to-compare-model-usage.html +1 -0
- package/dist/web/guides/how-to-compare-model-usage.txt +24 -0
- package/dist/web/guides/how-to-create-ai-coding-wrapped.html +1 -0
- package/dist/web/guides/how-to-create-ai-coding-wrapped.txt +24 -0
- package/dist/web/guides/how-to-measure-ai-token-costs.html +1 -0
- package/dist/web/guides/how-to-measure-ai-token-costs.txt +24 -0
- package/dist/web/guides/how-to-read-claude-diagnostics.html +1 -0
- package/dist/web/guides/how-to-read-claude-diagnostics.txt +24 -0
- package/dist/web/guides/how-to-share-ai-coding-stats.html +1 -0
- package/dist/web/guides/how-to-share-ai-coding-stats.txt +24 -0
- package/dist/web/guides/how-to-track-claude-code-usage.html +1 -0
- package/dist/web/guides/how-to-track-claude-code-usage.txt +24 -0
- package/dist/web/guides/how-to-track-codex-cli-usage.html +1 -0
- package/dist/web/guides/how-to-track-codex-cli-usage.txt +24 -0
- package/dist/web/guides.html +1 -0
- package/dist/web/guides.txt +27 -0
- package/dist/web/index.html +1 -0
- package/dist/web/index.txt +23 -0
- package/dist/web/robots.txt +7 -0
- package/dist/web/sitemap.xml +279 -0
- package/dist/web/use-cases/ai-agencies.html +1 -0
- package/dist/web/use-cases/ai-agencies.txt +23 -0
- package/dist/web/use-cases/consultants.html +1 -0
- package/dist/web/use-cases/consultants.txt +23 -0
- package/dist/web/use-cases/engineering-managers.html +1 -0
- package/dist/web/use-cases/engineering-managers.txt +24 -0
- package/dist/web/use-cases/freelancers.html +1 -0
- package/dist/web/use-cases/freelancers.txt +23 -0
- package/dist/web/use-cases/indie-hackers.html +1 -0
- package/dist/web/use-cases/indie-hackers.txt +23 -0
- package/dist/web/use-cases/monthly-reporting.html +1 -0
- package/dist/web/use-cases/monthly-reporting.txt +23 -0
- package/dist/web/use-cases/open-source-maintainers.html +1 -0
- package/dist/web/use-cases/open-source-maintainers.txt +24 -0
- package/dist/web/use-cases/personal-retrospectives.html +1 -0
- package/dist/web/use-cases/personal-retrospectives.txt +24 -0
- package/dist/web/use-cases/researchers.html +1 -0
- package/dist/web/use-cases/researchers.txt +23 -0
- package/dist/web/use-cases/weekly-reviews.html +1 -0
- package/dist/web/use-cases/weekly-reviews.txt +23 -0
- package/dist/web/use-cases.html +1 -0
- package/dist/web/use-cases.txt +31 -0
- package/dist/web/wrapped.html +1 -0
- package/dist/web/wrapped.txt +20 -0
- package/package.json +7 -8
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[7437,["177","static/chunks/app/layout-6ebd9b17af55ec02.js"],""]
|
|
3
|
+
3:I[5965,[],""]
|
|
4
|
+
4:I[3609,[],""]
|
|
5
|
+
6:I[496,[],"OutletBoundary"]
|
|
6
|
+
8:I[3737,[],"AsyncMetadataOutlet"]
|
|
7
|
+
a:I[496,[],"ViewportBoundary"]
|
|
8
|
+
c:I[496,[],"MetadataBoundary"]
|
|
9
|
+
d:"$Sreact.suspense"
|
|
10
|
+
f:I[2207,[],""]
|
|
11
|
+
:HL["/_next/static/css/335de1248158d380.css","style"]
|
|
12
|
+
0:{"P":null,"b":"gPirvBMhpRSdtR0tsMj2H","p":"","c":["","compare","terminal-table-vs-json-output"],"i":false,"f":[[["",{"children":["compare",{"children":[["slug","terminal-table-vs-json-output","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","terminal-table-vs-json-output","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
|
+
11:I[4816,["816","static/chunks/816-8960921093d57453.js","874","static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
|
|
14
|
+
10:T577,[{"@context":"https://schema.org","@type":"WebPage","name":"Terminal table vs JSON output","description":"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.","url":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output","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":"Terminal table vs JSON output","item":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Terminal tables or JSON output?","acceptedAnswer":{"@type":"Answer","text":"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human."}},{"@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":"Terminal table vs JSON output"}]]}],["$","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":"Terminal table vs JSON output"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Compare human-readable terminal tables with JSON output for vibestats reporting and automation."}],["$","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":"These outputs solve different downstream problems."}]]}],"$L12"]}]]}],"$L13",null,"$L14","$L15","$L16","$L17"]}]]}]
|
|
15
|
+
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"}]}]]}]
|
|
16
|
+
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","Terminal tables and JSON output solve different reporting jobs.",{"children":"Terminal tables and JSON output solve different reporting jobs."}],["$","li","Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.",{"children":"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human."}],["$","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 --total",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --total"}],["$","code","npx vibestats --json",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --json"}]]}]]}]]}]
|
|
17
|
+
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","Best for",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Best for"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Quick human review in the terminal."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Scripts, agents, dashboards, and pipelines."}]]}],["$","tr","Speed",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Speed"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Faster when you only need to inspect the result."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Better when another system consumes the result."}]]}],["$","tr","Tradeoff",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Tradeoff"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Readable, but harder to automate."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Flexible, but less pleasant for eyeballing."}]]}]]}]]}]}]]}]
|
|
18
|
+
15:["$","section",null,{"className":"mt-6 grid gap-4 md:grid-cols-2","children":[["$","article","Where Terminal tables 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 Terminal tables wins"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Best for: Quick human review in the terminal. Speed: Faster when you only need to inspect the result. Tradeoff: Readable, but harder to automate."}]]}],["$","article","Where JSON output 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 JSON output wins"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Best for: Scripts, agents, dashboards, and pipelines. Speed: Better when another system consumes the result. Tradeoff: Flexible, but less pleasant for eyeballing."}]]}],["$","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 terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human."}]]}]]}]
|
|
19
|
+
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 Terminal tables or JSON output?",{"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 Terminal tables or JSON output?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human."}]]}],["$","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."}]]}]]}]]}]
|
|
20
|
+
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/engineering-managers",{"href":"/use-cases/engineering-managers","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 engineering-managers"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$L11","/guides/how-to-compare-model-usage",{"href":"/guides/how-to-compare-model-usage","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":"guides how-to-compare-model-usage"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}]]}]]}]
|
|
21
|
+
b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
22
|
+
7:null
|
|
23
|
+
9:{"metadata":[["$","title","0",{"children":"Terminal table vs JSON output | vibestats"}],["$","meta","1",{"name":"description","content":"Compare human-readable terminal tables with JSON output for vibestats reporting and automation."}],["$","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,terminal table vs json output,CLI output vs json,developer analytics automation"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"}],["$","meta","5",{"property":"og:title","content":"Terminal table vs JSON output | vibestats"}],["$","meta","6",{"property":"og:description","content":"Compare human-readable terminal tables with JSON output for vibestats reporting and automation."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"}],["$","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":"Terminal table vs JSON output | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"Compare human-readable terminal tables with JSON output for vibestats reporting and automation."}]],"error":null,"digest":"$undefined"}
|
|
24
|
+
e:"$9:metadata"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><!--gPirvBMhpRSdtR0tsMj2H--><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>Token volume vs cost estimation | vibestats</title><meta name="description" content="Compare token volume reporting with cost estimation and understand why both matter 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,token volume vs cost estimation,AI token cost reporting,developer AI spend analysis"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation"/><meta property="og:title" content="Token volume vs cost estimation | vibestats"/><meta property="og:description" content="Compare token volume reporting with cost estimation and understand why both matter in vibestats."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation"/><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="Token volume vs cost estimation | vibestats"/><meta name="twitter:description" content="Compare token volume reporting with cost estimation and understand why both matter 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":"Token volume vs cost estimation","description":"Compare token volume reporting with cost estimation and understand why both matter in vibestats.","url":"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation","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":"Token volume vs cost estimation","item":"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Token volume or Cost estimation?","acceptedAnswer":{"@type":"Answer","text":"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible."}},{"@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">Token volume vs cost estimation</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">Token volume vs cost estimation</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare token volume reporting with cost estimation and understand why both matter 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">Tokens and cost are related, but they are not the same reporting question.</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>Token volume and Cost estimation solve different reporting jobs.</li><li>Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.</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 --total</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --model</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --monthly</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">Best for</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Understanding interaction scale and usage intensity.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Explaining budget impact and unit economics.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Stability</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Less dependent on pricing context.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">More useful when spend is the business question.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Tradeoff</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">High signal for engineering behavior.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">High signal for financial review.</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 Token volume wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Understanding interaction scale and usage intensity. Stability: Less dependent on pricing context. Tradeoff: High signal for engineering behavior.</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 Cost estimation wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Explaining budget impact and unit economics. Stability: More useful when spend is the business question. Tradeoff: High signal for financial review.</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">Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.</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 Token volume or Cost estimation?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.</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/token-and-cost-tracking"><span class="block font-semibold text-slate-950">features token-and-cost-tracking</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><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="/guides/how-to-measure-ai-token-costs"><span class="block font-semibold text-slate-950">guides how-to-measure-ai-token-costs</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\":\"gPirvBMhpRSdtR0tsMj2H\",\"p\":\"\",\"c\":[\"\",\"compare\",\"token-volume-vs-cost-estimation\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"token-volume-vs-cost-estimation\",\"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\",\"token-volume-vs-cost-estimation\",\"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\":\"Token volume vs cost estimation\",\"description\":\"Compare token volume reporting with cost estimation and understand why both matter in vibestats.\",\"url\":\"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation\",\"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\":\"Token volume vs cost estimation\",\"item\":\"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Token volume or Cost estimation?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.\"}},{\"@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\":\"Token volume vs cost estimation\"}]]}],[\"$\",\"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\":\"Token volume vs cost estimation\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare token volume reporting with cost estimation and understand why both matter 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\":\"Tokens and cost are related, but they are not the same reporting question.\"}]]}],\"$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\",\"Token volume and Cost estimation solve different reporting jobs.\",{\"children\":\"Token volume and Cost estimation solve different reporting jobs.\"}],[\"$\",\"li\",\"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.\",{\"children\":\"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.\"}],[\"$\",\"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 --total\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --total\"}],[\"$\",\"code\",\"npx vibestats --model\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --model\"}],[\"$\",\"code\",\"npx vibestats --monthly\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --monthly\"}]]}]]}]]}]\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\",\"Best for\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Best for\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Understanding interaction scale and usage intensity.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Explaining budget impact and unit economics.\"}]]}],[\"$\",\"tr\",\"Stability\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Stability\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Less dependent on pricing context.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"More useful when spend is the business question.\"}]]}],[\"$\",\"tr\",\"Tradeoff\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Tradeoff\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"High signal for engineering behavior.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"High signal for financial review.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Token volume 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 Token volume wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Understanding interaction scale and usage intensity. Stability: Less dependent on pricing context. Tradeoff: High signal for engineering behavior.\"}]]}],[\"$\",\"article\",\"Where Cost estimation 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 Cost estimation wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Explaining budget impact and unit economics. Stability: More useful when spend is the business question. Tradeoff: High signal for financial review.\"}]]}],[\"$\",\"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\":\"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.\"}]]}]]}]\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 Token volume or Cost estimation?\",{\"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 Token volume or Cost estimation?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.\"}]]}],[\"$\",\"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/token-and-cost-tracking\",{\"href\":\"/features/token-and-cost-tracking\",\"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 token-and-cost-tracking\"}],[\"$\",\"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.\"}]]}],[\"$\",\"$L11\",\"/guides/how-to-measure-ai-token-costs\",{\"href\":\"/guides/how-to-measure-ai-token-costs\",\"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\":\"guides how-to-measure-ai-token-costs\"}],[\"$\",\"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\":\"Token volume vs cost estimation | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare token volume reporting with cost estimation and understand why both matter 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,token volume vs cost estimation,AI token cost reporting,developer AI spend analysis\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Token volume vs cost estimation | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare token volume reporting with cost estimation and understand why both matter in vibestats.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation\"}],[\"$\",\"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\":\"Token volume vs cost estimation | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare token volume reporting with cost estimation and understand why both matter in vibestats.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[7437,["177","static/chunks/app/layout-6ebd9b17af55ec02.js"],""]
|
|
3
|
+
3:I[5965,[],""]
|
|
4
|
+
4:I[3609,[],""]
|
|
5
|
+
6:I[496,[],"OutletBoundary"]
|
|
6
|
+
8:I[3737,[],"AsyncMetadataOutlet"]
|
|
7
|
+
a:I[496,[],"ViewportBoundary"]
|
|
8
|
+
c:I[496,[],"MetadataBoundary"]
|
|
9
|
+
d:"$Sreact.suspense"
|
|
10
|
+
f:I[2207,[],""]
|
|
11
|
+
:HL["/_next/static/css/335de1248158d380.css","style"]
|
|
12
|
+
0:{"P":null,"b":"gPirvBMhpRSdtR0tsMj2H","p":"","c":["","compare","token-volume-vs-cost-estimation"],"i":false,"f":[[["",{"children":["compare",{"children":[["slug","token-volume-vs-cost-estimation","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","token-volume-vs-cost-estimation","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
|
+
11:I[4816,["816","static/chunks/816-8960921093d57453.js","874","static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
|
|
14
|
+
10:T5b0,[{"@context":"https://schema.org","@type":"WebPage","name":"Token volume vs cost estimation","description":"Compare token volume reporting with cost estimation and understand why both matter in vibestats.","url":"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation","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":"Token volume vs cost estimation","item":"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Token volume or Cost estimation?","acceptedAnswer":{"@type":"Answer","text":"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible."}},{"@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":"Token volume vs cost estimation"}]]}],["$","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":"Token volume vs cost estimation"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Compare token volume reporting with cost estimation and understand why both matter 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":"Tokens and cost are related, but they are not the same reporting question."}]]}],"$L12"]}]]}],"$L13",null,"$L14","$L15","$L16","$L17"]}]]}]
|
|
15
|
+
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"}]}]]}]
|
|
16
|
+
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","Token volume and Cost estimation solve different reporting jobs.",{"children":"Token volume and Cost estimation solve different reporting jobs."}],["$","li","Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.",{"children":"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible."}],["$","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 --total",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --total"}],["$","code","npx vibestats --model",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --model"}],["$","code","npx vibestats --monthly",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --monthly"}]]}]]}]]}]
|
|
17
|
+
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","Best for",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Best for"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Understanding interaction scale and usage intensity."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Explaining budget impact and unit economics."}]]}],["$","tr","Stability",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Stability"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Less dependent on pricing context."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"More useful when spend is the business question."}]]}],["$","tr","Tradeoff",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Tradeoff"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"High signal for engineering behavior."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"High signal for financial review."}]]}]]}]]}]}]]}]
|
|
18
|
+
15:["$","section",null,{"className":"mt-6 grid gap-4 md:grid-cols-2","children":[["$","article","Where Token volume 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 Token volume wins"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Best for: Understanding interaction scale and usage intensity. Stability: Less dependent on pricing context. Tradeoff: High signal for engineering behavior."}]]}],["$","article","Where Cost estimation 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 Cost estimation wins"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Best for: Explaining budget impact and unit economics. Stability: More useful when spend is the business question. Tradeoff: High signal for financial review."}]]}],["$","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":"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible."}]]}]]}]
|
|
19
|
+
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 Token volume or Cost estimation?",{"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 Token volume or Cost estimation?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible."}]]}],["$","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."}]]}]]}]]}]
|
|
20
|
+
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/token-and-cost-tracking",{"href":"/features/token-and-cost-tracking","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 token-and-cost-tracking"}],["$","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."}]]}],["$","$L11","/guides/how-to-measure-ai-token-costs",{"href":"/guides/how-to-measure-ai-token-costs","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":"guides how-to-measure-ai-token-costs"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}]]}]]}]
|
|
21
|
+
b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
22
|
+
7:null
|
|
23
|
+
9:{"metadata":[["$","title","0",{"children":"Token volume vs cost estimation | vibestats"}],["$","meta","1",{"name":"description","content":"Compare token volume reporting with cost estimation and understand why both matter 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,token volume vs cost estimation,AI token cost reporting,developer AI spend analysis"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation"}],["$","meta","5",{"property":"og:title","content":"Token volume vs cost estimation | vibestats"}],["$","meta","6",{"property":"og:description","content":"Compare token volume reporting with cost estimation and understand why both matter in vibestats."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation"}],["$","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":"Token volume vs cost estimation | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"Compare token volume reporting with cost estimation and understand why both matter in vibestats."}]],"error":null,"digest":"$undefined"}
|
|
24
|
+
e:"$9:metadata"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><!--gPirvBMhpRSdtR0tsMj2H--><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>Wrapped vs activity heatmap | vibestats</title><meta name="description" content="Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story."/><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,wrapped vs activity heatmap,AI coding retrospective,developer recap comparison"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap"/><meta property="og:title" content="Wrapped vs activity heatmap | vibestats"/><meta property="og:description" content="Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap"/><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="Wrapped vs activity heatmap | vibestats"/><meta name="twitter:description" content="Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story."/><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":"Wrapped vs activity heatmap","description":"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.","url":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap","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":"Wrapped vs activity heatmap","item":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Wrapped summary or Activity heatmap?","acceptedAnswer":{"@type":"Answer","text":"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance."}},{"@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">Wrapped vs activity heatmap</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">Wrapped vs activity heatmap</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.</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">Both are recap surfaces, but they tell very different stories.</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>Wrapped summary and Activity heatmap solve different reporting jobs.</li><li>Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.</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 --wrapped</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --activity --days 365</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">Best for</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Narrative recap with totals, streaks, and model mix.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Visual rhythm and consistency over time.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Audience</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Good for public sharing, end-of-year recaps, and general retrospectives.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Good for internal review, trend inspection, and cadence checks.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Tradeoff</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">More summary, less daily detail.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">More daily detail, less narrative framing.</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 Wrapped summary wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Narrative recap with totals, streaks, and model mix. Audience: Good for public sharing, end-of-year recaps, and general retrospectives. Tradeoff: More summary, less daily detail.</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 Activity heatmap wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Visual rhythm and consistency over time. Audience: Good for internal review, trend inspection, and cadence checks. Tradeoff: More daily detail, less narrative framing.</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 wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.</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 Wrapped summary or Activity heatmap?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.</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/ai-coding-wrapped"><span class="block font-semibold text-slate-950">features ai-coding-wrapped</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/ai-coding-activity-heatmap"><span class="block font-semibold text-slate-950">features ai-coding-activity-heatmap</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="/guides/how-to-create-ai-coding-wrapped"><span class="block font-semibold text-slate-950">guides how-to-create-ai-coding-wrapped</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\":\"gPirvBMhpRSdtR0tsMj2H\",\"p\":\"\",\"c\":[\"\",\"compare\",\"wrapped-vs-activity-heatmap\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"wrapped-vs-activity-heatmap\",\"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\",\"wrapped-vs-activity-heatmap\",\"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:T5bd,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Wrapped vs activity heatmap\",\"description\":\"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.\",\"url\":\"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap\",\"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\":\"Wrapped vs activity heatmap\",\"item\":\"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Wrapped summary or Activity heatmap?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.\"}},{\"@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\":\"Wrapped vs activity heatmap\"}]]}],[\"$\",\"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\":\"Wrapped vs activity heatmap\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.\"}],[\"$\",\"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\":\"Both are recap surfaces, but they tell very different stories.\"}]\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\",\"Wrapped summary and Activity heatmap solve different reporting jobs.\",{\"children\":\"Wrapped summary and Activity heatmap solve different reporting jobs.\"}],[\"$\",\"li\",\"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.\",{\"children\":\"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.\"}],[\"$\",\"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 --wrapped\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --wrapped\"}],[\"$\",\"code\",\"npx vibestats --activity --days 365\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --activity --days 365\"}]]}]]}]]}]\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\",\"Best for\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Best for\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Narrative recap with totals, streaks, and model mix.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Visual rhythm and consistency over time.\"}]]}],[\"$\",\"tr\",\"Audience\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Audience\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Good for public sharing, end-of-year recaps, and general retrospectives.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Good for internal review, trend inspection, and cadence checks.\"}]]}],[\"$\",\"tr\",\"Tradeoff\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Tradeoff\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"More summary, less daily detail.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"More daily detail, less narrative framing.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Wrapped summary 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 Wrapped summary wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Narrative recap with totals, streaks, and model mix. Audience: Good for public sharing, end-of-year recaps, and general retrospectives. Tradeoff: More summary, less daily detail.\"}]]}],[\"$\",\"article\",\"Where Activity heatmap 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 Activity heatmap wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Visual rhythm and consistency over time. Audience: Good for internal review, trend inspection, and cadence checks. Tradeoff: More daily detail, less narrative framing.\"}]]}],[\"$\",\"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 wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.\"}]]}]]}]\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 Wrapped summary or Activity heatmap?\",{\"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 Wrapped summary or Activity heatmap?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.\"}]]}],[\"$\",\"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/ai-coding-wrapped\",{\"href\":\"/features/ai-coding-wrapped\",\"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 ai-coding-wrapped\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/ai-coding-activity-heatmap\",{\"href\":\"/features/ai-coding-activity-heatmap\",\"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 ai-coding-activity-heatmap\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/guides/how-to-create-ai-coding-wrapped\",{\"href\":\"/guides/how-to-create-ai-coding-wrapped\",\"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\":\"guides how-to-create-ai-coding-wrapped\"}],[\"$\",\"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\":\"Wrapped vs activity heatmap | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.\"}],[\"$\",\"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,wrapped vs activity heatmap,AI coding retrospective,developer recap comparison\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Wrapped vs activity heatmap | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap\"}],[\"$\",\"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\":\"Wrapped vs activity heatmap | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[7437,["177","static/chunks/app/layout-6ebd9b17af55ec02.js"],""]
|
|
3
|
+
3:I[5965,[],""]
|
|
4
|
+
4:I[3609,[],""]
|
|
5
|
+
6:I[496,[],"OutletBoundary"]
|
|
6
|
+
8:I[3737,[],"AsyncMetadataOutlet"]
|
|
7
|
+
a:I[496,[],"ViewportBoundary"]
|
|
8
|
+
c:I[496,[],"MetadataBoundary"]
|
|
9
|
+
d:"$Sreact.suspense"
|
|
10
|
+
f:I[2207,[],""]
|
|
11
|
+
:HL["/_next/static/css/335de1248158d380.css","style"]
|
|
12
|
+
0:{"P":null,"b":"gPirvBMhpRSdtR0tsMj2H","p":"","c":["","compare","wrapped-vs-activity-heatmap"],"i":false,"f":[[["",{"children":["compare",{"children":[["slug","wrapped-vs-activity-heatmap","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","wrapped-vs-activity-heatmap","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
|
+
11:I[4816,["816","static/chunks/816-8960921093d57453.js","874","static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
|
|
14
|
+
10:T5bd,[{"@context":"https://schema.org","@type":"WebPage","name":"Wrapped vs activity heatmap","description":"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.","url":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap","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":"Wrapped vs activity heatmap","item":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Wrapped summary or Activity heatmap?","acceptedAnswer":{"@type":"Answer","text":"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance."}},{"@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":"Wrapped vs activity heatmap"}]]}],["$","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":"Wrapped vs activity heatmap"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story."}],["$","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
|
+
12:["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":"Both are recap surfaces, but they tell very different stories."}]
|
|
16
|
+
13:["$","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"}]}]]}]
|
|
17
|
+
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","Wrapped summary and Activity heatmap solve different reporting jobs.",{"children":"Wrapped summary and Activity heatmap solve different reporting jobs."}],["$","li","Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.",{"children":"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance."}],["$","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 --wrapped",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --wrapped"}],["$","code","npx vibestats --activity --days 365",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --activity --days 365"}]]}]]}]]}]
|
|
18
|
+
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","Best for",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Best for"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Narrative recap with totals, streaks, and model mix."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Visual rhythm and consistency over time."}]]}],["$","tr","Audience",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Audience"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Good for public sharing, end-of-year recaps, and general retrospectives."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Good for internal review, trend inspection, and cadence checks."}]]}],["$","tr","Tradeoff",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Tradeoff"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"More summary, less daily detail."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"More daily detail, less narrative framing."}]]}]]}]]}]}]]}]
|
|
19
|
+
16:["$","section",null,{"className":"mt-6 grid gap-4 md:grid-cols-2","children":[["$","article","Where Wrapped summary 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 Wrapped summary wins"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Best for: Narrative recap with totals, streaks, and model mix. Audience: Good for public sharing, end-of-year recaps, and general retrospectives. Tradeoff: More summary, less daily detail."}]]}],["$","article","Where Activity heatmap 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 Activity heatmap wins"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Best for: Visual rhythm and consistency over time. Audience: Good for internal review, trend inspection, and cadence checks. Tradeoff: More daily detail, less narrative framing."}]]}],["$","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 wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance."}]]}]]}]
|
|
20
|
+
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 Wrapped summary or Activity heatmap?",{"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 Wrapped summary or Activity heatmap?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance."}]]}],["$","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."}]]}]]}]]}]
|
|
21
|
+
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/ai-coding-wrapped",{"href":"/features/ai-coding-wrapped","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 ai-coding-wrapped"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$L11","/features/ai-coding-activity-heatmap",{"href":"/features/ai-coding-activity-heatmap","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 ai-coding-activity-heatmap"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$L11","/guides/how-to-create-ai-coding-wrapped",{"href":"/guides/how-to-create-ai-coding-wrapped","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":"guides how-to-create-ai-coding-wrapped"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}]]}]]}]
|
|
22
|
+
b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
23
|
+
7:null
|
|
24
|
+
9:{"metadata":[["$","title","0",{"children":"Wrapped vs activity heatmap | vibestats"}],["$","meta","1",{"name":"description","content":"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story."}],["$","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,wrapped vs activity heatmap,AI coding retrospective,developer recap comparison"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap"}],["$","meta","5",{"property":"og:title","content":"Wrapped vs activity heatmap | vibestats"}],["$","meta","6",{"property":"og:description","content":"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap"}],["$","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":"Wrapped vs activity heatmap | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story."}]],"error":null,"digest":"$undefined"}
|
|
25
|
+
e:"$9:metadata"
|