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 +1 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-
|
|
1
|
+
self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-616e068a201ad621.js","static/chunks/fd9d1056-8c714984d5b17b60.js","static/chunks/117-23260fd0b5f0bd9a.js","static/chunks/main-app-06ab73909d2a44c7.js"],pages:{"/_app":["static/chunks/webpack-616e068a201ad621.js","static/chunks/framework-f66176bb897dc684.js","static/chunks/main-3eb11800bc19ca7f.js","static/chunks/pages/_app-72b849fbd24ac258.js"],"/_error":["static/chunks/webpack-616e068a201ad621.js","static/chunks/framework-f66176bb897dc684.js","static/chunks/main-3eb11800bc19ca7f.js","static/chunks/pages/_error-7ba65e1336b92748.js"]},ampFirstPages:[]},self.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><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/
|
|
1
|
+
<!DOCTYPE html><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/ff70d16171b1c02c.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-616e068a201ad621.js"/><script src="/_next/static/chunks/fd9d1056-8c714984d5b17b60.js" async=""></script><script src="/_next/static/chunks/117-23260fd0b5f0bd9a.js" async=""></script><script src="/_next/static/chunks/main-app-06ab73909d2a44c7.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>AI Product Manager Analyst</title><meta name="description" content="AI Product Manager - Autonomous improvement proposals"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-slate-50"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-616e068a201ad621.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/ff70d16171b1c02c.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\nb:I[1060,[],\"\"]\n6:{\"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\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"UaMf1fmArAE78vyk_zQVK\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"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.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ff70d16171b1c02c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-slate-50\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"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\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"AI Product Manager Analyst\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"AI Product Manager - Autonomous improvement proposals\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-616e068a201ad621.js" defer=""></script><script src="/_next/static/chunks/framework-f66176bb897dc684.js" defer=""></script><script src="/_next/static/chunks/main-3eb11800bc19ca7f.js" defer=""></script><script src="/_next/static/chunks/pages/_app-72b849fbd24ac258.js" defer=""></script><script src="/_next/static/chunks/pages/_error-7ba65e1336b92748.js" defer=""></script><script src="/_next/static/UaMf1fmArAE78vyk_zQVK/_buildManifest.js" defer=""></script><script src="/_next/static/UaMf1fmArAE78vyk_zQVK/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"UaMf1fmArAE78vyk_zQVK","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__RSC_SERVER_MANIFEST="{\"node\":{\"
|
|
1
|
+
self.__RSC_SERVER_MANIFEST="{\"node\":{\"b776d4924c15ec0e40fd8a91f6a54f4f2c960e5d\":{\"workers\":{\"app/updates/[id]/page\":\"3171\"},\"layer\":{\"app/updates/[id]/page\":\"rsc\"}}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{"
|
|
1
|
+
{"node":{"b776d4924c15ec0e40fd8a91f6a54f4f2c960e5d":{"workers":{"app/updates/[id]/page":"3171"},"layer":{"app/updates/[id]/page":"rsc"}}},"edge":{},"encryptionKey":"apwodFblfXcJBxXFHd1p5w81XY0dbOfHuiRfYJEsQZ4="}
|
|
@@ -1,187 +1,37 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"last_updated": "2026-02-27",
|
|
3
3
|
"product": {
|
|
4
|
-
"name": "
|
|
5
|
-
"summary": "
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"repo_name": "vibebusiness",
|
|
11
|
-
"description": "Next.js dashboard with Kanban board, goals, KPI charts, hypothesis tracking. TypeScript CLI with heartbeat loop, analysis engine, and implementation pipeline. Distributed via npm.",
|
|
12
|
-
"tech_stack": [
|
|
13
|
-
"Next.js 14",
|
|
14
|
-
"TypeScript 5",
|
|
15
|
-
"Tailwind CSS",
|
|
16
|
-
"Lucide React",
|
|
17
|
-
"tsup",
|
|
18
|
-
"Claude Code CLI"
|
|
19
|
-
]
|
|
20
|
-
}
|
|
21
|
-
]
|
|
4
|
+
"name": "VibeBusiness",
|
|
5
|
+
"summary": "AI Product Manager CLI that autonomously analyzes codebases, generates improvement ideas, implements them via PRs, and tracks business metrics",
|
|
6
|
+
"stage": "early_traction",
|
|
7
|
+
"pricing": "free_beta",
|
|
8
|
+
"npm_package": "vibebusiness",
|
|
9
|
+
"website": null
|
|
22
10
|
},
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"Mendral",
|
|
31
|
-
"ValidatorAI",
|
|
32
|
-
"Baremetrics",
|
|
33
|
-
"Lovable"
|
|
34
|
-
],
|
|
35
|
-
"regulatory": [
|
|
36
|
-
"EU AI Act — low risk (business analysis tool, not high-risk classification)",
|
|
37
|
-
"SOC 2 — target before enterprise push (Phase 3)",
|
|
38
|
-
"Local-first architecture: user data never touches VibeBusiness servers"
|
|
39
|
-
],
|
|
40
|
-
"funnels": [
|
|
41
|
-
{
|
|
42
|
-
"id": "plg-funnel",
|
|
43
|
-
"name": "PLG Self-Serve Funnel",
|
|
44
|
-
"description": "npm install → first vibe cycle → 10x moment → Pro conversion → Team expansion",
|
|
45
|
-
"status": "not_started",
|
|
46
|
-
"key_insight": "Developer tools have the highest freemium conversion rate of any SaaS category at 11.7%. Usage-limited freemium converts at 8.3% (73% better than feature-limited at 4.8%).",
|
|
47
|
-
"metrics": {}
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"id": "build-in-public-funnel",
|
|
51
|
-
"name": "Build-in-Public → Community → Conversion",
|
|
52
|
-
"description": "X/Twitter daily posts → community engagement → npm download → trial → paid conversion. 180K+ build-in-public community. Indie Hackers delivers 23.1% conversion per engaged post.",
|
|
53
|
-
"status": "not_started",
|
|
54
|
-
"key_insight": "Cursor reached $100M ARR with zero marketing budget and a 36% free-to-paid conversion rate (vs 5% industry median)."
|
|
55
|
-
}
|
|
56
|
-
],
|
|
57
|
-
"monetization": {
|
|
58
|
-
"current_mrr": 0,
|
|
59
|
-
"payment_provider": {
|
|
60
|
-
"name": "Stripe",
|
|
61
|
-
"entity": "Porfin LTDA",
|
|
62
|
-
"entity_country": "Brazil",
|
|
63
|
-
"account_status": "active",
|
|
64
|
-
"migration_plan": "Transition to Delaware LLC Stripe account once MRR scales sufficiently to justify US entity formation"
|
|
65
|
-
},
|
|
66
|
-
"pricing": {
|
|
67
|
-
"model": "BYOK + license subscription",
|
|
68
|
-
"free_trial": "$0 + BYOK — 14-day free trial, 1 project, daily vibe cycle, 30-day MEMORY.md, basic recommendations (converts to paid after trial)",
|
|
69
|
-
"pro_tier": "$29/month + BYOK — Unlimited projects, hourly vibe cycle, unlimited MEMORY.md, advanced recommendations, custom KPI integrations, weekly strategy digest",
|
|
70
|
-
"team_tier": "$19/user/month + BYOK — Shared MEMORY.md, team dashboards, cross-project insights, Slack notifications, role-based access",
|
|
71
|
-
"enterprise_tier": "Custom — SSO, audit logs, compliance, custom integrations, dedicated support, optional hosted inference",
|
|
72
|
-
"lifetime_deal": "$149 — Early adopter lifetime deal for community buzz"
|
|
73
|
-
},
|
|
74
|
-
"revenue_streams": [
|
|
75
|
-
{
|
|
76
|
-
"name": "Pro Subscriptions",
|
|
77
|
-
"status": "planned",
|
|
78
|
-
"revenue": 0
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"name": "Team Subscriptions",
|
|
82
|
-
"status": "planned",
|
|
83
|
-
"revenue": 0
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
"name": "Enterprise Contracts",
|
|
87
|
-
"status": "planned",
|
|
88
|
-
"revenue": 0
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
"name": "Lifetime Deals (early adopters)",
|
|
92
|
-
"status": "planned",
|
|
93
|
-
"revenue": 0
|
|
94
|
-
}
|
|
95
|
-
]
|
|
11
|
+
"funnel": {
|
|
12
|
+
"awareness": "low — mostly Twitter/X organic posts",
|
|
13
|
+
"acquisition": "npm install vibebusiness",
|
|
14
|
+
"activation": "user runs vibebusiness init and first heartbeat",
|
|
15
|
+
"retention": "daily heartbeat runs + idea flow",
|
|
16
|
+
"revenue": "not yet monetized",
|
|
17
|
+
"referral": "none structured yet"
|
|
96
18
|
},
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"current_status": "not_started"
|
|
103
|
-
},
|
|
104
|
-
"activation": {
|
|
105
|
-
"question": "Do users complete their first vibe cycle and experience the 10x moment in under 5 minutes?",
|
|
106
|
-
"current_status": "not_started"
|
|
107
|
-
},
|
|
108
|
-
"retention": {
|
|
109
|
-
"question": "Are users running weekly vibe cycles and reviewing recommendations? (D7 >35%, D30 >25%)",
|
|
110
|
-
"current_status": "not_started"
|
|
111
|
-
},
|
|
112
|
-
"revenue": {
|
|
113
|
-
"question": "Are users converting to Pro ($29/mo)? Target: 11.7% free-to-paid conversion.",
|
|
114
|
-
"current_status": "not_started"
|
|
115
|
-
},
|
|
116
|
-
"referral": {
|
|
117
|
-
"question": "Are users sharing VibeBusiness? (tweets, HN posts, community mentions, referral program)",
|
|
118
|
-
"current_status": "not_started"
|
|
119
|
-
}
|
|
120
|
-
}
|
|
19
|
+
"metrics": {
|
|
20
|
+
"npm_weekly_downloads": null,
|
|
21
|
+
"github_stars": null,
|
|
22
|
+
"beta_users": null,
|
|
23
|
+
"active_daily_users": null
|
|
121
24
|
},
|
|
122
|
-
"
|
|
123
|
-
"
|
|
124
|
-
"
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"Claude Code CLI dependency — primary AI backend, BYOK API fallback for users without Max plan",
|
|
128
|
-
"12-18 month competitive window before incumbents (Microsoft/GitHub) could replicate",
|
|
129
|
-
"Target segment: indie hackers / solo technical founders (Segment B) — CLI-native, $20-100/mo tool budget"
|
|
130
|
-
],
|
|
131
|
-
"preferences": {
|
|
132
|
-
"prefer": {
|
|
133
|
-
"runtime": "Node.js",
|
|
134
|
-
"language": "TypeScript",
|
|
135
|
-
"styling": "Tailwind CSS",
|
|
136
|
-
"ai_provider": "Claude Code CLI"
|
|
137
|
-
},
|
|
138
|
-
"avoid": [],
|
|
139
|
-
"guidelines": [
|
|
140
|
-
"Local-first: no cloud infrastructure, all data on user's machine",
|
|
141
|
-
"Minimize new npm dependencies — prefer built-in Node APIs"
|
|
142
|
-
]
|
|
25
|
+
"constraints": {
|
|
26
|
+
"team_size": 1,
|
|
27
|
+
"budget_monthly_usd": 0,
|
|
28
|
+
"time_weekly_hours": 10,
|
|
29
|
+
"tech_stack": "Next.js, TypeScript, Claude Code CLI"
|
|
143
30
|
},
|
|
144
|
-
"
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
"field_mapping": {
|
|
152
|
-
"kpi-waitlist-signups": "total_count"
|
|
153
|
-
}
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
"id": "posthog",
|
|
157
|
-
"type": "posthog",
|
|
158
|
-
"config": {
|
|
159
|
-
"url_env": "NEXT_PUBLIC_POSTHOG_HOST",
|
|
160
|
-
"project_id_env": "POSTHOG_PROJECT_ID"
|
|
161
|
-
},
|
|
162
|
-
"field_mapping": {
|
|
163
|
-
"kpi-beta-signups": "waitlist_signup_success",
|
|
164
|
-
"kpi-paying-users": "checkout_completed",
|
|
165
|
-
"kpi-cli-init-count": {
|
|
166
|
-
"event": "command_run",
|
|
167
|
-
"properties": {
|
|
168
|
-
"command": "init"
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
"kpi-cli-vibe-count": {
|
|
172
|
-
"event": "command_run",
|
|
173
|
-
"properties": {
|
|
174
|
-
"command": "vibe"
|
|
175
|
-
}
|
|
176
|
-
},
|
|
177
|
-
"kpi-cli-scan-count": {
|
|
178
|
-
"event": "command_run",
|
|
179
|
-
"properties": {
|
|
180
|
-
"command": "scan"
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
],
|
|
186
|
-
"last_auto_update": "2026-02-26T15:06:39.362Z"
|
|
187
|
-
}
|
|
31
|
+
"goals": [
|
|
32
|
+
"Get first 50 npm installs",
|
|
33
|
+
"Get first 10 active beta users",
|
|
34
|
+
"Validate willingness to pay",
|
|
35
|
+
"Build organic distribution flywheel"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
@@ -1,57 +1,79 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generated_at": "2026-02-
|
|
2
|
+
"generated_at": "2026-02-27T00:00:00.000Z",
|
|
3
3
|
"services": {
|
|
4
|
-
"notifications": [
|
|
4
|
+
"notifications": [
|
|
5
|
+
"email via Loops (transactional + events): src/lib/loops.ts",
|
|
6
|
+
"in-app toast notifications: src/contexts/ToastContext.tsx",
|
|
7
|
+
"WhatsApp listed as KPI data source type only (no send implementation found)",
|
|
8
|
+
"no push notifications (FCM/APNS), no SMS, no Slack/webhook outbound alerts"
|
|
9
|
+
],
|
|
5
10
|
"api_endpoints": [
|
|
6
|
-
"
|
|
7
|
-
"GET
|
|
8
|
-
"
|
|
9
|
-
"POST /api/ideas/[id]/
|
|
10
|
-
"POST /api/ideas/[id]/implement",
|
|
11
|
-
"
|
|
12
|
-
"GET
|
|
13
|
-
"POST /api/goals
|
|
14
|
-
"GET
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"POST /api/
|
|
18
|
-
"GET /api/
|
|
19
|
-
"GET /api/
|
|
20
|
-
"
|
|
21
|
-
"
|
|
11
|
+
"POST /api/analyze - trigger codebase analysis",
|
|
12
|
+
"GET|POST /api/ideas - list/create ideas",
|
|
13
|
+
"GET|PATCH|DELETE /api/ideas/[id] - idea CRUD",
|
|
14
|
+
"POST /api/ideas/[id]/transition - stage transitions",
|
|
15
|
+
"POST /api/ideas/[id]/implement - trigger AI implementation",
|
|
16
|
+
"POST /api/ideas/[id]/comments - discussion threads",
|
|
17
|
+
"GET /api/ideas/[id]/card - idea card view",
|
|
18
|
+
"GET|POST /api/goals - goals CRUD",
|
|
19
|
+
"GET|PATCH|DELETE /api/goals/[id] - goal detail",
|
|
20
|
+
"POST /api/goals/[id]/kpis - update KPI values",
|
|
21
|
+
"POST /api/kpis/refresh - refresh all KPI data",
|
|
22
|
+
"GET|POST /api/epics - epics CRUD",
|
|
23
|
+
"GET|POST /api/hypotheses - hypotheses CRUD",
|
|
24
|
+
"GET|POST /api/social - social draft management",
|
|
25
|
+
"POST /api/social/[id]/publish - publish social draft",
|
|
26
|
+
"GET /api/briefing - AI daily briefing",
|
|
27
|
+
"POST /api/checkout - Stripe checkout session",
|
|
28
|
+
"GET /api/portal - Stripe customer portal",
|
|
29
|
+
"POST /api/webhook - Stripe webhook handler",
|
|
30
|
+
"GET /api/license - license validation",
|
|
31
|
+
"GET /api/provider-status - AI provider health check",
|
|
32
|
+
"POST /api/investor-updates/generate - generate investor update",
|
|
33
|
+
"GET|PUT /api/config - app configuration",
|
|
34
|
+
"GET /api/config/detect-repos - detect git repos",
|
|
35
|
+
"GET|POST /api/implementations - active implementations",
|
|
36
|
+
"GET /api/health - health check"
|
|
22
37
|
],
|
|
23
38
|
"background_jobs": [
|
|
24
|
-
"scripts/
|
|
25
|
-
"scripts/
|
|
26
|
-
"scripts/
|
|
27
|
-
"scripts/
|
|
28
|
-
"
|
|
39
|
+
"cron via scripts/setup-cron.sh: daily quick scan (6am), weekly deep review (Sun 3am), weekly metrics (Mon 8am), bi-weekly SEO (1st/15th 4am)",
|
|
40
|
+
"heartbeat via scripts/heartbeat.ts: 9am/1pm/5pm daily (proactive task execution)",
|
|
41
|
+
"scripts/scan.ts - codebase scan runner",
|
|
42
|
+
"scripts/implement.ts - AI-driven idea implementation worker",
|
|
43
|
+
"no queue system (Redis/BullMQ/etc.) - all cron-based"
|
|
29
44
|
],
|
|
30
45
|
"integrations": [
|
|
31
|
-
"
|
|
32
|
-
"PostHog (KPI source
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
46
|
+
"Loops (email marketing + transactional): src/lib/loops.ts",
|
|
47
|
+
"PostHog (product analytics + KPI source): src/lib/kpi-adapters/posthog.ts, src/lib/posthog-kpi-adapter.ts",
|
|
48
|
+
"Stripe (payments, webhooks, customer portal): src/lib/stripe.ts, /api/checkout, /api/webhook, /api/portal",
|
|
49
|
+
"Firestore (KPI source type defined, no adapter implementation found)",
|
|
50
|
+
"WhatsApp (KPI source type defined in types.ts, no adapter implementation found)",
|
|
51
|
+
"REST API adapter (generic KPI polling): src/lib/kpi-adapters/rest-api.ts",
|
|
52
|
+
"GitHub stats (data source): scripts/lib/data-sources/github-stats.ts",
|
|
53
|
+
"NPM stats (data source): scripts/lib/data-sources/npm-stats.ts",
|
|
54
|
+
"X/Twitter API (social publishing): scripts/lib/social/x-api.ts",
|
|
55
|
+
"Gemini (image generation): scripts/lib/gemini-image.ts",
|
|
56
|
+
"Claude AI (analysis + implementation engine): scripts/lib/ai-provider.ts"
|
|
37
57
|
]
|
|
38
58
|
},
|
|
39
59
|
"missing": [
|
|
40
|
-
"No
|
|
41
|
-
"No
|
|
42
|
-
"No
|
|
43
|
-
"No
|
|
44
|
-
"No
|
|
45
|
-
"No
|
|
46
|
-
"No
|
|
47
|
-
"No
|
|
48
|
-
"No
|
|
49
|
-
"No customer
|
|
50
|
-
"
|
|
60
|
+
"No CRM-specific lead/lawyer/case data model - no Lead, Lawyer, Case, or Client entities in types.ts",
|
|
61
|
+
"No lead capture or intake API endpoints (/api/leads, /api/lawyers, /api/cases)",
|
|
62
|
+
"No WhatsApp send capability - WhatsApp is only a KPI read source, not an outbound channel",
|
|
63
|
+
"No Firestore adapter implementation despite type being defined",
|
|
64
|
+
"No real-time notifications - no webhooks outbound, no WebSockets, no push",
|
|
65
|
+
"No lead scoring or pipeline stage tracking",
|
|
66
|
+
"No lawyer profile management or matching logic",
|
|
67
|
+
"No marketplace/matchmaking endpoints",
|
|
68
|
+
"No SLA tracking or automated follow-up reminders",
|
|
69
|
+
"No customer-facing portal or self-service for lawyers/clients",
|
|
70
|
+
"Stripe webhook TODOs unimplemented: subscription status sync and payment failure notification",
|
|
71
|
+
"No multi-tenant / workspace isolation for CRM data",
|
|
72
|
+
"No audit log for CRM actions (lead status changes, lawyer assignments)"
|
|
51
73
|
],
|
|
52
74
|
"file_counts": {
|
|
53
|
-
"frontend_components":
|
|
54
|
-
"api_routes":
|
|
75
|
+
"frontend_components": 42,
|
|
76
|
+
"api_routes": 35,
|
|
55
77
|
"backend_routers": 0
|
|
56
78
|
}
|
|
57
79
|
}
|