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,23 @@
|
|
|
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":["","use-cases","indie-hackers"],"i":false,"f":[[["",{"children":["use-cases",{"children":[["slug","indie-hackers","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":["use-cases",["$","$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","indie-hackers","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","546","static/chunks/app/use-cases/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
|
|
14
|
+
10:T588,[{"@context":"https://schema.org","@type":"WebPage","name":"vibestats for indie hackers","description":"Use vibestats to keep AI coding usage visible while shipping fast across product, experiments, and launch cycles.","url":"https://vibestats.wolfai.dev/use-cases/indie-hackers","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":"Use cases","item":"https://vibestats.wolfai.dev/use-cases"},{"@type":"ListItem","position":3,"name":"vibestats for indie hackers","item":"https://vibestats.wolfai.dev/use-cases/indie-hackers"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Why does vibestats for indie hackers matter?","acceptedAnswer":{"@type":"Answer","text":"vibestats for indie hackers matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time."}},{"@type":"Question","name":"Is this only for one kind of developer?","acceptedAnswer":{"@type":"Answer","text":"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize."}}]}]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":"/use-cases","className":"transition hover:text-orange-700","children":"Use cases"}],["$","span",null,{"children":"/"}],["$","span",null,{"className":"text-slate-700","children":"vibestats for indie hackers"}]]}],["$","p",null,{"className":"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Use case"}],["$","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":"vibestats for indie hackers"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Use vibestats to keep AI coding usage visible while shipping fast across product, experiments, and launch cycles."}],["$","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":"Use case"}]]}],["$","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":"vibestats for indie hackers focuses on a repeatable reporting workflow instead of raw token dumps."}]]}],"$L12"]}]]}],"$L13",null,null,"$L14","$L15","$L16"]}]]}]
|
|
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","Fast feedback without a reporting stack",{"children":"Fast feedback without a reporting stack"}],["$","li","Combined views fit multi-tool workflows",{"children":"Combined views fit multi-tool workflows"}],["$","li","Helps keep spend visible during rapid iteration",{"children":"Helps keep spend visible during rapid iteration"}]]}]]}],["$","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 all",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats all"}],["$","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 --wrapped",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --wrapped"}]]}]]}]]}]
|
|
17
|
+
14:["$","section",null,{"className":"mt-6 grid gap-4 md:grid-cols-2","children":[["$","article","Typical challenge",{"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":"Typical challenge"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Indie hackers move fast, switch tools often, and rarely want a heavy dashboard project just to understand usage and cost."}]]}],["$","article","Useful vibestats workflow",{"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":"Useful vibestats workflow"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use combined views for the overall picture, token-and-cost tracking for budget awareness, and wrapped or heatmap pages for motivation and trend review."}]]}],["$","article","Outcome",{"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":"Outcome"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"You keep AI coding analytics light enough to use continuously and structured enough to support launch or roadmap decisions."}]]}]]}]
|
|
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)]","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","Why does vibestats for indie hackers matter?",{"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":"Why does vibestats for indie hackers matter?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"vibestats for indie hackers matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time."}]]}],["$","article","Is this only for one kind of developer?",{"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 only for one kind of developer?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize."}]]}]]}]]}]
|
|
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":[["$","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":"/use-cases","className":"text-sm font-medium text-slate-700 transition hover:text-orange-700","children":["View all ","use cases"]}]]}],["$","div",null,{"className":"mt-5 grid gap-4 md:grid-cols-3","children":[["$","$L11","/features/combined-ai-coding-stats",{"href":"/features/combined-ai-coding-stats","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 combined-ai-coding-stats"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$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/weekly-reviews",{"href":"/use-cases/weekly-reviews","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 weekly-reviews"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}]]}]]}]
|
|
20
|
+
b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
21
|
+
7:null
|
|
22
|
+
9:{"metadata":[["$","title","0",{"children":"vibestats for indie hackers | vibestats"}],["$","meta","1",{"name":"description","content":"Use vibestats to keep AI coding usage visible while shipping fast across product, experiments, and launch cycles."}],["$","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,vibestats for indie hackers,indie hacker AI analytics,startup AI coding usage tracker"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/use-cases/indie-hackers"}],["$","meta","5",{"property":"og:title","content":"vibestats for indie hackers | vibestats"}],["$","meta","6",{"property":"og:description","content":"Use vibestats to keep AI coding usage visible while shipping fast across product, experiments, and launch cycles."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/use-cases/indie-hackers"}],["$","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":"vibestats for indie hackers | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"Use vibestats to keep AI coding usage visible while shipping fast across product, experiments, and launch cycles."}]],"error":null,"digest":"$undefined"}
|
|
23
|
+
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/use-cases/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>vibestats for monthly reporting | vibestats</title><meta name="description" content="Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix."/><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,monthly AI coding reporting,monthly developer AI analytics,AI coding budget report"/><link rel="canonical" href="https://vibestats.wolfai.dev/use-cases/monthly-reporting"/><meta property="og:title" content="vibestats for monthly reporting | vibestats"/><meta property="og:description" content="Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix."/><meta property="og:url" content="https://vibestats.wolfai.dev/use-cases/monthly-reporting"/><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="vibestats for monthly reporting | vibestats"/><meta name="twitter:description" content="Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix."/><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":"vibestats for monthly reporting","description":"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix.","url":"https://vibestats.wolfai.dev/use-cases/monthly-reporting","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":"Use cases","item":"https://vibestats.wolfai.dev/use-cases"},{"@type":"ListItem","position":3,"name":"vibestats for monthly reporting","item":"https://vibestats.wolfai.dev/use-cases/monthly-reporting"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Why does vibestats for monthly reporting matter?","acceptedAnswer":{"@type":"Answer","text":"vibestats for monthly reporting matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time."}},{"@type":"Question","name":"Is this only for one kind of developer?","acceptedAnswer":{"@type":"Answer","text":"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize."}}]}]</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="/use-cases">Use cases</a><span>/</span><span class="text-slate-700">vibestats for monthly reporting</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Use case</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">vibestats for monthly reporting</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix.</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">Use case</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">vibestats for monthly reporting focuses on a repeatable reporting workflow instead of raw token dumps.</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>Monthly aggregation reduces noise</li><li>Good fit for manager and stakeholder updates</li><li>Pairs well with cost and model reporting</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 --monthly</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 --total --json</code></div></article></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">Typical challenge</h2><p class="mt-4 text-sm leading-7 text-slate-600">Monthly reporting needs trend clarity and decision support, not a screen full of individual daily spikes.</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">Useful vibestats workflow</h2><p class="mt-4 text-sm leading-7 text-slate-600">Use monthly aggregation, total views, model grouping, and optional JSON exports to keep the report concise and reusable.</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">Outcome</h2><p class="mt-4 text-sm leading-7 text-slate-600">You get a report that is easier to use for budgeting, team review, and pattern detection over longer windows.</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">Why does vibestats for monthly reporting matter?</h2><p class="mt-3 text-sm leading-7 text-slate-600">vibestats for monthly reporting matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time.</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 only for one kind of developer?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize.</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="/use-cases">View all <!-- -->use cases</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="/compare/daily-vs-monthly-ai-usage-reports"><span class="block font-semibold text-slate-950">compare daily-vs-monthly-ai-usage-reports</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/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="/features/json-and-automation-exports"><span class="block font-semibold text-slate-950">features json-and-automation-exports</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a></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\":[\"\",\"use-cases\",\"monthly-reporting\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"use-cases\",{\"children\":[[\"slug\",\"monthly-reporting\",\"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\":[\"use-cases\",[\"$\",\"$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\",\"monthly-reporting\",\"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\",\"546\",\"static/chunks/app/use-cases/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T599,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"vibestats for monthly reporting\",\"description\":\"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix.\",\"url\":\"https://vibestats.wolfai.dev/use-cases/monthly-reporting\",\"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\":\"Use cases\",\"item\":\"https://vibestats.wolfai.dev/use-cases\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"vibestats for monthly reporting\",\"item\":\"https://vibestats.wolfai.dev/use-cases/monthly-reporting\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Why does vibestats for monthly reporting matter?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"vibestats for monthly reporting matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time.\"}},{\"@type\":\"Question\",\"name\":\"Is this only for one kind of developer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize.\"}}]}]"])</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\":\"/use-cases\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Use cases\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"vibestats for monthly reporting\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Use case\"}],[\"$\",\"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\":\"vibestats for monthly reporting\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix.\"}],[\"$\",\"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\":\"Use case\"}]]}],[\"$\",\"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\":\"vibestats for monthly reporting focuses on a repeatable reporting workflow instead of raw token dumps.\"}]]}],\"$L12\"]}]]}],\"$L13\",null,null,\"$L14\",\"$L15\",\"$L16\"]}]]}]\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\",\"Monthly aggregation reduces noise\",{\"children\":\"Monthly aggregation reduces noise\"}],[\"$\",\"li\",\"Good fit for manager and stakeholder updates\",{\"children\":\"Good fit for manager and stakeholder updates\"}],[\"$\",\"li\",\"Pairs well with cost and model reporting\",{\"children\":\"Pairs well with cost and model reporting\"}]]}]]}],[\"$\",\"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 --monthly\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --monthly\"}],[\"$\",\"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 --total --json\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --total --json\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Typical challenge\",{\"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\":\"Typical challenge\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Monthly reporting needs trend clarity and decision support, not a screen full of individual daily spikes.\"}]]}],[\"$\",\"article\",\"Useful vibestats workflow\",{\"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\":\"Useful vibestats workflow\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Use monthly aggregation, total views, model grouping, and optional JSON exports to keep the report concise and reusable.\"}]]}],[\"$\",\"article\",\"Outcome\",{\"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\":\"Outcome\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"You get a report that is easier to use for budgeting, team review, and pattern detection over longer windows.\"}]]}]]}]\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)]\",\"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\",\"Why does vibestats for monthly reporting matter?\",{\"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\":\"Why does vibestats for monthly reporting matter?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"vibestats for monthly reporting matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time.\"}]]}],[\"$\",\"article\",\"Is this only for one kind of developer?\",{\"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 only for one kind of developer?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize.\"}]]}]]}]]}]\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\":[[\"$\",\"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\":\"/use-cases\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"use cases\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/compare/daily-vs-monthly-ai-usage-reports\",{\"href\":\"/compare/daily-vs-monthly-ai-usage-reports\",\"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\":\"compare daily-vs-monthly-ai-usage-reports\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$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\",\"/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.\"}]]}]]}]]}]\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\":\"vibestats for monthly reporting | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix.\"}],[\"$\",\"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,monthly AI coding reporting,monthly developer AI analytics,AI coding budget report\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/use-cases/monthly-reporting\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"vibestats for monthly reporting | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/use-cases/monthly-reporting\"}],[\"$\",\"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\":\"vibestats for monthly reporting | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|
|
@@ -0,0 +1,23 @@
|
|
|
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":["","use-cases","monthly-reporting"],"i":false,"f":[[["",{"children":["use-cases",{"children":[["slug","monthly-reporting","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":["use-cases",["$","$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","monthly-reporting","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","546","static/chunks/app/use-cases/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
|
|
14
|
+
10:T599,[{"@context":"https://schema.org","@type":"WebPage","name":"vibestats for monthly reporting","description":"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix.","url":"https://vibestats.wolfai.dev/use-cases/monthly-reporting","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":"Use cases","item":"https://vibestats.wolfai.dev/use-cases"},{"@type":"ListItem","position":3,"name":"vibestats for monthly reporting","item":"https://vibestats.wolfai.dev/use-cases/monthly-reporting"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Why does vibestats for monthly reporting matter?","acceptedAnswer":{"@type":"Answer","text":"vibestats for monthly reporting matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time."}},{"@type":"Question","name":"Is this only for one kind of developer?","acceptedAnswer":{"@type":"Answer","text":"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize."}}]}]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":"/use-cases","className":"transition hover:text-orange-700","children":"Use cases"}],["$","span",null,{"children":"/"}],["$","span",null,{"className":"text-slate-700","children":"vibestats for monthly reporting"}]]}],["$","p",null,{"className":"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Use case"}],["$","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":"vibestats for monthly reporting"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix."}],["$","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":"Use case"}]]}],["$","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":"vibestats for monthly reporting focuses on a repeatable reporting workflow instead of raw token dumps."}]]}],"$L12"]}]]}],"$L13",null,null,"$L14","$L15","$L16"]}]]}]
|
|
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","Monthly aggregation reduces noise",{"children":"Monthly aggregation reduces noise"}],["$","li","Good fit for manager and stakeholder updates",{"children":"Good fit for manager and stakeholder updates"}],["$","li","Pairs well with cost and model reporting",{"children":"Pairs well with cost and model reporting"}]]}]]}],["$","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 --monthly",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --monthly"}],["$","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 --total --json",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --total --json"}]]}]]}]]}]
|
|
17
|
+
14:["$","section",null,{"className":"mt-6 grid gap-4 md:grid-cols-2","children":[["$","article","Typical challenge",{"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":"Typical challenge"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Monthly reporting needs trend clarity and decision support, not a screen full of individual daily spikes."}]]}],["$","article","Useful vibestats workflow",{"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":"Useful vibestats workflow"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use monthly aggregation, total views, model grouping, and optional JSON exports to keep the report concise and reusable."}]]}],["$","article","Outcome",{"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":"Outcome"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"You get a report that is easier to use for budgeting, team review, and pattern detection over longer windows."}]]}]]}]
|
|
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)]","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","Why does vibestats for monthly reporting matter?",{"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":"Why does vibestats for monthly reporting matter?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"vibestats for monthly reporting matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time."}]]}],["$","article","Is this only for one kind of developer?",{"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 only for one kind of developer?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize."}]]}]]}]]}]
|
|
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":[["$","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":"/use-cases","className":"text-sm font-medium text-slate-700 transition hover:text-orange-700","children":["View all ","use cases"]}]]}],["$","div",null,{"className":"mt-5 grid gap-4 md:grid-cols-3","children":[["$","$L11","/compare/daily-vs-monthly-ai-usage-reports",{"href":"/compare/daily-vs-monthly-ai-usage-reports","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":"compare daily-vs-monthly-ai-usage-reports"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$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","/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."}]]}]]}]]}]
|
|
20
|
+
b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
21
|
+
7:null
|
|
22
|
+
9:{"metadata":[["$","title","0",{"children":"vibestats for monthly reporting | vibestats"}],["$","meta","1",{"name":"description","content":"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix."}],["$","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,monthly AI coding reporting,monthly developer AI analytics,AI coding budget report"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/use-cases/monthly-reporting"}],["$","meta","5",{"property":"og:title","content":"vibestats for monthly reporting | vibestats"}],["$","meta","6",{"property":"og:description","content":"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/use-cases/monthly-reporting"}],["$","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":"vibestats for monthly reporting | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix."}]],"error":null,"digest":"$undefined"}
|
|
23
|
+
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/use-cases/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>vibestats for open-source maintainers | vibestats</title><meta name="description" content="Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts."/><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,vibestats for open source,open source AI coding analytics,maintainer activity tracking"/><link rel="canonical" href="https://vibestats.wolfai.dev/use-cases/open-source-maintainers"/><meta property="og:title" content="vibestats for open-source maintainers | vibestats"/><meta property="og:description" content="Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts."/><meta property="og:url" content="https://vibestats.wolfai.dev/use-cases/open-source-maintainers"/><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="vibestats for open-source maintainers | vibestats"/><meta name="twitter:description" content="Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts."/><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":"vibestats for open-source maintainers","description":"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts.","url":"https://vibestats.wolfai.dev/use-cases/open-source-maintainers","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":"Use cases","item":"https://vibestats.wolfai.dev/use-cases"},{"@type":"ListItem","position":3,"name":"vibestats for open-source maintainers","item":"https://vibestats.wolfai.dev/use-cases/open-source-maintainers"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Why does vibestats for open-source maintainers matter?","acceptedAnswer":{"@type":"Answer","text":"vibestats for open-source maintainers matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time."}},{"@type":"Question","name":"Is this only for one kind of developer?","acceptedAnswer":{"@type":"Answer","text":"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize."}}]}]</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="/use-cases">Use cases</a><span>/</span><span class="text-slate-700">vibestats for open-source maintainers</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Use case</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">vibestats for open-source maintainers</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts.</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">Use case</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">vibestats for open-source maintainers focuses on a repeatable reporting workflow instead of raw token dumps.</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>Cadence visibility matters more than vanity totals</li><li>Heatmaps fit release and maintenance cycles</li><li>Wrapped pages work well for annual recap posts</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 --activity</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --sessions</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --wrapped</code></div></article></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">Typical challenge</h2><p class="mt-4 text-sm leading-7 text-slate-600">Maintainers often work in bursts across fixes, release prep, and triage, which makes activity shape more important than one isolated total.</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">Useful vibestats workflow</h2><p class="mt-4 text-sm leading-7 text-slate-600">Use heatmaps and session views for cadence, model breakdowns for tooling review, and wrapped pages for longer-term retrospectives around open-source work.</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">Outcome</h2><p class="mt-4 text-sm leading-7 text-slate-600">You get a more honest picture of when AI support mattered, how steady the work was, and which models were actually useful over time.</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">Why does vibestats for open-source maintainers matter?</h2><p class="mt-3 text-sm leading-7 text-slate-600">vibestats for open-source maintainers matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time.</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 only for one kind of developer?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize.</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="/use-cases">View all <!-- -->use cases</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-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="/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="/use-cases/personal-retrospectives"><span class="block font-semibold text-slate-950">use-cases personal-retrospectives</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\":[\"\",\"use-cases\",\"open-source-maintainers\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"use-cases\",{\"children\":[[\"slug\",\"open-source-maintainers\",\"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\":[\"use-cases\",[\"$\",\"$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\",\"open-source-maintainers\",\"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\",\"546\",\"static/chunks/app/use-cases/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5c2,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"vibestats for open-source maintainers\",\"description\":\"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts.\",\"url\":\"https://vibestats.wolfai.dev/use-cases/open-source-maintainers\",\"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\":\"Use cases\",\"item\":\"https://vibestats.wolfai.dev/use-cases\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"vibestats for open-source maintainers\",\"item\":\"https://vibestats.wolfai.dev/use-cases/open-source-maintainers\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Why does vibestats for open-source maintainers matter?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"vibestats for open-source maintainers matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time.\"}},{\"@type\":\"Question\",\"name\":\"Is this only for one kind of developer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize.\"}}]}]"])</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\":\"/use-cases\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Use cases\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"vibestats for open-source maintainers\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Use case\"}],[\"$\",\"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\":\"vibestats for open-source maintainers\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts.\"}],[\"$\",\"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\":\"Use case\"}]]}],[\"$\",\"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,null,\"$L15\",\"$L16\",\"$L17\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"vibestats for open-source maintainers focuses on a repeatable reporting workflow instead of raw token dumps.\"}]\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\",\"Cadence visibility matters more than vanity totals\",{\"children\":\"Cadence visibility matters more than vanity totals\"}],[\"$\",\"li\",\"Heatmaps fit release and maintenance cycles\",{\"children\":\"Heatmaps fit release and maintenance cycles\"}],[\"$\",\"li\",\"Wrapped pages work well for annual recap posts\",{\"children\":\"Wrapped pages work well for annual recap posts\"}]]}]]}],[\"$\",\"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 --activity\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --activity\"}],[\"$\",\"code\",\"npx vibestats --sessions\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --sessions\"}],[\"$\",\"code\",\"npx vibestats --wrapped\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --wrapped\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Typical challenge\",{\"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\":\"Typical challenge\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Maintainers often work in bursts across fixes, release prep, and triage, which makes activity shape more important than one isolated total.\"}]]}],[\"$\",\"article\",\"Useful vibestats workflow\",{\"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\":\"Useful vibestats workflow\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Use heatmaps and session views for cadence, model breakdowns for tooling review, and wrapped pages for longer-term retrospectives around open-source work.\"}]]}],[\"$\",\"article\",\"Outcome\",{\"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\":\"Outcome\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"You get a more honest picture of when AI support mattered, how steady the work was, and which models were actually useful over time.\"}]]}]]}]\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\",\"Why does vibestats for open-source maintainers matter?\",{\"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\":\"Why does vibestats for open-source maintainers matter?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"vibestats for open-source maintainers matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time.\"}]]}],[\"$\",\"article\",\"Is this only for one kind of developer?\",{\"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 only for one kind of developer?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize.\"}]]}]]}]]}]\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\":\"/use-cases\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"use cases\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$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\",\"/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\",\"/use-cases/personal-retrospectives\",{\"href\":\"/use-cases/personal-retrospectives\",\"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 personal-retrospectives\"}],[\"$\",\"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\":\"vibestats for open-source maintainers | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts.\"}],[\"$\",\"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,vibestats for open source,open source AI coding analytics,maintainer activity tracking\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/use-cases/open-source-maintainers\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"vibestats for open-source maintainers | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/use-cases/open-source-maintainers\"}],[\"$\",\"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\":\"vibestats for open-source maintainers | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts.\"}]],\"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":["","use-cases","open-source-maintainers"],"i":false,"f":[[["",{"children":["use-cases",{"children":[["slug","open-source-maintainers","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":["use-cases",["$","$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","open-source-maintainers","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","546","static/chunks/app/use-cases/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
|
|
14
|
+
10:T5c2,[{"@context":"https://schema.org","@type":"WebPage","name":"vibestats for open-source maintainers","description":"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts.","url":"https://vibestats.wolfai.dev/use-cases/open-source-maintainers","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":"Use cases","item":"https://vibestats.wolfai.dev/use-cases"},{"@type":"ListItem","position":3,"name":"vibestats for open-source maintainers","item":"https://vibestats.wolfai.dev/use-cases/open-source-maintainers"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Why does vibestats for open-source maintainers matter?","acceptedAnswer":{"@type":"Answer","text":"vibestats for open-source maintainers matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time."}},{"@type":"Question","name":"Is this only for one kind of developer?","acceptedAnswer":{"@type":"Answer","text":"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize."}}]}]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":"/use-cases","className":"transition hover:text-orange-700","children":"Use cases"}],["$","span",null,{"children":"/"}],["$","span",null,{"className":"text-slate-700","children":"vibestats for open-source maintainers"}]]}],["$","p",null,{"className":"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Use case"}],["$","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":"vibestats for open-source maintainers"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts."}],["$","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":"Use case"}]]}],["$","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,null,"$L15","$L16","$L17"]}]]}]
|
|
15
|
+
12:["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":"vibestats for open-source maintainers focuses on a repeatable reporting workflow instead of raw token dumps."}]
|
|
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","Cadence visibility matters more than vanity totals",{"children":"Cadence visibility matters more than vanity totals"}],["$","li","Heatmaps fit release and maintenance cycles",{"children":"Heatmaps fit release and maintenance cycles"}],["$","li","Wrapped pages work well for annual recap posts",{"children":"Wrapped pages work well for annual recap posts"}]]}]]}],["$","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 --activity",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --activity"}],["$","code","npx vibestats --sessions",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --sessions"}],["$","code","npx vibestats --wrapped",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --wrapped"}]]}]]}]]}]
|
|
18
|
+
15:["$","section",null,{"className":"mt-6 grid gap-4 md:grid-cols-2","children":[["$","article","Typical challenge",{"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":"Typical challenge"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Maintainers often work in bursts across fixes, release prep, and triage, which makes activity shape more important than one isolated total."}]]}],["$","article","Useful vibestats workflow",{"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":"Useful vibestats workflow"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use heatmaps and session views for cadence, model breakdowns for tooling review, and wrapped pages for longer-term retrospectives around open-source work."}]]}],["$","article","Outcome",{"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":"Outcome"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"You get a more honest picture of when AI support mattered, how steady the work was, and which models were actually useful over time."}]]}]]}]
|
|
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","Why does vibestats for open-source maintainers matter?",{"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":"Why does vibestats for open-source maintainers matter?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"vibestats for open-source maintainers matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time."}]]}],["$","article","Is this only for one kind of developer?",{"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 only for one kind of developer?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize."}]]}]]}]]}]
|
|
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":"/use-cases","className":"text-sm font-medium text-slate-700 transition hover:text-orange-700","children":["View all ","use cases"]}]]}],["$","div",null,{"className":"mt-5 grid gap-4 md:grid-cols-3","children":[["$","$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","/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","/use-cases/personal-retrospectives",{"href":"/use-cases/personal-retrospectives","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 personal-retrospectives"}],["$","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":"vibestats for open-source maintainers | vibestats"}],["$","meta","1",{"name":"description","content":"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts."}],["$","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,vibestats for open source,open source AI coding analytics,maintainer activity tracking"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/use-cases/open-source-maintainers"}],["$","meta","5",{"property":"og:title","content":"vibestats for open-source maintainers | vibestats"}],["$","meta","6",{"property":"og:description","content":"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/use-cases/open-source-maintainers"}],["$","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":"vibestats for open-source maintainers | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts."}]],"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/use-cases/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>vibestats for personal retrospectives | vibestats</title><meta name="description" content="Use vibestats to review your AI coding habits, consistency, favorite models, and long-term patterns."/><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,personal AI coding retrospective,developer self review analytics,AI coding year in review"/><link rel="canonical" href="https://vibestats.wolfai.dev/use-cases/personal-retrospectives"/><meta property="og:title" content="vibestats for personal retrospectives | vibestats"/><meta property="og:description" content="Use vibestats to review your AI coding habits, consistency, favorite models, and long-term patterns."/><meta property="og:url" content="https://vibestats.wolfai.dev/use-cases/personal-retrospectives"/><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="vibestats for personal retrospectives | vibestats"/><meta name="twitter:description" content="Use vibestats to review your AI coding habits, consistency, favorite models, and long-term patterns."/><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":"vibestats for personal retrospectives","description":"Use vibestats to review your AI coding habits, consistency, favorite models, and long-term patterns.","url":"https://vibestats.wolfai.dev/use-cases/personal-retrospectives","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":"Use cases","item":"https://vibestats.wolfai.dev/use-cases"},{"@type":"ListItem","position":3,"name":"vibestats for personal retrospectives","item":"https://vibestats.wolfai.dev/use-cases/personal-retrospectives"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Why does vibestats for personal retrospectives matter?","acceptedAnswer":{"@type":"Answer","text":"vibestats for personal retrospectives matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time."}},{"@type":"Question","name":"Is this only for one kind of developer?","acceptedAnswer":{"@type":"Answer","text":"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize."}}]}]</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="/use-cases">Use cases</a><span>/</span><span class="text-slate-700">vibestats for personal retrospectives</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Use case</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">vibestats for personal retrospectives</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Use vibestats to review your AI coding habits, consistency, favorite models, and long-term patterns.</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">Use case</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">vibestats for personal retrospectives focuses on a repeatable reporting workflow instead of raw token dumps.</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 plus heatmap is a strong combo</li><li>Good for habit and consistency review</li><li>Works without building a personal dashboard</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><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --model</code></div></article></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">Typical challenge</h2><p class="mt-4 text-sm leading-7 text-slate-600">Personal retrospectives need enough structure to be useful, but they should still feel lightweight enough to run regularly.</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">Useful vibestats workflow</h2><p class="mt-4 text-sm leading-7 text-slate-600">Use wrapped pages for narrative recap, activity heatmaps for rhythm, and model or session views when you want to drill into a specific change.</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">Outcome</h2><p class="mt-4 text-sm leading-7 text-slate-600">You get a more useful self-review than simple gut feel and can compare different periods of AI-assisted coding more honestly.</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">Why does vibestats for personal retrospectives matter?</h2><p class="mt-3 text-sm leading-7 text-slate-600">vibestats for personal retrospectives matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time.</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 only for one kind of developer?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize.</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="/use-cases">View all <!-- -->use cases</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="/use-cases/open-source-maintainers"><span class="block font-semibold text-slate-950">use-cases open-source-maintainers</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\":[\"\",\"use-cases\",\"personal-retrospectives\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"use-cases\",{\"children\":[[\"slug\",\"personal-retrospectives\",\"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\":[\"use-cases\",[\"$\",\"$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\",\"personal-retrospectives\",\"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\",\"546\",\"static/chunks/app/use-cases/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5b7,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"vibestats for personal retrospectives\",\"description\":\"Use vibestats to review your AI coding habits, consistency, favorite models, and long-term patterns.\",\"url\":\"https://vibestats.wolfai.dev/use-cases/personal-retrospectives\",\"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\":\"Use cases\",\"item\":\"https://vibestats.wolfai.dev/use-cases\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"vibestats for personal retrospectives\",\"item\":\"https://vibestats.wolfai.dev/use-cases/personal-retrospectives\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Why does vibestats for personal retrospectives matter?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"vibestats for personal retrospectives matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time.\"}},{\"@type\":\"Question\",\"name\":\"Is this only for one kind of developer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize.\"}}]}]"])</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\":\"/use-cases\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Use cases\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"vibestats for personal retrospectives\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Use case\"}],[\"$\",\"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\":\"vibestats for personal retrospectives\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Use vibestats to review your AI coding habits, consistency, favorite models, and long-term patterns.\"}],[\"$\",\"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\":\"Use case\"}]]}],[\"$\",\"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,null,\"$L15\",\"$L16\",\"$L17\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"vibestats for personal retrospectives focuses on a repeatable reporting workflow instead of raw token dumps.\"}]\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 plus heatmap is a strong combo\",{\"children\":\"Wrapped plus heatmap is a strong combo\"}],[\"$\",\"li\",\"Good for habit and consistency review\",{\"children\":\"Good for habit and consistency review\"}],[\"$\",\"li\",\"Works without building a personal dashboard\",{\"children\":\"Works without building a personal dashboard\"}]]}]]}],[\"$\",\"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\"}],[\"$\",\"code\",\"npx vibestats --model\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --model\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Typical challenge\",{\"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\":\"Typical challenge\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Personal retrospectives need enough structure to be useful, but they should still feel lightweight enough to run regularly.\"}]]}],[\"$\",\"article\",\"Useful vibestats workflow\",{\"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\":\"Useful vibestats workflow\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Use wrapped pages for narrative recap, activity heatmaps for rhythm, and model or session views when you want to drill into a specific change.\"}]]}],[\"$\",\"article\",\"Outcome\",{\"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\":\"Outcome\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"You get a more useful self-review than simple gut feel and can compare different periods of AI-assisted coding more honestly.\"}]]}]]}]\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\",\"Why does vibestats for personal retrospectives matter?\",{\"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\":\"Why does vibestats for personal retrospectives matter?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"vibestats for personal retrospectives matters when people need a stable way to explain AI coding usage, patterns, or cost without reverse-engineering local files every time.\"}]]}],[\"$\",\"article\",\"Is this only for one kind of developer?\",{\"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 only for one kind of developer?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. The same reporting surface can support solo developers, client work, internal retrospectives, and manager reporting. The difference is usually which report you prioritize.\"}]]}]]}]]}]\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\":\"/use-cases\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"use cases\"]}]]}],[\"$\",\"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\",\"/use-cases/open-source-maintainers\",{\"href\":\"/use-cases/open-source-maintainers\",\"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 open-source-maintainers\"}],[\"$\",\"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\":\"vibestats for personal retrospectives | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Use vibestats to review your AI coding habits, consistency, favorite models, and long-term patterns.\"}],[\"$\",\"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,personal AI coding retrospective,developer self review analytics,AI coding year in review\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/use-cases/personal-retrospectives\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"vibestats for personal retrospectives | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Use vibestats to review your AI coding habits, consistency, favorite models, and long-term patterns.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/use-cases/personal-retrospectives\"}],[\"$\",\"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\":\"vibestats for personal retrospectives | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Use vibestats to review your AI coding habits, consistency, favorite models, and long-term patterns.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|