Vibecode Grow or Die
track this build5 steps, step by step0%An agent can build the honest personal version: a first-party tracker, a Stripe webhook, an OpenAI usage wrapper, and a SQLite join keyed by your own account ID. That is enough to show which customers make money. The paid product starts earning its fee when the inputs stop being tidy. Analytics exports drift, refunds arrive late, model prices change, streaming calls fail after consuming tokens, and anonymous visitors do not naturally become the same people who paid. A weekend build can give one founder a useful ledger for one stack. Matching Grow or Die's connector coverage, SDKs, missing-data discipline, retention, and production reliability is ongoing analytics infrastructure, not a prompt.
You are building a lean indie version of Grow or Die. Create the following project files first, then implement the application by following them. Keep the files updated as decisions change. Do not collapse this into a single README or prompt. ===== README.md ===== # Grow or Die indie build ## Goal Build the smallest trustworthy replacement for the core Grow or Die workflow for one developer or a tiny team. ## Scope Join first-party product activity, Stripe revenue, and server-side OpenAI usage by a stable account ID, then show revenue, AI cost, and contribution profit per customer. ## Quick start 1. Install the documented dependencies. 2. Copy `.env.example` to `.env`. 3. Run the development command chosen during implementation. 4. Complete the acceptance checks in `BUILD_PLAN.md`. ## Honest limits This build deliberately does not replace: - ready-made GA4, PostHog, Stripe, and Lemon Squeezy connectors - maintained OpenAI and Anthropic pricing rules, including cached tokens - seven language SDKs with streaming, failure, timeout, and cancellation tracking - careful unknown, unpriced, unmatched, and incomplete data states - managed retention, backups, source health, and production reliability If those capabilities are essential, use PostHog instead of pretending the gap is solved. ===== AGENTS.md ===== # Agent instructions - Optimize for a working, understandable weekend build. - Prefer the fewest moving parts that satisfy the brief. - Do not invent cryptography, security guarantees, APIs, or compliance claims. - Keep secrets out of source control and logs. - Add focused tests for destructive, security-sensitive, and data-loss paths. - Run the project checks before declaring the build complete. - Record any deliberate shortcut in the README under "Tradeoffs". ===== BUILD_PLAN.md ===== # Build plan ## Original build brief Build me a single-tenant AI contribution-profit dashboard for one product, replacing the narrow personal core of Grow or Die. Use Node.js 22, TypeScript, Fastify, better-sqlite3, and server-rendered HTML with no frontend framework. Run as one process behind Caddy; store everything in one SQLite file with a documented backup command. Ship a first-party browser tracker that records pageviews and product events with a random anonymous visitor ID. Add POST /identify so my app can bind that visitor ID to my own stable account_id; never use email as the join key. Verify Stripe webhooks for checkout.session.completed, invoice.paid, charge.refunded, and subscription deletion. Read account_id from Stripe metadata and store each payment or refund idempotently in an append-only revenue ledger. Provide a thin wrapper around the official OpenAI Node SDK that returns the provider response unchanged. The wrapper records account_id, model, token usage, cached input tokens, latency, status, and occurred_at. Never collect prompts, generated output, or the OpenAI API key; the key stays in .env and goes only to OpenAI. Keep model prices in a versioned JSON catalog with effective dates and calculate cost on the server. Join product events, revenue, and AI cost only by account_id and only across the same finalized 7, 30, or 90 day window. Never turn a missing payment, unknown model, partial import, or unmatched identity into zero. Show it as unknown. Dashboard: visitors, paying accounts, revenue, AI cost, contribution profit, margin, and a customer profit table. Every total links to the underlying ledger rows and shows source freshness, unmatched counts, and unpriced calls. Recommend one next action only when complete observed data supports it; otherwise recommend the missing connection or identity fix. Protect the dashboard with one admin bearer token from .env; add no accounts, billing, telemetry, cookies, or third-party analytics. Include clearly labelled demo data that can be deleted in one command and never appears after real data arrives. Write unit tests for webhook idempotency, identity joins, price effective dates, refunds, and unknown-state propagation. Add one end-to-end test that tracks a visitor, identifies an account, records a payment and model call, and shows profit. README: setup, tracker and identify snippets, Stripe CLI testing, SDK wrapper usage, deployment, backup, and limitations. Explicitly exclude GA4, PostHog, Lemon Squeezy, Anthropic, multi-currency, cross-device identity, teams, and automated model-price discovery. Run tests and a production build before finishing, and fix every failure. ## Required capabilities - Node.js 22 - VPS with a domain and TLS - Stripe webhook secret - OpenAI API key - first-party tracker and identify call - SQLite backups ## Delivery order 1. Scaffold the smallest runnable application and document its commands. 2. Implement the primary data model and core workflow. 3. Add validation, safe failure states, and persistence. 4. Cover the critical path with automated tests. 5. Exercise a clean install from the README and fix every missing step. ## Done when - A new user can go from clone to first successful workflow using only the README. - The core workflow works without paid infrastructure unless the brief requires it. - Tests cover the highest-risk behavior. - Known limitations are explicit rather than hidden. ===== .env.example ===== # Copy to .env and document every variable when it is introduced. # Never put real credentials in this file. APP_ENV=development # Add only values required by the selected implementation.
You are building a lean indie version of Grow or Die. Create the following project files first, then implement the application by following them. Keep the files updated as decisions change. Do not collapse this into a single README or prompt. ===== README.md ===== # Grow or Die indie build ## Goal Build the smallest trustworthy replacement for the core Grow or Die workflow for one developer or a tiny team. ## Scope Join first-party product activity, Stripe revenue, and server-side OpenAI usage by a stable account ID, then show revenue, AI cost, and contribution profit per customer. ## Quick start 1. Install the documented dependencies. 2. Copy `.env.example` to `.env`. 3. Run the development command chosen during implementation. 4. Complete the acceptance checks in `BUILD_PLAN.md`. ## Honest limits This build deliberately does not replace: - ready-made GA4, PostHog, Stripe, and Lemon Squeezy connectors - maintained OpenAI and Anthropic pricing rules, including cached tokens - seven language SDKs with streaming, failure, timeout, and cancellation tracking - careful unknown, unpriced, unmatched, and incomplete data states - managed retention, backups, source health, and production reliability If those capabilities are essential, use PostHog instead of pretending the gap is solved. ===== AGENTS.md ===== # Agent instructions - Optimize for a working, understandable weekend build. - Prefer the fewest moving parts that satisfy the brief. - Do not invent cryptography, security guarantees, APIs, or compliance claims. - Keep secrets out of source control and logs. - Add focused tests for destructive, security-sensitive, and data-loss paths. - Run the project checks before declaring the build complete. - Record any deliberate shortcut in the README under "Tradeoffs". ===== BUILD_PLAN.md ===== # Build plan ## Original build brief Build me a single-tenant AI contribution-profit dashboard for one product, replacing the narrow personal core of Grow or Die. Use Node.js 22, TypeScript, Fastify, better-sqlite3, and server-rendered HTML with no frontend framework. Run as one process behind Caddy; store everything in one SQLite file with a documented backup command. Ship a first-party browser tracker that records pageviews and product events with a random anonymous visitor ID. Add POST /identify so my app can bind that visitor ID to my own stable account_id; never use email as the join key. Verify Stripe webhooks for checkout.session.completed, invoice.paid, charge.refunded, and subscription deletion. Read account_id from Stripe metadata and store each payment or refund idempotently in an append-only revenue ledger. Provide a thin wrapper around the official OpenAI Node SDK that returns the provider response unchanged. The wrapper records account_id, model, token usage, cached input tokens, latency, status, and occurred_at. Never collect prompts, generated output, or the OpenAI API key; the key stays in .env and goes only to OpenAI. Keep model prices in a versioned JSON catalog with effective dates and calculate cost on the server. Join product events, revenue, and AI cost only by account_id and only across the same finalized 7, 30, or 90 day window. Never turn a missing payment, unknown model, partial import, or unmatched identity into zero. Show it as unknown. Dashboard: visitors, paying accounts, revenue, AI cost, contribution profit, margin, and a customer profit table. Every total links to the underlying ledger rows and shows source freshness, unmatched counts, and unpriced calls. Recommend one next action only when complete observed data supports it; otherwise recommend the missing connection or identity fix. Protect the dashboard with one admin bearer token from .env; add no accounts, billing, telemetry, cookies, or third-party analytics. Include clearly labelled demo data that can be deleted in one command and never appears after real data arrives. Write unit tests for webhook idempotency, identity joins, price effective dates, refunds, and unknown-state propagation. Add one end-to-end test that tracks a visitor, identifies an account, records a payment and model call, and shows profit. README: setup, tracker and identify snippets, Stripe CLI testing, SDK wrapper usage, deployment, backup, and limitations. Explicitly exclude GA4, PostHog, Lemon Squeezy, Anthropic, multi-currency, cross-device identity, teams, and automated model-price discovery. Run tests and a production build before finishing, and fix every failure. ## Required capabilities - Node.js 22 - VPS with a domain and TLS - Stripe webhook secret - OpenAI API key - first-party tracker and identify call - SQLite backups ## Delivery order 1. Scaffold the smallest runnable application and document its commands. 2. Implement the primary data model and core workflow. 3. Add validation, safe failure states, and persistence. 4. Cover the critical path with automated tests. 5. Exercise a clean install from the README and fix every missing step. ## Done when - A new user can go from clone to first successful workflow using only the README. - The core workflow works without paid infrastructure unless the brief requires it. - Tests cover the highest-risk behavior. - Known limitations are explicit rather than hidden. ===== .env.example ===== # Copy to .env and document every variable when it is introduced. # Never put real credentials in this file. APP_ENV=development # Add only values required by the selected implementation.
You are building a production product version of Grow or Die. Create the following project files first, then implement the application by following them. Keep the files updated as decisions change. Do not collapse this into a single README or prompt. ===== PRODUCT.md ===== # Grow or Die product brief ## Problem An agent can build the honest personal version: a first-party tracker, a Stripe webhook, an OpenAI usage wrapper, and a SQLite join keyed by your own account ID. That is enough to show which customers make money. The paid product starts earning its fee when the inputs stop being tidy. Analytics exports drift, refunds arrive late, model prices change, streaming calls fail after consuming tokens, and anonymous visitors do not naturally become the same people who paid. A weekend build can give one founder a useful ledger for one stack. Matching Grow or Die's connector coverage, SDKs, missing-data discipline, retention, and production reliability is ongoing analytics infrastructure, not a prompt. ## Product outcome Join first-party product activity, Stripe revenue, and server-side OpenAI usage by a stable account ID, then show revenue, AI cost, and contribution profit per customer. ## Target user A serious builder who needs a maintainable product foundation rather than a one-off demo. ## Required capabilities - Node.js 22 - VPS with a domain and TLS - Stripe webhook secret - OpenAI API key - first-party tracker and identify call - SQLite backups ## Explicit non-goals for v1 - ready-made GA4, PostHog, Stripe, and Lemon Squeezy connectors - maintained OpenAI and Anthropic pricing rules, including cached tokens - seven language SDKs with streaming, failure, timeout, and cancellation tracking - careful unknown, unpriced, unmatched, and incomplete data states - managed retention, backups, source health, and production reliability ## Success criteria - The primary workflow is measurable end to end. - Setup is reproducible in a clean environment. - Failure, recovery, and support paths are documented. - Product claims match what the implementation actually guarantees. ===== ARCHITECTURE.md ===== # Architecture ## Starting brief Build me a single-tenant AI contribution-profit dashboard for one product, replacing the narrow personal core of Grow or Die. Use Node.js 22, TypeScript, Fastify, better-sqlite3, and server-rendered HTML with no frontend framework. Run as one process behind Caddy; store everything in one SQLite file with a documented backup command. Ship a first-party browser tracker that records pageviews and product events with a random anonymous visitor ID. Add POST /identify so my app can bind that visitor ID to my own stable account_id; never use email as the join key. Verify Stripe webhooks for checkout.session.completed, invoice.paid, charge.refunded, and subscription deletion. Read account_id from Stripe metadata and store each payment or refund idempotently in an append-only revenue ledger. Provide a thin wrapper around the official OpenAI Node SDK that returns the provider response unchanged. The wrapper records account_id, model, token usage, cached input tokens, latency, status, and occurred_at. Never collect prompts, generated output, or the OpenAI API key; the key stays in .env and goes only to OpenAI. Keep model prices in a versioned JSON catalog with effective dates and calculate cost on the server. Join product events, revenue, and AI cost only by account_id and only across the same finalized 7, 30, or 90 day window. Never turn a missing payment, unknown model, partial import, or unmatched identity into zero. Show it as unknown. Dashboard: visitors, paying accounts, revenue, AI cost, contribution profit, margin, and a customer profit table. Every total links to the underlying ledger rows and shows source freshness, unmatched counts, and unpriced calls. Recommend one next action only when complete observed data supports it; otherwise recommend the missing connection or identity fix. Protect the dashboard with one admin bearer token from .env; add no accounts, billing, telemetry, cookies, or third-party analytics. Include clearly labelled demo data that can be deleted in one command and never appears after real data arrives. Write unit tests for webhook idempotency, identity joins, price effective dates, refunds, and unknown-state propagation. Add one end-to-end test that tracks a visitor, identifies an account, records a payment and model call, and shows profit. README: setup, tracker and identify snippets, Stripe CLI testing, SDK wrapper usage, deployment, backup, and limitations. Explicitly exclude GA4, PostHog, Lemon Squeezy, Anthropic, multi-currency, cross-device identity, teams, and automated model-price discovery. Run tests and a production build before finishing, and fix every failure. ## Boundaries Separate the product into replaceable modules for interface, application logic, persistence, external integrations, and operational concerns. Keep domain logic independent from delivery frameworks and vendors. ## Production baseline - Configuration: validated at startup with safe local defaults where possible. - Security: least privilege, input validation, secret redaction, rate limits on abuse-prone paths, and no invented security primitives. - Data: explicit schema and migrations, transactional writes where integrity matters, backup and restore instructions. - Integrations: adapters around third-party providers, idempotent webhook or job processing, bounded retries, and timeouts. - Observability: structured logs with request or operation IDs, an error-tracking hook, and health/readiness checks where a server exists. - Quality: unit tests for domain rules, integration tests at module boundaries, and one end-to-end critical-path test. ## Decision records For each major dependency, document why it was chosen, its failure mode, and how it can be replaced. Do not introduce infrastructure until a requirement justifies it. ===== AGENTS.md ===== # Agent instructions - Read `PRODUCT.md` and `ARCHITECTURE.md` before changing code. - Implement milestone by milestone; keep each change reviewable and leave the application runnable. - Treat authentication, payments, encryption, imports, webhooks, and destructive actions as high-risk boundaries when present. - Never invent cryptography or silently weaken a requirement to make a test pass. - Use provider interfaces for external services and deterministic fakes in tests. - Add migrations and rollback or recovery notes for persistent data changes. - Log useful operational context without credentials, tokens, passwords, or personal data. - Update documentation and run all checks before completing a milestone. ===== MILESTONES.md ===== # Delivery milestones ## M0 — Decisions and scaffold - Confirm the runtime, persistence model, threat boundaries, and deployment target. - Create a reproducible local environment and continuous checks. ## M1 — Core workflow - Implement the smallest end-to-end product path with validation and tests. - Keep integrations behind interfaces. ## M2 — Trust layer - Add secure failure behavior, recovery paths, audit-relevant events, and data safeguards. - Test abuse cases and destructive operations. ## M3 — Operability - Add structured logs, error reporting hooks, health signals, backup/restore documentation, and deployment configuration. ## M4 — Release gate - Run a clean-install test, critical-path end-to-end test, dependency review, and documented rollback exercise. - Compare the shipped behavior with `PRODUCT.md` and publish remaining limitations. ===== OPERATIONS.md ===== # Operations ## Before release - Validate configuration and secrets at startup. - Define backup, restore, and rollback procedures and test them. - Document logs, error tracking, health signals, and alert ownership. - Set dependency update and vulnerability review expectations. ## Incident checklist 1. Contain the issue without destroying evidence or user data. 2. Record the timeline and affected scope. 3. Rotate exposed secrets and revoke compromised sessions or credentials. 4. Restore from a verified source when needed. 5. Document the root cause, remediation, and regression test. ## Launch constraint Do not market omitted Grow or Die capabilities as implemented. The v1 non-goals in `PRODUCT.md` remain user-visible limitations until they are deliberately delivered.
# Grow or Die indie build ## Goal Build the smallest trustworthy replacement for the core Grow or Die workflow for one developer or a tiny team. ## Scope Join first-party product activity, Stripe revenue, and server-side OpenAI usage by a stable account ID, then show revenue, AI cost, and contribution profit per customer. ## Quick start 1. Install the documented dependencies. 2. Copy `.env.example` to `.env`. 3. Run the development command chosen during implementation. 4. Complete the acceptance checks in `BUILD_PLAN.md`. ## Honest limits This build deliberately does not replace: - ready-made GA4, PostHog, Stripe, and Lemon Squeezy connectors - maintained OpenAI and Anthropic pricing rules, including cached tokens - seven language SDKs with streaming, failure, timeout, and cancellation tracking - careful unknown, unpriced, unmatched, and incomplete data states - managed retention, backups, source health, and production reliability If those capabilities are essential, use PostHog instead of pretending the gap is solved.
# Agent instructions - Optimize for a working, understandable weekend build. - Prefer the fewest moving parts that satisfy the brief. - Do not invent cryptography, security guarantees, APIs, or compliance claims. - Keep secrets out of source control and logs. - Add focused tests for destructive, security-sensitive, and data-loss paths. - Run the project checks before declaring the build complete. - Record any deliberate shortcut in the README under "Tradeoffs".
# Build plan ## Original build brief Build me a single-tenant AI contribution-profit dashboard for one product, replacing the narrow personal core of Grow or Die. Use Node.js 22, TypeScript, Fastify, better-sqlite3, and server-rendered HTML with no frontend framework. Run as one process behind Caddy; store everything in one SQLite file with a documented backup command. Ship a first-party browser tracker that records pageviews and product events with a random anonymous visitor ID. Add POST /identify so my app can bind that visitor ID to my own stable account_id; never use email as the join key. Verify Stripe webhooks for checkout.session.completed, invoice.paid, charge.refunded, and subscription deletion. Read account_id from Stripe metadata and store each payment or refund idempotently in an append-only revenue ledger. Provide a thin wrapper around the official OpenAI Node SDK that returns the provider response unchanged. The wrapper records account_id, model, token usage, cached input tokens, latency, status, and occurred_at. Never collect prompts, generated output, or the OpenAI API key; the key stays in .env and goes only to OpenAI. Keep model prices in a versioned JSON catalog with effective dates and calculate cost on the server. Join product events, revenue, and AI cost only by account_id and only across the same finalized 7, 30, or 90 day window. Never turn a missing payment, unknown model, partial import, or unmatched identity into zero. Show it as unknown. Dashboard: visitors, paying accounts, revenue, AI cost, contribution profit, margin, and a customer profit table. Every total links to the underlying ledger rows and shows source freshness, unmatched counts, and unpriced calls. Recommend one next action only when complete observed data supports it; otherwise recommend the missing connection or identity fix. Protect the dashboard with one admin bearer token from .env; add no accounts, billing, telemetry, cookies, or third-party analytics. Include clearly labelled demo data that can be deleted in one command and never appears after real data arrives. Write unit tests for webhook idempotency, identity joins, price effective dates, refunds, and unknown-state propagation. Add one end-to-end test that tracks a visitor, identifies an account, records a payment and model call, and shows profit. README: setup, tracker and identify snippets, Stripe CLI testing, SDK wrapper usage, deployment, backup, and limitations. Explicitly exclude GA4, PostHog, Lemon Squeezy, Anthropic, multi-currency, cross-device identity, teams, and automated model-price discovery. Run tests and a production build before finishing, and fix every failure. ## Required capabilities - Node.js 22 - VPS with a domain and TLS - Stripe webhook secret - OpenAI API key - first-party tracker and identify call - SQLite backups ## Delivery order 1. Scaffold the smallest runnable application and document its commands. 2. Implement the primary data model and core workflow. 3. Add validation, safe failure states, and persistence. 4. Cover the critical path with automated tests. 5. Exercise a clean install from the README and fix every missing step. ## Done when - A new user can go from clone to first successful workflow using only the README. - The core workflow works without paid infrastructure unless the brief requires it. - Tests cover the highest-risk behavior. - Known limitations are explicit rather than hidden.
# Copy to .env and document every variable when it is introduced. # Never put real credentials in this file. APP_ENV=development # Add only values required by the selected implementation.
# Grow or Die product brief ## Problem An agent can build the honest personal version: a first-party tracker, a Stripe webhook, an OpenAI usage wrapper, and a SQLite join keyed by your own account ID. That is enough to show which customers make money. The paid product starts earning its fee when the inputs stop being tidy. Analytics exports drift, refunds arrive late, model prices change, streaming calls fail after consuming tokens, and anonymous visitors do not naturally become the same people who paid. A weekend build can give one founder a useful ledger for one stack. Matching Grow or Die's connector coverage, SDKs, missing-data discipline, retention, and production reliability is ongoing analytics infrastructure, not a prompt. ## Product outcome Join first-party product activity, Stripe revenue, and server-side OpenAI usage by a stable account ID, then show revenue, AI cost, and contribution profit per customer. ## Target user A serious builder who needs a maintainable product foundation rather than a one-off demo. ## Required capabilities - Node.js 22 - VPS with a domain and TLS - Stripe webhook secret - OpenAI API key - first-party tracker and identify call - SQLite backups ## Explicit non-goals for v1 - ready-made GA4, PostHog, Stripe, and Lemon Squeezy connectors - maintained OpenAI and Anthropic pricing rules, including cached tokens - seven language SDKs with streaming, failure, timeout, and cancellation tracking - careful unknown, unpriced, unmatched, and incomplete data states - managed retention, backups, source health, and production reliability ## Success criteria - The primary workflow is measurable end to end. - Setup is reproducible in a clean environment. - Failure, recovery, and support paths are documented. - Product claims match what the implementation actually guarantees.
# Architecture ## Starting brief Build me a single-tenant AI contribution-profit dashboard for one product, replacing the narrow personal core of Grow or Die. Use Node.js 22, TypeScript, Fastify, better-sqlite3, and server-rendered HTML with no frontend framework. Run as one process behind Caddy; store everything in one SQLite file with a documented backup command. Ship a first-party browser tracker that records pageviews and product events with a random anonymous visitor ID. Add POST /identify so my app can bind that visitor ID to my own stable account_id; never use email as the join key. Verify Stripe webhooks for checkout.session.completed, invoice.paid, charge.refunded, and subscription deletion. Read account_id from Stripe metadata and store each payment or refund idempotently in an append-only revenue ledger. Provide a thin wrapper around the official OpenAI Node SDK that returns the provider response unchanged. The wrapper records account_id, model, token usage, cached input tokens, latency, status, and occurred_at. Never collect prompts, generated output, or the OpenAI API key; the key stays in .env and goes only to OpenAI. Keep model prices in a versioned JSON catalog with effective dates and calculate cost on the server. Join product events, revenue, and AI cost only by account_id and only across the same finalized 7, 30, or 90 day window. Never turn a missing payment, unknown model, partial import, or unmatched identity into zero. Show it as unknown. Dashboard: visitors, paying accounts, revenue, AI cost, contribution profit, margin, and a customer profit table. Every total links to the underlying ledger rows and shows source freshness, unmatched counts, and unpriced calls. Recommend one next action only when complete observed data supports it; otherwise recommend the missing connection or identity fix. Protect the dashboard with one admin bearer token from .env; add no accounts, billing, telemetry, cookies, or third-party analytics. Include clearly labelled demo data that can be deleted in one command and never appears after real data arrives. Write unit tests for webhook idempotency, identity joins, price effective dates, refunds, and unknown-state propagation. Add one end-to-end test that tracks a visitor, identifies an account, records a payment and model call, and shows profit. README: setup, tracker and identify snippets, Stripe CLI testing, SDK wrapper usage, deployment, backup, and limitations. Explicitly exclude GA4, PostHog, Lemon Squeezy, Anthropic, multi-currency, cross-device identity, teams, and automated model-price discovery. Run tests and a production build before finishing, and fix every failure. ## Boundaries Separate the product into replaceable modules for interface, application logic, persistence, external integrations, and operational concerns. Keep domain logic independent from delivery frameworks and vendors. ## Production baseline - Configuration: validated at startup with safe local defaults where possible. - Security: least privilege, input validation, secret redaction, rate limits on abuse-prone paths, and no invented security primitives. - Data: explicit schema and migrations, transactional writes where integrity matters, backup and restore instructions. - Integrations: adapters around third-party providers, idempotent webhook or job processing, bounded retries, and timeouts. - Observability: structured logs with request or operation IDs, an error-tracking hook, and health/readiness checks where a server exists. - Quality: unit tests for domain rules, integration tests at module boundaries, and one end-to-end critical-path test. ## Decision records For each major dependency, document why it was chosen, its failure mode, and how it can be replaced. Do not introduce infrastructure until a requirement justifies it.
# Agent instructions - Read `PRODUCT.md` and `ARCHITECTURE.md` before changing code. - Implement milestone by milestone; keep each change reviewable and leave the application runnable. - Treat authentication, payments, encryption, imports, webhooks, and destructive actions as high-risk boundaries when present. - Never invent cryptography or silently weaken a requirement to make a test pass. - Use provider interfaces for external services and deterministic fakes in tests. - Add migrations and rollback or recovery notes for persistent data changes. - Log useful operational context without credentials, tokens, passwords, or personal data. - Update documentation and run all checks before completing a milestone.
# Delivery milestones ## M0 — Decisions and scaffold - Confirm the runtime, persistence model, threat boundaries, and deployment target. - Create a reproducible local environment and continuous checks. ## M1 — Core workflow - Implement the smallest end-to-end product path with validation and tests. - Keep integrations behind interfaces. ## M2 — Trust layer - Add secure failure behavior, recovery paths, audit-relevant events, and data safeguards. - Test abuse cases and destructive operations. ## M3 — Operability - Add structured logs, error reporting hooks, health signals, backup/restore documentation, and deployment configuration. ## M4 — Release gate - Run a clean-install test, critical-path end-to-end test, dependency review, and documented rollback exercise. - Compare the shipped behavior with `PRODUCT.md` and publish remaining limitations.
# Operations ## Before release - Validate configuration and secrets at startup. - Define backup, restore, and rollback procedures and test them. - Document logs, error tracking, health signals, and alert ownership. - Set dependency update and vulnerability review expectations. ## Incident checklist 1. Contain the issue without destroying evidence or user data. 2. Record the timeline and affected scope. 3. Rotate exposed secrets and revoke compromised sessions or credentials. 4. Restore from a verified source when needed. 5. Document the root cause, remediation, and regression test. ## Launch constraint Do not market omitted Grow or Die capabilities as implemented. The v1 non-goals in `PRODUCT.md` remain user-visible limitations until they are deliberately delivered.
$ choose a build depth, inspect the files, then open the complete pack in your agent
A profit number is useful only when every input means the same customer and reporting window. Paying avoids maintaining analytics OAuth, payment webhooks, provider usage edge cases, model pricing, identity joins, retention, and the boring rule that missing data must stay missing.
xready-made GA4, PostHog, Stripe, and Lemon Squeezy connectors
xmaintained OpenAI and Anthropic pricing rules, including cached tokens
xseven language SDKs with streaming, failure, timeout, and cancellation tracking
xcareful unknown, unpriced, unmatched, and incomplete data states
xmanaged retention, backups, source health, and production reliability
Grow or Die pricing
founder$24.08/mo · $289 billed annually, equivalent to $24.08 per month · $288.96/yr
free tierThere is no permanent free tier; the Founder plan starts with a 7-day free trial.
verified 2026-08-10 · source ↗
Is Grow or Die free?
There is no permanent free tier; the Founder plan starts with a 7-day free trial. Paid is Founder at $24.08/mo (checked 2026-08-10).
Vibecode Grow or Die
Kinda. The core of Grow or Die is buildable in a weekend with the prompt on this page, but there are real gaps: ready-made GA4, PostHog, Stripe, and Lemon Squeezy connectors, maintained OpenAI and Anthropic pricing rules, including cached tokens. Read the honest list above before committing.
How much does Grow or Die cost?
Grow or Die costs about $24.08/month (Founder, checked 2026-08-10), which is $288.96 per year.
What do I lose by replacing Grow or Die?
Honestly: ready-made GA4, PostHog, Stripe, and Lemon Squeezy connectors; maintained OpenAI and Anthropic pricing rules, including cached tokens; seven language SDKs with streaming, failure, timeout, and cancellation tracking; careful unknown, unpriced, unmatched, and incomplete data states; managed retention, backups, source health, and production reliability. If any of those are load-bearing for you, keep paying.
Is there an open-source alternative to Grow or Die?
Yes: PostHog (Open-source product analytics and LLM observability that covers two large pieces of the build), OpenMeter (Open-source usage metering infrastructure for turning model calls into auditable usage facts). Using prior art is also vibecoding; the prompt is for when you want it exactly your way.