vibebusiness 1.2.87 → 1.2.89
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/.next/standalone/.env +27 -14
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +89 -72
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/.next/build-manifest.json +8 -8
- package/.next/standalone/.next/prerender-manifest.json +1 -1
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/routes-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/api/analyze/route.js +1 -1
- package/.next/standalone/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/briefing/route.js +1 -0
- package/.next/standalone/.next/server/app/api/briefing/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/checkout/route.js +1 -1
- package/.next/standalone/.next/server/app/api/config/detect-repos/route.js +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/epics/[id]/ideas/route.js +1 -1
- package/.next/standalone/.next/server/app/api/epics/[id]/ideas/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/epics/[id]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/epics/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/epics/route.js +1 -1
- package/.next/standalone/.next/server/app/api/epics/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/goals/[id]/kpis/route.js +1 -1
- package/.next/standalone/.next/server/app/api/goals/[id]/kpis/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/goals/[id]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/goals/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/goals/route.js +1 -1
- package/.next/standalone/.next/server/app/api/goals/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/health/route.js +1 -1
- package/.next/standalone/.next/server/app/api/hypotheses/[id]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/hypotheses/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/hypotheses/route.js +1 -1
- package/.next/standalone/.next/server/app/api/hypotheses/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/card/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/card/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/comments/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/comments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/implement/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/implement/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/transition/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/transition/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/implementations/route.js +1 -1
- package/.next/standalone/.next/server/app/api/implementations/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/investor-updates/generate/route.js +1 -1
- package/.next/standalone/.next/server/app/api/kpis/refresh/route.js +1 -1
- package/.next/standalone/.next/server/app/api/kpis/refresh/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/license/route.js +1 -1
- package/.next/standalone/.next/server/app/api/portal/route.js +1 -1
- package/.next/standalone/.next/server/app/api/provider-status/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/[id]/publish/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/[id]/publish/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/[id]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/webhook/route.js +1 -1
- package/.next/standalone/.next/server/app/briefing/page.js +1 -0
- package/.next/standalone/.next/server/app/briefing/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/briefing/page_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/goals/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/goals/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/goals/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/goals/page.js +1 -1
- package/.next/standalone/.next/server/app/goals/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/goals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hypotheses/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/hypotheses/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hypotheses/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hypotheses/page.js +1 -1
- package/.next/standalone/.next/server/app/hypotheses/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hypotheses/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/ideas/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/ideas/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/ideas/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -0
- package/.next/standalone/.next/server/app/index.meta +6 -0
- package/.next/standalone/.next/server/app/index.rsc +6 -0
- package/.next/standalone/.next/server/app/kanban/page.js +1 -0
- package/.next/standalone/.next/server/app/kanban/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/kanban/page_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/page.js +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/roadmap/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/investors/page.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/investors/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/roadmap/investors/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/page.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/roadmap/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/public/page.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/public/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/roadmap/public/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/sessions/page.js +1 -1
- package/.next/standalone/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +3 -3
- package/.next/standalone/.next/server/app/social/page.js +1 -1
- package/.next/standalone/.next/server/app/social/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/social/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/social.html +1 -1
- package/.next/standalone/.next/server/app/social.rsc +3 -3
- package/.next/standalone/.next/server/app/updates/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/updates/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/updates/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/updates/new/page.js +1 -1
- package/.next/standalone/.next/server/app/updates/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/updates/new.html +1 -1
- package/.next/standalone/.next/server/app/updates/new.rsc +3 -3
- package/.next/standalone/.next/server/app/updates/page.js +1 -1
- package/.next/standalone/.next/server/app/updates/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/updates/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +18 -15
- package/.next/standalone/.next/server/chunks/3098.js +1 -0
- package/.next/standalone/.next/server/chunks/3871.js +1 -1
- package/.next/standalone/.next/server/chunks/4355.js +1 -0
- package/.next/standalone/.next/server/chunks/4471.js +2 -2
- package/.next/standalone/.next/server/chunks/7151.js +10 -10
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/data/business-context.json +31 -181
- package/.next/standalone/data/codebase-snapshot.json +64 -42
- package/.next/standalone/data/competitors.json +39 -559
- package/.next/standalone/data/config.json +16 -40
- package/.next/standalone/data/goals.json +35 -410
- package/.next/standalone/data/positioning.json +10 -127
- package/.next/standalone/data/sessions.json +84 -299
- package/.next/standalone/node_modules/@esbuild/{darwin-arm64 → darwin-x64}/bin/esbuild +0 -0
- package/.next/standalone/node_modules/@esbuild/{darwin-arm64 → darwin-x64}/package.json +3 -3
- package/.next/standalone/package.json +3 -2
- package/.next/standalone/scripts/analyze.ts +70 -21
- package/.next/standalone/scripts/implement.ts +67 -17
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/templates/commands/distribution-google-ads.md +86 -0
- package/.next/standalone/templates/commands/distribution-meta-ads.md +106 -0
- package/.next/standalone/templates/commands/distribution-repurpose.md +121 -0
- package/.next/standalone/templates/commands/distribution-seo-content.md +115 -0
- package/.next/standalone/templates/commands/distribution-social-expansion.md +128 -0
- package/.next/static/chunks/147-b00f2ac2bbec93ae.js +1 -0
- package/.next/static/chunks/159-4ce492ccac6de8f7.js +1 -0
- package/.next/static/chunks/47-eba0f8b4f9b17641.js +1 -0
- package/.next/static/chunks/547-921898871311cd72.js +1 -0
- package/.next/static/chunks/619-2b2ff3b9eaef112c.js +1 -0
- package/.next/static/chunks/735-b33805b2b19d17ad.js +1 -0
- package/.next/static/chunks/879-7fbd95e93ddc4636.js +1 -0
- package/.next/static/chunks/930-330300153dfcbfc0.js +1 -0
- package/.next/static/chunks/app/briefing/page-683aba0c52e910d7.js +1 -0
- package/.next/static/chunks/app/goals/[id]/page-40818dc7e710eeda.js +1 -0
- package/.next/static/chunks/app/goals/page-f80a64a68854e357.js +1 -0
- package/.next/static/chunks/app/hypotheses/[id]/page-023c882fa395f3ed.js +1 -0
- package/.next/static/chunks/app/hypotheses/page-168748bde00e7d90.js +1 -0
- package/.next/static/chunks/app/ideas/[id]/page-5f33e0ecf590ddec.js +1 -0
- package/.next/static/chunks/app/kanban/page-4f18f1e4f56948a5.js +1 -0
- package/.next/static/chunks/app/layout-cd1571ba4ed4a0fa.js +1 -0
- package/.next/static/chunks/app/page-0a8b9a7b052e6eac.js +1 -0
- package/.next/static/chunks/app/roadmap/[id]/page-9ba8a537e30c633c.js +1 -0
- package/.next/static/chunks/app/roadmap/investors/{page-0095ea5695573796.js → page-a914223623f56df3.js} +1 -1
- package/.next/static/chunks/app/roadmap/page-30de1fdc304eb572.js +1 -0
- package/.next/static/chunks/app/roadmap/public/page-c481b3f9217919ac.js +1 -0
- package/.next/static/chunks/app/sessions/page-d7eefd2fd42b4d55.js +1 -0
- package/.next/static/chunks/app/settings/{page-3afa908a96ce4e51.js → page-caf6daf930e4f2c6.js} +1 -1
- package/.next/static/chunks/app/social/page-21daeca0cf8af46b.js +1 -0
- package/.next/static/chunks/app/updates/[id]/page-2807cd17ae4938d0.js +1 -0
- package/.next/static/chunks/app/updates/new/{page-dcc67ffca587dcc2.js → page-ac5b966024ce0ddc.js} +1 -1
- package/.next/static/chunks/app/updates/page-b6efcdaae7f4f6d2.js +1 -0
- package/.next/static/chunks/{main-6ee938c5db2d5eb4.js → main-3eb11800bc19ca7f.js} +1 -1
- package/.next/static/chunks/{main-app-f42d9aa726a818bf.js → main-app-06ab73909d2a44c7.js} +1 -1
- package/.next/static/chunks/webpack-616e068a201ad621.js +1 -0
- package/.next/static/css/ff70d16171b1c02c.css +3 -0
- package/dist/bin/vibebusiness.js +1 -8
- package/dist/scripts/analyze.js +161 -19
- package/dist/scripts/heartbeat.js +24 -129
- package/dist/scripts/implement.js +77 -15
- package/dist/scripts/scan.js +0 -3
- package/dist/scripts/social-routine.js +0 -3
- package/package.json +3 -2
- package/scripts/lib/video/compositions/DemoVideo.tsx +50 -134
- package/scripts/lib/video/compositions/Root.tsx +2 -21
- package/templates/commands/distribution-google-ads.md +86 -0
- package/templates/commands/distribution-meta-ads.md +106 -0
- package/templates/commands/distribution-repurpose.md +121 -0
- package/templates/commands/distribution-seo-content.md +115 -0
- package/templates/commands/distribution-social-expansion.md +128 -0
- package/.next/standalone/.next/server/chunks/6299.js +0 -1
- package/.next/standalone/.next/server/chunks/995.js +0 -1
- package/.next/standalone/data/.analysis-prompt.txt +0 -170
- package/.next/standalone/data/copy/landing-improvements-2026-02-20.md +0 -111
- package/.next/standalone/data/copy/landing-landing-page-2026-02-20.md +0 -68
- package/.next/standalone/data/email-campaigns/sequences/onboarding.md +0 -183
- package/.next/standalone/data/email-campaigns/welcome-2026-02-20.md +0 -42
- package/.next/standalone/data/heartbeat-sessions.json +0 -7550
- package/.next/standalone/data/hypotheses.json +0 -269
- package/.next/standalone/data/ideas.json +0 -10764
- package/.next/standalone/data/implementations.json +0 -3342
- package/.next/standalone/data/pages.json +0 -22
- package/.next/standalone/data/payments.json +0 -33
- package/.next/standalone/data/reports/visuals/idea-3f4595f7-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-4rxt3mkj-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-6631456b-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-boot-001-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-fb3eba74-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-first-tweet-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-lp-hero-specificity-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-lp-og-meta-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-lp-social-proof-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-prqf3lob-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-readme-landing-url-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-stripe-integration-card.png +0 -0
- package/.next/standalone/data/reports/visuals/promo-launch.png +0 -0
- package/.next/standalone/data/reports/visuals/promo-ship-fast.png +0 -0
- package/.next/standalone/data/reports/visuals/promo-while-you-slept-v2.png +0 -0
- package/.next/standalone/data/reports/visuals/promo-while-you-slept-v3.png +0 -0
- package/.next/standalone/data/reports/visuals/promo-while-you-slept.png +0 -0
- package/.next/standalone/data/social.json +0 -194
- package/.next/standalone/data/social.json.backup +0 -179
- package/.next/standalone/data/videos/ad-solo-founder-burnout.mp4 +0 -0
- package/.next/standalone/data/videos/ai-gets-business-feed.mp4 +0 -0
- package/.next/standalone/data/videos/idea-graveyard-feed.mp4 +0 -0
- package/.next/standalone/data/videos/lonely-founder-feed.mp4 +0 -0
- package/.next/standalone/data/videos/staging/ad-solo-founder-burnout.json +0 -54
- package/.next/standalone/data/videos/staging/ai-gets-business.json +0 -55
- package/.next/standalone/data/videos/staging/idea-graveyard.json +0 -61
- package/.next/standalone/data/videos/staging/lonely-founder.json +0 -60
- package/.next/standalone/data/videos/staging/while-you-slept-v2-fast.json +0 -67
- package/.next/standalone/data/videos/staging/while-you-slept-v3-dynamic.json +0 -67
- package/.next/standalone/data/videos/while-you-slept-demo-feed.mp4 +0 -0
- package/.next/standalone/data/videos/while-you-slept-v2-fast-feed.mp4 +0 -0
- package/.next/standalone/data/videos/while-you-slept-v3-dynamic-feed.mp4 +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/48519e014fdef8bfe40a0d447e90c96c/0.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/48519e014fdef8bfe40a0d447e90c96c/index.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/0.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/1.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/2.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/3.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/index.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/index.pack.old +0 -0
- package/.next/static/chunks/280-fd1092f75f985b1e.js +0 -1
- package/.next/static/chunks/354-d5bc9619159f46c5.js +0 -1
- package/.next/static/chunks/429-8f4030371ebef5c3.js +0 -1
- package/.next/static/chunks/809-833fcb9fe6e81fd6.js +0 -1
- package/.next/static/chunks/827-6cf4bfc10d1ff0c7.js +0 -1
- package/.next/static/chunks/851-65b033bf38847cbb.js +0 -1
- package/.next/static/chunks/app/goals/[id]/page-231bb4daae0f06eb.js +0 -1
- package/.next/static/chunks/app/goals/page-4dfa36ac38853b88.js +0 -1
- package/.next/static/chunks/app/hypotheses/[id]/page-6ec09d5470557c18.js +0 -1
- package/.next/static/chunks/app/hypotheses/page-1732b7466579493e.js +0 -1
- package/.next/static/chunks/app/ideas/[id]/page-b3dfe1e61fc656a4.js +0 -1
- package/.next/static/chunks/app/layout-eeef7928298d2198.js +0 -1
- package/.next/static/chunks/app/page-d325a95479e7c453.js +0 -1
- package/.next/static/chunks/app/roadmap/[id]/page-b93a96f017c8d3dd.js +0 -1
- package/.next/static/chunks/app/roadmap/page-eacd69a99fcfc658.js +0 -1
- package/.next/static/chunks/app/roadmap/public/page-6b791041894b76d2.js +0 -1
- package/.next/static/chunks/app/sessions/page-a56ea625acdfa13e.js +0 -1
- package/.next/static/chunks/app/social/page-5211c78a5f37df65.js +0 -1
- package/.next/static/chunks/app/updates/[id]/page-fa20533878416cd0.js +0 -1
- package/.next/static/chunks/app/updates/page-19a09d7046577f70.js +0 -1
- package/.next/static/chunks/webpack-a3c37fcbf859f6f9.js +0 -1
- package/.next/static/css/654766eb547c6bab.css +0 -3
- /package/.next/static/{kgtR3Ls8MG4aQqwp3I0UE → UaMf1fmArAE78vyk_zQVK}/_buildManifest.js +0 -0
- /package/.next/static/{kgtR3Ls8MG4aQqwp3I0UE → UaMf1fmArAE78vyk_zQVK}/_ssgManifest.js +0 -0
|
@@ -1,58 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"repos": [
|
|
3
3
|
{
|
|
4
|
-
"name": "
|
|
5
|
-
"path": "/Users/luismey/Code/
|
|
6
|
-
"github_url": "https://github.com/braza-ai/100xmanager",
|
|
4
|
+
"name": "100xmanager",
|
|
5
|
+
"path": "/Users/luismey/Code/100xmanager",
|
|
7
6
|
"type": "nextjs",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
7
|
+
"github_url": "https://github.com/braza-ai/100xmanager",
|
|
8
|
+
"default_branch": "main"
|
|
10
9
|
}
|
|
11
10
|
],
|
|
12
|
-
"workspace_dir": "/Users/luismey/Code/
|
|
11
|
+
"workspace_dir": "/Users/luismey/Code/100xmanager/.workspace",
|
|
13
12
|
"schedules": {
|
|
14
13
|
"quick": {
|
|
15
|
-
"focus": [
|
|
16
|
-
"recent_changes",
|
|
17
|
-
"todos",
|
|
18
|
-
"errors",
|
|
19
|
-
"fixme"
|
|
20
|
-
],
|
|
14
|
+
"focus": ["recent_changes", "todos", "error_patterns"],
|
|
21
15
|
"max_ideas": 5
|
|
22
16
|
},
|
|
23
17
|
"deep": {
|
|
24
|
-
"focus": [
|
|
25
|
-
"architecture",
|
|
26
|
-
"tech_debt",
|
|
27
|
-
"security",
|
|
28
|
-
"patterns",
|
|
29
|
-
"dependencies"
|
|
30
|
-
],
|
|
18
|
+
"focus": ["architecture", "tech_debt", "security", "patterns", "dependencies"],
|
|
31
19
|
"max_ideas": 15
|
|
32
20
|
},
|
|
33
21
|
"metrics": {
|
|
34
|
-
"focus": [
|
|
35
|
-
"funnels",
|
|
36
|
-
"dropoffs",
|
|
37
|
-
"conversions",
|
|
38
|
-
"performance"
|
|
39
|
-
],
|
|
22
|
+
"focus": ["funnels", "drop_offs", "conversions", "performance"],
|
|
40
23
|
"max_ideas": 10
|
|
41
24
|
},
|
|
42
|
-
"
|
|
43
|
-
"focus": [
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
],
|
|
48
|
-
"max_ideas":
|
|
25
|
+
"seo": {
|
|
26
|
+
"focus": ["blog_performance", "technical_seo", "content_gaps"],
|
|
27
|
+
"max_ideas": 8
|
|
28
|
+
},
|
|
29
|
+
"growth": {
|
|
30
|
+
"focus": ["paid_ads", "organic_social", "seo_content", "content_repurposing", "partnerships"],
|
|
31
|
+
"max_ideas": 10
|
|
49
32
|
}
|
|
50
|
-
},
|
|
51
|
-
"autonomy": {
|
|
52
|
-
"enabled": true,
|
|
53
|
-
"max_sub_task_timeout_ms": 600000,
|
|
54
|
-
"max_sub_tasks_per_idea": 10,
|
|
55
|
-
"max_retries_per_sub_task": 2,
|
|
56
|
-
"auto_merge": false
|
|
57
33
|
}
|
|
58
|
-
}
|
|
34
|
+
}
|
|
@@ -1,447 +1,72 @@
|
|
|
1
1
|
{
|
|
2
2
|
"goals": [
|
|
3
3
|
{
|
|
4
|
-
"id": "goal-
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"title": "Ship VibeBusiness Public npm Release",
|
|
8
|
-
"description": "Polish the product for public distribution. Complete CLI wrapper, setup wizard, and documentation. Ensure the first-run 10x moment works: npx vibebusiness → instant business analysis with specific, actionable recommendations in under 60 seconds.",
|
|
9
|
-
"category": "activation",
|
|
10
|
-
"target_value": 1,
|
|
11
|
-
"target_unit": "shipped_version",
|
|
12
|
-
"current_value": 1,
|
|
13
|
-
"baseline_value": 0,
|
|
14
|
-
"deadline": "2026-Q1",
|
|
15
|
-
"status": "achieved",
|
|
16
|
-
"kpis": [
|
|
17
|
-
{
|
|
18
|
-
"id": "kpi-npm-version",
|
|
19
|
-
"name": "Latest npm Version",
|
|
20
|
-
"description": "Current published version on npm registry",
|
|
21
|
-
"source": "npm",
|
|
22
|
-
"query": "npm view vibebusiness version",
|
|
23
|
-
"current_value": "1.2.68",
|
|
24
|
-
"target_value": "2.0.0",
|
|
25
|
-
"unit": "version",
|
|
26
|
-
"direction": "higher_is_better",
|
|
27
|
-
"history": [
|
|
28
|
-
{
|
|
29
|
-
"date": "2026-02-18",
|
|
30
|
-
"value": "1.2.0"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"date": "2026-02-23",
|
|
34
|
-
"value": "1.2.66"
|
|
35
|
-
}
|
|
36
|
-
]
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"id": "kpi-first-run-time",
|
|
40
|
-
"name": "First-Run Time to Value",
|
|
41
|
-
"description": "Time from `npx vibebusiness@latest init` in a fresh directory to first actionable business recommendation on screen. Baseline measurement for hyp-10x-moment and hyp-byok-adoption. v1.3.1 published 2026-02-19 — awaiting human timing run.",
|
|
42
|
-
"source": "manual",
|
|
43
|
-
"query": "Human timing: cd $(mktemp -d) && time npx vibebusiness@latest init — stop clock when first recommendation appears. Record seconds in current_value and add history entry.",
|
|
44
|
-
"current_value": null,
|
|
45
|
-
"target_value": 60,
|
|
46
|
-
"unit": "seconds",
|
|
47
|
-
"direction": "lower_is_better",
|
|
48
|
-
"history": []
|
|
49
|
-
}
|
|
50
|
-
],
|
|
51
|
-
"related_ideas": [
|
|
52
|
-
"idea-boot-001",
|
|
53
|
-
"idea-boot-002",
|
|
54
|
-
"idea-boot-003"
|
|
55
|
-
]
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"id": "goal-beta-users",
|
|
59
|
-
"created_at": "2026-02-18T00:00:00.000Z",
|
|
60
|
-
"updated_at": "2026-02-18T00:00:00.000Z",
|
|
61
|
-
"title": "Recruit 20 Indie Hacker Beta Users",
|
|
62
|
-
"description": "Find 20 solo founders from r/SaaS (409K members), Indie Hackers, and X who have shipped a product and struggle with 'what to build next.' Offer free access, watch them use the product, measure review and action rates. This cohort determines PMF velocity and provides case studies for launch.",
|
|
4
|
+
"id": "goal-acquisition",
|
|
5
|
+
"title": "First 50 Users",
|
|
6
|
+
"description": "Get 50 npm installs of vibebusiness CLI",
|
|
63
7
|
"category": "acquisition",
|
|
64
|
-
"target_value":
|
|
65
|
-
"target_unit": "
|
|
66
|
-
"current_value":
|
|
8
|
+
"target_value": 50,
|
|
9
|
+
"target_unit": "installs",
|
|
10
|
+
"current_value": null,
|
|
67
11
|
"baseline_value": 0,
|
|
68
12
|
"deadline": "2026-Q2",
|
|
69
13
|
"status": "behind",
|
|
70
14
|
"kpis": [
|
|
71
|
-
{
|
|
72
|
-
"id": "kpi-beta-signups",
|
|
73
|
-
"name": "Beta User Signups",
|
|
74
|
-
"description": "Number of indie hackers who sign up via waitlist. Tracked via PostHog waitlist_signup_success event.",
|
|
75
|
-
"source": "posthog",
|
|
76
|
-
"query": "PostHog event: waitlist_signup_success (last 30 days total count)",
|
|
77
|
-
"current_value": 0,
|
|
78
|
-
"target_value": 20,
|
|
79
|
-
"unit": "users",
|
|
80
|
-
"direction": "higher_is_better",
|
|
81
|
-
"history": [
|
|
82
|
-
{
|
|
83
|
-
"date": "2026-02-23",
|
|
84
|
-
"value": 0
|
|
85
|
-
}
|
|
86
|
-
]
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
"id": "kpi-beta-d7-retention",
|
|
90
|
-
"name": "Beta D7 Retention",
|
|
91
|
-
"description": "Percentage of beta users active after 7 days (ran at least one vibe cycle in week 2)",
|
|
92
|
-
"source": "manual",
|
|
93
|
-
"query": "Manual tracking of beta user activity",
|
|
94
|
-
"current_value": null,
|
|
95
|
-
"target_value": 40,
|
|
96
|
-
"unit": "percent",
|
|
97
|
-
"direction": "higher_is_better",
|
|
98
|
-
"history": []
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
"id": "kpi-beta-recommendation-review",
|
|
102
|
-
"name": "Recommendation Review Rate",
|
|
103
|
-
"description": "Percentage of vibe recommendations that beta users actually review (not just generated)",
|
|
104
|
-
"source": "manual",
|
|
105
|
-
"query": "Track recommendation views vs recommendations generated",
|
|
106
|
-
"current_value": null,
|
|
107
|
-
"target_value": 60,
|
|
108
|
-
"unit": "percent",
|
|
109
|
-
"direction": "higher_is_better",
|
|
110
|
-
"history": []
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"id": "kpi-init-completion-rate",
|
|
114
|
-
"name": "Init-to-First-Scan Activation Rate",
|
|
115
|
-
"description": "Percentage of users who start vibebusiness init and complete their first vibe cycle. Computed as kpi-cli-scan-count / kpi-cli-init-count. Primary metric for hyp-byok-adoption. Target: ≥60%.",
|
|
116
|
-
"source": "posthog",
|
|
117
|
-
"query": "Derived: PostHog command_run[command=scan] / command_run[command=init] × 100",
|
|
118
|
-
"current_value": null,
|
|
119
|
-
"target_value": 60,
|
|
120
|
-
"unit": "percent",
|
|
121
|
-
"direction": "higher_is_better",
|
|
122
|
-
"history": []
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
"id": "kpi-cli-init-count",
|
|
126
|
-
"name": "CLI Init Commands",
|
|
127
|
-
"description": "Total vibebusiness init commands run. Denominator for activation rate.",
|
|
128
|
-
"source": "posthog",
|
|
129
|
-
"query": "PostHog event: command_run where command=init (last 30 days)",
|
|
130
|
-
"current_value": 0,
|
|
131
|
-
"target_value": null,
|
|
132
|
-
"unit": "count",
|
|
133
|
-
"direction": "higher_is_better",
|
|
134
|
-
"history": [
|
|
135
|
-
{
|
|
136
|
-
"date": "2026-02-23",
|
|
137
|
-
"value": 0
|
|
138
|
-
}
|
|
139
|
-
]
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
"id": "kpi-cli-scan-count",
|
|
143
|
-
"name": "CLI First Scan Commands",
|
|
144
|
-
"description": "Total vibebusiness scan commands run. Numerator for activation rate.",
|
|
145
|
-
"source": "posthog",
|
|
146
|
-
"query": "PostHog event: command_run where command=scan (last 30 days)",
|
|
147
|
-
"current_value": 0,
|
|
148
|
-
"target_value": null,
|
|
149
|
-
"unit": "count",
|
|
150
|
-
"direction": "higher_is_better",
|
|
151
|
-
"history": [
|
|
152
|
-
{
|
|
153
|
-
"date": "2026-02-23",
|
|
154
|
-
"value": 0
|
|
155
|
-
}
|
|
156
|
-
]
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
"id": "kpi-cli-vibe-count",
|
|
160
|
-
"name": "CLI Vibe Cycle Commands",
|
|
161
|
-
"description": "Total vibebusiness vibe commands run. Measures ongoing product engagement.",
|
|
162
|
-
"source": "posthog",
|
|
163
|
-
"query": "PostHog event: command_run where command=vibe (last 30 days)",
|
|
164
|
-
"current_value": 0,
|
|
165
|
-
"target_value": null,
|
|
166
|
-
"unit": "count",
|
|
167
|
-
"direction": "higher_is_better",
|
|
168
|
-
"history": [
|
|
169
|
-
{
|
|
170
|
-
"date": "2026-02-23",
|
|
171
|
-
"value": 0
|
|
172
|
-
}
|
|
173
|
-
]
|
|
174
|
-
}
|
|
175
|
-
],
|
|
176
|
-
"related_ideas": [
|
|
177
|
-
"idea-byok-experiment",
|
|
178
|
-
"idea-lp-waitlist"
|
|
179
|
-
]
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
"id": "goal-100-paying",
|
|
183
|
-
"created_at": "2026-02-18T00:00:00.000Z",
|
|
184
|
-
"updated_at": "2026-02-18T00:00:00.000Z",
|
|
185
|
-
"title": "Achieve 100 Paying Customers",
|
|
186
|
-
"description": "Convert beta users and launch traffic into 100 paying Pro subscribers at $29/month. Launch via Show HN + Product Hunt + Indie Hackers milestone post in Month 3. Target 11.7% free-to-paid conversion (developer tool benchmark).",
|
|
187
|
-
"category": "revenue",
|
|
188
|
-
"target_value": 100,
|
|
189
|
-
"target_unit": "paying_customers",
|
|
190
|
-
"current_value": 0,
|
|
191
|
-
"baseline_value": 0,
|
|
192
|
-
"deadline": "2026-Q3",
|
|
193
|
-
"status": "behind",
|
|
194
|
-
"kpis": [
|
|
195
|
-
{
|
|
196
|
-
"id": "kpi-paying-users",
|
|
197
|
-
"name": "Paying Users",
|
|
198
|
-
"description": "Number of active Pro subscribers ($29/month). Tracked via PostHog checkout_completed event.",
|
|
199
|
-
"source": "posthog",
|
|
200
|
-
"query": "PostHog event: checkout_completed (last 30 days total count)",
|
|
201
|
-
"current_value": 0,
|
|
202
|
-
"target_value": 100,
|
|
203
|
-
"unit": "users",
|
|
204
|
-
"direction": "higher_is_better",
|
|
205
|
-
"history": [
|
|
206
|
-
{
|
|
207
|
-
"date": "2026-02-23",
|
|
208
|
-
"value": 0
|
|
209
|
-
}
|
|
210
|
-
]
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
"id": "kpi-free-to-paid",
|
|
214
|
-
"name": "Free-to-Paid Conversion Rate",
|
|
215
|
-
"description": "Percentage of free users who convert to Pro. Developer tool benchmark: 11.7%",
|
|
216
|
-
"source": "manual",
|
|
217
|
-
"query": "Paying users / total active free users",
|
|
218
|
-
"current_value": null,
|
|
219
|
-
"target_value": 11.7,
|
|
220
|
-
"unit": "percent",
|
|
221
|
-
"direction": "higher_is_better",
|
|
222
|
-
"history": []
|
|
223
|
-
},
|
|
224
15
|
{
|
|
225
16
|
"id": "kpi-npm-downloads",
|
|
226
|
-
"name": "npm
|
|
227
|
-
"description": "Weekly download count
|
|
17
|
+
"name": "Weekly npm Downloads",
|
|
18
|
+
"description": "Weekly download count from npm",
|
|
228
19
|
"source": "manual",
|
|
229
|
-
"query": "npm
|
|
230
|
-
"current_value":
|
|
231
|
-
"target_value":
|
|
20
|
+
"query": "npm api downloads/point/last-week/vibebusiness",
|
|
21
|
+
"current_value": null,
|
|
22
|
+
"target_value": 50,
|
|
232
23
|
"unit": "downloads/week",
|
|
233
24
|
"direction": "higher_is_better",
|
|
234
25
|
"history": []
|
|
235
26
|
}
|
|
236
27
|
],
|
|
237
|
-
"related_ideas": [
|
|
238
|
-
"idea-boot-005"
|
|
239
|
-
]
|
|
28
|
+
"related_ideas": []
|
|
240
29
|
},
|
|
241
30
|
{
|
|
242
|
-
"id": "goal-
|
|
243
|
-
"
|
|
244
|
-
"
|
|
245
|
-
"
|
|
246
|
-
"
|
|
247
|
-
"
|
|
248
|
-
"
|
|
249
|
-
"target_unit": "dollars_mrr",
|
|
250
|
-
"current_value": 0,
|
|
31
|
+
"id": "goal-activation",
|
|
32
|
+
"title": "10 Active Beta Users",
|
|
33
|
+
"description": "Get 10 users who run at least 3 heartbeats",
|
|
34
|
+
"category": "activation",
|
|
35
|
+
"target_value": 10,
|
|
36
|
+
"target_unit": "users",
|
|
37
|
+
"current_value": null,
|
|
251
38
|
"baseline_value": 0,
|
|
252
|
-
"deadline": "
|
|
39
|
+
"deadline": "2026-Q2",
|
|
253
40
|
"status": "behind",
|
|
254
41
|
"kpis": [
|
|
255
42
|
{
|
|
256
|
-
"id": "kpi-
|
|
257
|
-
"name": "
|
|
258
|
-
"description": "
|
|
259
|
-
"source": "manual",
|
|
260
|
-
"query": "Stripe MRR calculation",
|
|
261
|
-
"current_value": 0,
|
|
262
|
-
"target_value": 50000,
|
|
263
|
-
"unit": "dollars",
|
|
264
|
-
"direction": "higher_is_better",
|
|
265
|
-
"history": []
|
|
266
|
-
},
|
|
267
|
-
{
|
|
268
|
-
"id": "kpi-monthly-churn",
|
|
269
|
-
"name": "Monthly Logo Churn Rate",
|
|
270
|
-
"description": "Percentage of paying customers who cancel per month. Target: <5% for SMB.",
|
|
271
|
-
"source": "manual",
|
|
272
|
-
"query": "Churned customers / total customers at start of month",
|
|
273
|
-
"current_value": null,
|
|
274
|
-
"target_value": 5,
|
|
275
|
-
"unit": "percent",
|
|
276
|
-
"direction": "lower_is_better",
|
|
277
|
-
"history": []
|
|
278
|
-
},
|
|
279
|
-
{
|
|
280
|
-
"id": "kpi-nrr",
|
|
281
|
-
"name": "Net Revenue Retention",
|
|
282
|
-
"description": "NRR target >120% through Solo → Pro → Team upgrades. Linear achieves 145%+.",
|
|
43
|
+
"id": "kpi-active-users",
|
|
44
|
+
"name": "Active Beta Users",
|
|
45
|
+
"description": "Users who ran 3+ heartbeats",
|
|
283
46
|
"source": "manual",
|
|
284
|
-
"query": "
|
|
47
|
+
"query": "telemetry",
|
|
285
48
|
"current_value": null,
|
|
286
|
-
"target_value":
|
|
287
|
-
"unit": "
|
|
49
|
+
"target_value": 10,
|
|
50
|
+
"unit": "users",
|
|
288
51
|
"direction": "higher_is_better",
|
|
289
52
|
"history": []
|
|
290
53
|
}
|
|
291
54
|
],
|
|
292
|
-
"related_ideas": [
|
|
293
|
-
"idea-v5uf36b5",
|
|
294
|
-
"idea-qektmy0t",
|
|
295
|
-
"idea-z113km4d",
|
|
296
|
-
"idea-4rxt3mkj",
|
|
297
|
-
"idea-prqf3lob"
|
|
298
|
-
]
|
|
55
|
+
"related_ideas": []
|
|
299
56
|
},
|
|
300
57
|
{
|
|
301
|
-
"id": "goal-
|
|
302
|
-
"
|
|
303
|
-
"
|
|
304
|
-
"
|
|
305
|
-
"
|
|
306
|
-
"
|
|
307
|
-
"target_value": 1000,
|
|
308
|
-
"target_unit": "followers",
|
|
58
|
+
"id": "goal-revenue",
|
|
59
|
+
"title": "Validate Willingness to Pay",
|
|
60
|
+
"description": "Get 3 people to say they would pay $20+/month",
|
|
61
|
+
"category": "revenue",
|
|
62
|
+
"target_value": 3,
|
|
63
|
+
"target_unit": "signals",
|
|
309
64
|
"current_value": 0,
|
|
310
65
|
"baseline_value": 0,
|
|
311
66
|
"deadline": "2026-Q3",
|
|
312
67
|
"status": "behind",
|
|
313
|
-
"kpis": [
|
|
314
|
-
{
|
|
315
|
-
"id": "kpi-twitter-followers",
|
|
316
|
-
"name": "X/Twitter Followers",
|
|
317
|
-
"description": "Follower count on VibeBusiness / founder's build-in-public account",
|
|
318
|
-
"source": "manual",
|
|
319
|
-
"query": "X/Twitter profile follower count",
|
|
320
|
-
"current_value": 335,
|
|
321
|
-
"target_value": 1000,
|
|
322
|
-
"unit": "followers",
|
|
323
|
-
"direction": "higher_is_better",
|
|
324
|
-
"history": [
|
|
325
|
-
{
|
|
326
|
-
"date": "2026-02-23",
|
|
327
|
-
"value": 335
|
|
328
|
-
},
|
|
329
|
-
{
|
|
330
|
-
"date": "2026-02-24",
|
|
331
|
-
"value": 335
|
|
332
|
-
}
|
|
333
|
-
]
|
|
334
|
-
},
|
|
335
|
-
{
|
|
336
|
-
"id": "kpi-daily-posts",
|
|
337
|
-
"name": "Daily Post Streak",
|
|
338
|
-
"description": "Consecutive days with at least 1 build-in-public post on X/Twitter",
|
|
339
|
-
"source": "manual",
|
|
340
|
-
"query": "Manual tracking of post cadence",
|
|
341
|
-
"current_value": 2,
|
|
342
|
-
"target_value": 90,
|
|
343
|
-
"unit": "days",
|
|
344
|
-
"direction": "higher_is_better",
|
|
345
|
-
"history": [
|
|
346
|
-
{
|
|
347
|
-
"date": "2026-02-18",
|
|
348
|
-
"value": 1
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
"date": "2026-02-23",
|
|
352
|
-
"value": 1
|
|
353
|
-
},
|
|
354
|
-
{
|
|
355
|
-
"date": "2026-02-24",
|
|
356
|
-
"value": 2
|
|
357
|
-
}
|
|
358
|
-
]
|
|
359
|
-
}
|
|
360
|
-
],
|
|
361
|
-
"related_ideas": [
|
|
362
|
-
"idea-boot-004",
|
|
363
|
-
"idea-9vma1w45",
|
|
364
|
-
"idea-8q1e0yw0",
|
|
365
|
-
"idea-2mg8sd23",
|
|
366
|
-
"idea-smv8n9cz"
|
|
367
|
-
]
|
|
368
|
-
},
|
|
369
|
-
{
|
|
370
|
-
"id": "goal-unit-economics",
|
|
371
|
-
"created_at": "2026-02-23T00:00:00.000Z",
|
|
372
|
-
"updated_at": "2026-02-23T00:00:00.000Z",
|
|
373
|
-
"title": "Validate Unit Economics for Seed Fundraising",
|
|
374
|
-
"description": "Prove CAC < $100, LTV > $300, and <6 month payback to de-risk seed round. BYOK model provides 90-95% gross margins (near-zero COGS). Target metrics demonstrate capital-efficient growth and investor-friendly unit economics.",
|
|
375
|
-
"category": "fundraising_metrics",
|
|
376
|
-
"target_value": 1,
|
|
377
|
-
"target_unit": "validated",
|
|
378
|
-
"current_value": 0,
|
|
379
|
-
"baseline_value": 0,
|
|
380
|
-
"deadline": "2026-Q2",
|
|
381
|
-
"status": "on_track",
|
|
382
|
-
"kpis": [
|
|
383
|
-
{
|
|
384
|
-
"id": "kpi-cac",
|
|
385
|
-
"name": "Customer Acquisition Cost",
|
|
386
|
-
"description": "Total marketing spend / new paying customers",
|
|
387
|
-
"source": "manual",
|
|
388
|
-
"query": "Sum(twitter_ads, show_hn_sponsorship, indie_hackers_ads) / stripe_new_subscriptions",
|
|
389
|
-
"current_value": null,
|
|
390
|
-
"target_value": 87,
|
|
391
|
-
"unit": "dollars",
|
|
392
|
-
"direction": "lower_is_better",
|
|
393
|
-
"history": []
|
|
394
|
-
},
|
|
395
|
-
{
|
|
396
|
-
"id": "kpi-ltv",
|
|
397
|
-
"name": "Customer Lifetime Value",
|
|
398
|
-
"description": "ARPU * avg customer lifetime in months",
|
|
399
|
-
"source": "calculated",
|
|
400
|
-
"query": "29 * average_subscription_length_months",
|
|
401
|
-
"current_value": null,
|
|
402
|
-
"target_value": 348,
|
|
403
|
-
"unit": "dollars",
|
|
404
|
-
"direction": "higher_is_better",
|
|
405
|
-
"history": []
|
|
406
|
-
},
|
|
407
|
-
{
|
|
408
|
-
"id": "kpi-burn-rate",
|
|
409
|
-
"name": "Monthly Burn Rate",
|
|
410
|
-
"description": "Monthly expenses - Monthly revenue",
|
|
411
|
-
"source": "manual",
|
|
412
|
-
"query": "hosting + tools + founder_salary - stripe_revenue",
|
|
413
|
-
"current_value": null,
|
|
414
|
-
"target_value": 2000,
|
|
415
|
-
"unit": "dollars",
|
|
416
|
-
"direction": "lower_is_better",
|
|
417
|
-
"history": []
|
|
418
|
-
},
|
|
419
|
-
{
|
|
420
|
-
"id": "kpi-runway",
|
|
421
|
-
"name": "Runway",
|
|
422
|
-
"description": "Months until cash runs out at current burn rate",
|
|
423
|
-
"source": "calculated",
|
|
424
|
-
"query": "cash_on_hand / monthly_burn_rate",
|
|
425
|
-
"current_value": null,
|
|
426
|
-
"target_value": 18,
|
|
427
|
-
"unit": "months",
|
|
428
|
-
"direction": "higher_is_better",
|
|
429
|
-
"history": []
|
|
430
|
-
},
|
|
431
|
-
{
|
|
432
|
-
"id": "kpi-gross-margin",
|
|
433
|
-
"name": "Gross Margin",
|
|
434
|
-
"description": "BYOK model: (Revenue - COGS) / Revenue. Near-zero COGS = 90-95% margins.",
|
|
435
|
-
"source": "calculated",
|
|
436
|
-
"query": "(stripe_revenue - ai_api_costs) / stripe_revenue * 100",
|
|
437
|
-
"current_value": null,
|
|
438
|
-
"target_value": 92,
|
|
439
|
-
"unit": "percent",
|
|
440
|
-
"direction": "higher_is_better",
|
|
441
|
-
"history": []
|
|
442
|
-
}
|
|
443
|
-
],
|
|
68
|
+
"kpis": [],
|
|
444
69
|
"related_ideas": []
|
|
445
70
|
}
|
|
446
71
|
]
|
|
447
|
-
}
|
|
72
|
+
}
|