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,31 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[7437,["177","static/chunks/app/layout-6ebd9b17af55ec02.js"],""]
|
|
3
|
+
3:I[5965,[],""]
|
|
4
|
+
4:I[3609,[],""]
|
|
5
|
+
9:I[2207,[],""]
|
|
6
|
+
:HL["/_next/static/css/335de1248158d380.css","style"]
|
|
7
|
+
5:T6ca,{"@context":"https://schema.org","@type":"CollectionPage","name":"AI coding analytics use cases","description":"See how freelancers, agencies, engineering managers, consultants, researchers, and open-source maintainers use vibestats for reporting and retrospectives.","url":"https://vibestats.wolfai.dev/use-cases","mainEntity":{"@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats for freelancers","url":"https://vibestats.wolfai.dev/use-cases/freelancers"},{"@type":"ListItem","position":2,"name":"vibestats for AI agencies","url":"https://vibestats.wolfai.dev/use-cases/ai-agencies"},{"@type":"ListItem","position":3,"name":"vibestats for engineering managers","url":"https://vibestats.wolfai.dev/use-cases/engineering-managers"},{"@type":"ListItem","position":4,"name":"vibestats for open-source maintainers","url":"https://vibestats.wolfai.dev/use-cases/open-source-maintainers"},{"@type":"ListItem","position":5,"name":"vibestats for indie hackers","url":"https://vibestats.wolfai.dev/use-cases/indie-hackers"},{"@type":"ListItem","position":6,"name":"vibestats for consultants","url":"https://vibestats.wolfai.dev/use-cases/consultants"},{"@type":"ListItem","position":7,"name":"vibestats for researchers","url":"https://vibestats.wolfai.dev/use-cases/researchers"},{"@type":"ListItem","position":8,"name":"vibestats for weekly reviews","url":"https://vibestats.wolfai.dev/use-cases/weekly-reviews"},{"@type":"ListItem","position":9,"name":"vibestats for monthly reporting","url":"https://vibestats.wolfai.dev/use-cases/monthly-reporting"},{"@type":"ListItem","position":10,"name":"vibestats for personal retrospectives","url":"https://vibestats.wolfai.dev/use-cases/personal-retrospectives"}]}}0:{"P":null,"b":"gPirvBMhpRSdtR0tsMj2H","p":"","c":["","use-cases"],"i":false,"f":[[["",{"children":["use-cases",{"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":["__PAGE__",["$","$1","c",{"children":[["$","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":"$5"}}],"$L6"]}],null,"$L7"]}],{},null,false]},null,false]},null,false],"$L8",false]],"m":"$undefined","G":["$9",[]],"s":false,"S":true}
|
|
8
|
+
a:I[4816,["816","static/chunks/816-8960921093d57453.js","74","static/chunks/app/use-cases/page-5d0587c1d5910e68.js"],""]
|
|
9
|
+
16:I[496,[],"OutletBoundary"]
|
|
10
|
+
18:I[3737,[],"AsyncMetadataOutlet"]
|
|
11
|
+
1a:I[496,[],"ViewportBoundary"]
|
|
12
|
+
1c:I[496,[],"MetadataBoundary"]
|
|
13
|
+
1d:"$Sreact.suspense"
|
|
14
|
+
6:["$","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":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Use-case library"}],["$","h1",null,{"className":"mt-4 max-w-4xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl","children":"AI coding analytics use cases"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"See how freelancers, agencies, engineering managers, consultants, researchers, and open-source maintainers use vibestats for reporting and retrospectives."}],["$","div",null,{"className":"mt-6 grid gap-3 text-sm text-slate-600 md:grid-cols-3","children":[["$","div",null,{"className":"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4","children":[["$","strong",null,{"className":"block text-slate-950","children":[10," pages"]}],["$","span",null,{"className":"mt-2 block","children":"Built around real vibestats workflows instead of generic SEO filler."}]]}],["$","div",null,{"className":"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4","children":[["$","strong",null,{"className":"block text-slate-950","children":"Internal links"}],["$","span",null,{"className":"mt-2 block","children":"Each page connects to related features, guides, and use cases."}]]}],["$","div",null,{"className":"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4","children":[["$","strong",null,{"className":"block text-slate-950","children":"Search intent"}],["$","span",null,{"className":"mt-2 block","children":"Every page is focused on one product or reporting question."}]]}]]}]]}],["$","section",null,{"className":"mt-6 grid gap-4 md:grid-cols-2 xl:grid-cols-3","children":[["$","$La","freelancers",{"href":"/use-cases/freelancers","className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Use case"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"vibestats for freelancers"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use vibestats to review AI coding usage, communicate output, and keep cost visibility across client projects."}],["$","ul",null,{"className":"mt-5 space-y-2 text-sm leading-6 text-slate-600","children":[["$","li","Useful for client-facing recaps",{"children":"Useful for client-facing recaps"}],["$","li","Good fit for privacy-sensitive client work",{"children":"Good fit for privacy-sensitive client work"}],["$","li","Helps separate project review from raw conversation data",{"children":"Helps separate project review from raw conversation data"}]]}]]}],["$","$La","ai-agencies",{"href":"/use-cases/ai-agencies","className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Use case"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"vibestats for AI agencies"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use vibestats to standardize AI coding reporting across delivery work, internal tooling, and client recaps."}],["$","ul",null,{"className":"mt-5 space-y-2 text-sm leading-6 text-slate-600","children":["$Lb","$Lc","$Ld"]}]]}],"$Le","$Lf","$L10","$L11","$L12","$L13","$L14","$L15"]}]]}]
|
|
15
|
+
7:["$","$L16",null,{"children":["$L17",["$","$L18",null,{"promise":"$@19"}]]}]
|
|
16
|
+
8:["$","$1","h",{"children":[null,[["$","$L1a",null,{"children":"$L1b"}],null],["$","$L1c",null,{"children":["$","div",null,{"hidden":true,"children":["$","$1d",null,{"fallback":null,"children":"$L1e"}]}]}]]}]
|
|
17
|
+
b:["$","li","Standardizes reporting across projects",{"children":"Standardizes reporting across projects"}]
|
|
18
|
+
c:["$","li","Can feed internal dashboards via JSON",{"children":"Can feed internal dashboards via JSON"}]
|
|
19
|
+
d:["$","li","Share pages are better than screenshots for reviews",{"children":"Share pages are better than screenshots for reviews"}]
|
|
20
|
+
e:["$","$La","engineering-managers",{"href":"/use-cases/engineering-managers","className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Use case"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"vibestats for engineering managers"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use vibestats to create higher-level AI coding reports for reviews, tooling decisions, and cadence analysis."}],["$","ul",null,{"className":"mt-5 space-y-2 text-sm leading-6 text-slate-600","children":[["$","li","Good for monthly and quarterly review",{"children":"Good for monthly and quarterly review"}],["$","li","Model and combined views support tooling decisions",{"children":"Model and combined views support tooling decisions"}],["$","li","Visual pages are easier to scan in leadership contexts",{"children":"Visual pages are easier to scan in leadership contexts"}]]}]]}]
|
|
21
|
+
f:["$","$La","open-source-maintainers",{"href":"/use-cases/open-source-maintainers","className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Use case"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"vibestats for open-source maintainers"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use vibestats to review how AI coding supports long-running maintenance, release work, and contribution bursts."}],["$","ul",null,{"className":"mt-5 space-y-2 text-sm leading-6 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"}]]}]]}]
|
|
22
|
+
10:["$","$La","indie-hackers",{"href":"/use-cases/indie-hackers","className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Use case"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"vibestats for indie hackers"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use vibestats to keep AI coding usage visible while shipping fast across product, experiments, and launch cycles."}],["$","ul",null,{"className":"mt-5 space-y-2 text-sm leading-6 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"}]]}]]}]
|
|
23
|
+
11:["$","$La","consultants",{"href":"/use-cases/consultants","className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Use case"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"vibestats for consultants"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use vibestats when privacy, client context, and explainable AI usage matter more than a cloud-first dashboard."}],["$","ul",null,{"className":"mt-5 space-y-2 text-sm leading-6 text-slate-600","children":[["$","li","Strong fit for privacy-sensitive delivery",{"children":"Strong fit for privacy-sensitive delivery"}],["$","li","Aggregate shares are easier to discuss than raw logs",{"children":"Aggregate shares are easier to discuss than raw logs"}],["$","li","Project-scoped views help with client review",{"children":"Project-scoped views help with client review"}]]}]]}]
|
|
24
|
+
12:["$","$La","researchers",{"href":"/use-cases/researchers","className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Use case"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"vibestats for researchers"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use vibestats to compare model usage, review activity patterns, and keep a local record of AI-assisted research coding."}],["$","ul",null,{"className":"mt-5 space-y-2 text-sm leading-6 text-slate-600","children":[["$","li","Model breakdown is especially useful here",{"children":"Model breakdown is especially useful here"}],["$","li","Good fit for long research cycles",{"children":"Good fit for long research cycles"}],["$","li","Local-first default reduces friction around sensitive work",{"children":"Local-first default reduces friction around sensitive work"}]]}]]}]
|
|
25
|
+
13:["$","$La","weekly-reviews",{"href":"/use-cases/weekly-reviews","className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Use case"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"vibestats for weekly reviews"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use vibestats to run weekly AI coding reviews with daily trends, session spikes, and activity snapshots."}],["$","ul",null,{"className":"mt-5 space-y-2 text-sm leading-6 text-slate-600","children":[["$","li","Daily views are the right default here",{"children":"Daily views are the right default here"}],["$","li","Activity heatmaps add visual context fast",{"children":"Activity heatmaps add visual context fast"}],["$","li","Session breakdowns help explain spikes",{"children":"Session breakdowns help explain spikes"}]]}]]}]
|
|
26
|
+
14:["$","$La","monthly-reporting",{"href":"/use-cases/monthly-reporting","className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Use case"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"vibestats for monthly reporting"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use vibestats to build calmer, higher-level monthly AI coding reports around trends, spend, and model mix."}],["$","ul",null,{"className":"mt-5 space-y-2 text-sm leading-6 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"}]]}]]}]
|
|
27
|
+
15:["$","$La","personal-retrospectives",{"href":"/use-cases/personal-retrospectives","className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Use case"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"vibestats for personal retrospectives"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use vibestats to review your AI coding habits, consistency, favorite models, and long-term patterns."}],["$","ul",null,{"className":"mt-5 space-y-2 text-sm leading-6 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"}]]}]]}]
|
|
28
|
+
1b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
29
|
+
17:null
|
|
30
|
+
19:{"metadata":[["$","title","0",{"children":"Use Cases | vibestats"}],["$","meta","1",{"name":"description","content":"See how freelancers, agencies, engineering managers, consultants, researchers, and open-source maintainers use vibestats for reporting and retrospectives."}],["$","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,AI coding analytics use cases,developer reporting use cases,Claude Code reporting for teams"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/use-cases"}],["$","meta","5",{"property":"og:title","content":"Use Cases | vibestats"}],["$","meta","6",{"property":"og:description","content":"See how freelancers, agencies, engineering managers, consultants, researchers, and open-source maintainers use vibestats for reporting and retrospectives."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/use-cases"}],["$","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":"Use Cases | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"See how freelancers, agencies, engineering managers, consultants, researchers, and open-source maintainers use vibestats for reporting and retrospectives."}]],"error":null,"digest":"$undefined"}
|
|
31
|
+
1e:"$19: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/832-93b990b7ceeaa2c5.js" async=""></script><script src="/_next/static/chunks/app/wrapped/page-66b00de7736097db.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>AI Coding Wrapped | vibestats</title><meta name="description" content="Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, 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,Claude Code wrapped,Codex wrapped,AI coding wrapped,developer yearly recap"/><link rel="canonical" href="https://vibestats.wolfai.dev/wrapped"/><meta property="og:title" content="AI Coding Wrapped | vibestats"/><meta property="og:description" content="Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix."/><meta property="og:url" content="https://vibestats.wolfai.dev/wrapped"/><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="AI Coding Wrapped | vibestats"/><meta name="twitter:description" content="Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, 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><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","name":"vibestats wrapped","description":"Wrapped summaries for Claude Code and Codex CLI usage with streaks, totals, model mix, and optional share pages.","url":"https://vibestats.wolfai.dev/wrapped","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}}</script><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%)] text-slate-900 px-4 py-8 md:px-8 md:py-12"><div class="mx-auto max-w-7xl"><header class="border border-white/70 bg-white/80 shadow-[0_30px_80px_rgba(191,104,24,0.12)] backdrop-blur mb-10 rounded-[2rem] px-6 py-8 md:px-10"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Vibestats Wrapped</p><h1 class="max-w-4xl font-[family-name:var(--font-display)] leading-none text-slate-950 mt-4 text-5xl md:text-7xl">Your 2025 AI coding recap.</h1><p class="mt-5 text-base leading-7 md:text-lg max-w-3xl text-slate-600">Turn local Claude Code and Codex CLI usage into a polished wrapped summary with streaks, totals, model mix, and optional share links.</p></header><section class="grid gap-4 lg:grid-cols-[1.15fr_0.85fr]"><article class="rounded-[2rem] 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">Command</p><code class="mt-4 block rounded-[1.4rem] bg-slate-100 px-5 py-4 text-sm text-slate-700">npx vibestats --wrapped</code><p class="mt-5 text-sm leading-7 text-slate-600">Wrapped uses local aggregate stats to build a shareable year-in-review page. Quiet mode returns the URL only, while the standard output shows the report directly in the terminal.</p></article><article class="rounded-[2rem] 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">Includes</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>Year-style recap for local AI coding sessions</li><li>Peak day, busiest month, and longest streak</li><li>Model breakdown across Claude-compatible sources and Codex</li><li>Optional share pages with aggregate stats only</li></ul></article></section><section class="mt-6 rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white" href="/docs/commands#activity-wrapped"><strong class="block text-lg text-slate-950">Wrapped commands</strong><span class="mt-2 block text-sm leading-6 text-slate-600">See quiet mode, no-short mode, and related activity commands.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white" href="/activity"><strong class="block text-lg text-slate-950">Activity heatmaps</strong><span class="mt-2 block text-sm leading-6 text-slate-600">Pair your wrapped recap with a GitHub-style daily coding view.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white" href="/changelog"><strong class="block text-lg text-slate-950">Recent releases</strong><span class="mt-2 block text-sm leading-6 text-slate-600">Track how wrapped pages, shares, and model support have evolved.</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\":[\"\",\"wrapped\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"wrapped\",{\"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\":[\"wrapped\",[\"$\",\"$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],[\"$\",\"$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,"10:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"832\",\"static/chunks/832-93b990b7ceeaa2c5.js\",\"772\",\"static/chunks/app/wrapped/page-66b00de7736097db.js\"],\"\"]\n"])</script><script>self.__next_f.push([1,"5:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebPage\\\",\\\"name\\\":\\\"vibestats wrapped\\\",\\\"description\\\":\\\"Wrapped summaries for Claude Code and Codex CLI usage with streaks, totals, model mix, and optional share pages.\\\",\\\"url\\\":\\\"https://vibestats.wolfai.dev/wrapped\\\",\\\"isPartOf\\\":{\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"vibestats\\\",\\\"url\\\":\\\"https://vibestats.wolfai.dev/\\\"}}\"}}],[\"$\",\"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%)] text-slate-900 px-4 py-8 md:px-8 md:py-12\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"border border-white/70 bg-white/80 shadow-[0_30px_80px_rgba(191,104,24,0.12)] backdrop-blur mb-10 rounded-[2rem] px-6 py-8 md:px-10\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Vibestats Wrapped\"}],[\"$\",\"h1\",null,{\"className\":\"max-w-4xl font-[family-name:var(--font-display)] leading-none text-slate-950 mt-4 text-5xl md:text-7xl\",\"children\":\"Your 2025 AI coding recap.\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-base leading-7 md:text-lg max-w-3xl text-slate-600\",\"children\":\"Turn local Claude Code and Codex CLI usage into a polished wrapped summary with streaks, totals, model mix, and optional share links.\"}]]}],[[\"$\",\"section\",null,{\"className\":\"grid gap-4 lg:grid-cols-[1.15fr_0.85fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[2rem] 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\":\"Command\"}],[\"$\",\"code\",null,{\"className\":\"mt-4 block rounded-[1.4rem] bg-slate-100 px-5 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --wrapped\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-sm leading-7 text-slate-600\",\"children\":\"Wrapped uses local aggregate stats to build a shareable year-in-review page. Quiet mode returns the URL only, while the standard output shows the report directly in the terminal.\"}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[2rem] 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\":\"Includes\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"Year-style recap for local AI coding sessions\",{\"children\":\"Year-style recap for local AI coding sessions\"}],[\"$\",\"li\",\"Peak day, busiest month, and longest streak\",{\"children\":\"Peak day, busiest month, and longest streak\"}],[\"$\",\"li\",\"Model breakdown across Claude-compatible sources and Codex\",{\"children\":\"Model breakdown across Claude-compatible sources and Codex\"}],[\"$\",\"li\",\"Optional share pages with aggregate stats only\",{\"children\":\"Optional share pages with aggregate stats only\"}]]}]]}]]}],[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L10\",null,{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white\",\"href\":\"/docs/commands#activity-wrapped\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-lg text-slate-950\",\"children\":\"Wrapped commands\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block text-sm leading-6 text-slate-600\",\"children\":\"See quiet mode, no-short mode, and related activity commands.\"}]]}],\"$L11\",\"$L12\"]}]}]]]}]}]]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"$L10\",null,{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white\",\"href\":\"/activity\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-lg text-slate-950\",\"children\":\"Activity heatmaps\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block text-sm leading-6 text-slate-600\",\"children\":\"Pair your wrapped recap with a GitHub-style daily coding view.\"}]]}]\n12:[\"$\",\"$L10\",null,{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white\",\"href\":\"/changelog\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-lg text-slate-950\",\"children\":\"Recent releases\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block text-sm leading-6 text-slate-600\",\"children\":\"Track how wrapped pages, shares, and model support have evolved.\"}]]}]\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\":\"AI Coding Wrapped | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, 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,Claude Code wrapped,Codex wrapped,AI coding wrapped,developer yearly recap\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/wrapped\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"AI Coding Wrapped | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/wrapped\"}],[\"$\",\"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\":\"AI Coding Wrapped | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, 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,20 @@
|
|
|
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":["","wrapped"],"i":false,"f":[[["",{"children":["wrapped",{"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":["wrapped",["$","$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],["$","$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
|
+
10:I[4816,["816","static/chunks/816-8960921093d57453.js","832","static/chunks/832-93b990b7ceeaa2c5.js","772","static/chunks/app/wrapped/page-66b00de7736097db.js"],""]
|
|
14
|
+
5:[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"vibestats wrapped\",\"description\":\"Wrapped summaries for Claude Code and Codex CLI usage with streaks, totals, model mix, and optional share pages.\",\"url\":\"https://vibestats.wolfai.dev/wrapped\",\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"vibestats\",\"url\":\"https://vibestats.wolfai.dev/\"}}"}}],["$","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%)] text-slate-900 px-4 py-8 md:px-8 md:py-12","children":["$","div",null,{"className":"mx-auto max-w-7xl","children":[["$","header",null,{"className":"border border-white/70 bg-white/80 shadow-[0_30px_80px_rgba(191,104,24,0.12)] backdrop-blur mb-10 rounded-[2rem] px-6 py-8 md:px-10","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Vibestats Wrapped"}],["$","h1",null,{"className":"max-w-4xl font-[family-name:var(--font-display)] leading-none text-slate-950 mt-4 text-5xl md:text-7xl","children":"Your 2025 AI coding recap."}],["$","p",null,{"className":"mt-5 text-base leading-7 md:text-lg max-w-3xl text-slate-600","children":"Turn local Claude Code and Codex CLI usage into a polished wrapped summary with streaks, totals, model mix, and optional share links."}]]}],[["$","section",null,{"className":"grid gap-4 lg:grid-cols-[1.15fr_0.85fr]","children":[["$","article",null,{"className":"rounded-[2rem] 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":"Command"}],["$","code",null,{"className":"mt-4 block rounded-[1.4rem] bg-slate-100 px-5 py-4 text-sm text-slate-700","children":"npx vibestats --wrapped"}],["$","p",null,{"className":"mt-5 text-sm leading-7 text-slate-600","children":"Wrapped uses local aggregate stats to build a shareable year-in-review page. Quiet mode returns the URL only, while the standard output shows the report directly in the terminal."}]]}],["$","article",null,{"className":"rounded-[2rem] 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":"Includes"}],["$","ul",null,{"className":"mt-4 space-y-3 text-sm leading-7 text-slate-600","children":[["$","li","Year-style recap for local AI coding sessions",{"children":"Year-style recap for local AI coding sessions"}],["$","li","Peak day, busiest month, and longest streak",{"children":"Peak day, busiest month, and longest streak"}],["$","li","Model breakdown across Claude-compatible sources and Codex",{"children":"Model breakdown across Claude-compatible sources and Codex"}],["$","li","Optional share pages with aggregate stats only",{"children":"Optional share pages with aggregate stats only"}]]}]]}]]}],["$","section",null,{"className":"mt-6 rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":["$","div",null,{"className":"grid gap-4 md:grid-cols-3","children":[["$","$L10",null,{"className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white","href":"/docs/commands#activity-wrapped","children":[["$","strong",null,{"className":"block text-lg text-slate-950","children":"Wrapped commands"}],["$","span",null,{"className":"mt-2 block text-sm leading-6 text-slate-600","children":"See quiet mode, no-short mode, and related activity commands."}]]}],"$L11","$L12"]}]}]]]}]}]]
|
|
15
|
+
11:["$","$L10",null,{"className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white","href":"/activity","children":[["$","strong",null,{"className":"block text-lg text-slate-950","children":"Activity heatmaps"}],["$","span",null,{"className":"mt-2 block text-sm leading-6 text-slate-600","children":"Pair your wrapped recap with a GitHub-style daily coding view."}]]}]
|
|
16
|
+
12:["$","$L10",null,{"className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white","href":"/changelog","children":[["$","strong",null,{"className":"block text-lg text-slate-950","children":"Recent releases"}],["$","span",null,{"className":"mt-2 block text-sm leading-6 text-slate-600","children":"Track how wrapped pages, shares, and model support have evolved."}]]}]
|
|
17
|
+
b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
18
|
+
7:null
|
|
19
|
+
9:{"metadata":[["$","title","0",{"children":"AI Coding Wrapped | vibestats"}],["$","meta","1",{"name":"description","content":"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, 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,Claude Code wrapped,Codex wrapped,AI coding wrapped,developer yearly recap"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/wrapped"}],["$","meta","5",{"property":"og:title","content":"AI Coding Wrapped | vibestats"}],["$","meta","6",{"property":"og:description","content":"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/wrapped"}],["$","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":"AI Coding Wrapped | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix."}]],"error":null,"digest":"$undefined"}
|
|
20
|
+
e:"$9:metadata"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibestats",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "AI coding stats - usage tracking and annual wrapped for Claude Code & Codex",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,12 +18,6 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
"dist"
|
|
20
20
|
],
|
|
21
|
-
"scripts": {
|
|
22
|
-
"dev": "tsx src/index.ts",
|
|
23
|
-
"build": "tsup src/index.ts --format esm --dts --clean --shims",
|
|
24
|
-
"test": "tsx --test src/**/*.test.ts",
|
|
25
|
-
"prepublishOnly": "pnpm build && node ../../scripts/validate-release-metadata.mjs"
|
|
26
|
-
},
|
|
27
21
|
"keywords": [
|
|
28
22
|
"claude",
|
|
29
23
|
"claude-code",
|
|
@@ -51,5 +45,10 @@
|
|
|
51
45
|
},
|
|
52
46
|
"engines": {
|
|
53
47
|
"node": ">=18.0.0"
|
|
48
|
+
},
|
|
49
|
+
"scripts": {
|
|
50
|
+
"dev": "tsx src/index.ts",
|
|
51
|
+
"build": "pnpm --filter web build:static && tsup src/index.ts --format esm --dts --clean --shims && rm -rf dist/web && cp -R ../web/.next-static dist/web",
|
|
52
|
+
"test": "tsx --test \"src/*.test.ts\" \"src/**/*.test.ts\""
|
|
54
53
|
}
|
|
55
|
-
}
|
|
54
|
+
}
|