chore: remove all Stripe billing code and database schema - #1069

Merged
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing
Apr 1, 2026
Merged

chore: remove all Stripe billing code and database schema#1069
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove the entire Stripe billing integration including actions, server utils, webhook handler, and UI components (billing page, upgrade page, trial indicator, upgrade guard)
  • Remove StripeSubscriptionStatus enum and stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt fields from the Org model with a database migration
  • Remove stripe, @stripe/react-stripe-js, and @stripe/stripe-js dependencies and all related env vars, error codes, and entitlements

Test plan

  • Verify the app builds and starts without errors
  • Verify settings pages load correctly without the billing nav item
  • Verify member invite/remove flows work without seat count adjustments
  • Verify onboarding completes without billing/checkout step
  • Run the database migration against a test database

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Removed
    • Billing settings page and subscription management features
    • Trial status indicator from navigation menu
    • Upgrade and checkout flows
    • Stripe-based payment processing integration

brendan-kellamand others added 2 commits April 1, 2026 13:14
Billing was an enterprise entitlement that is no longer needed. This removes
the Stripe integration, billing UI, subscription management, and related
database fields.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

This comment has been minimized.

@github-actions

github-actionsBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

License Audit

⚠️Status: PASS

MetricCount
Total packages2106
Resolved (non-standard)8
Unresolved0
Strong copyleft0
Weak copyleft26

Weak Copyleft Packages (informational)

PackageVersionLicense
axe-core4.10.3MPL-2.0
@img/sharp-libvips-darwin-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.0.5LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-ppc641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-riscv641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.2.4LGPL-3.0-or-later
@img/sharp-wasm320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-wasm320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-arm640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-ia320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-ia320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-x640.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-x640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
Resolved Packages (8)
PackageVersionOriginalResolvedSource
@react-grab/cli0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
@react-grab/mcp0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
codemirror-lang-elixir4.0.0UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/codemirror-lang-elixir) — package.json license field and LICENSE file confirm Apache-2.0
lezer-elixir1.1.2UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/lezer-elixir) — package.json license field and LICENSE file confirm Apache-2.0
map-stream0.1.0UNKNOWNMITGitHub repository (github.com/dominictarr/map-stream) — GitHub license API identifies MIT
memorystream0.3.1UNKNOWNMITnpm registry metadata — licenses array contains {"type":"MIT"}
valid-url1.0.9UNKNOWNMITGitHub LICENSE file (github.com/ogt/valid-url) — standard MIT license text confirmed
posthog-js1.345.5SEE LICENSE IN LICENSEApache-2.0GitHub LICENSE file (github.com/PostHog/posthog-js) — Apache License 2.0 text confirmed

@coderabbitai

coderabbitaiBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request removes Stripe billing integration from the application, including environment variables, database schema columns, billing-related server actions, UI components, entitlements, and associated utilities across configuration, database, shared types, and web application code.

Changes

Cohort / File(s)Summary
Configuration and Environment
.env.development, packages/shared/src/env.server.ts, CHANGELOG.md
Removed Stripe environment variable placeholders and configuration schema entries; updated changelog with removal entry.
Database Schema
packages/db/prisma/schema.prisma, packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
Removed stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt columns from Org table and dropped StripeSubscriptionStatus enum type.
Billing Features Module
packages/web/src/ee/features/billing/stripe.ts, packages/web/src/ee/features/billing/actions.ts, packages/web/src/ee/features/billing/serverUtils.ts, packages/web/src/ee/features/billing/components/*
Removed entire billing module including IS_BILLING_ENABLED and stripeClient exports, server actions for subscription management, seat adjustment utilities, and all billing UI components (checkout, upgrade cards, manage subscription button, billing email card).
Type Definitions and Constants
packages/shared/src/entitlements.ts, packages/web/src/lib/errorCodes.ts, packages/web/src/lib/serviceError.ts, packages/web/src/lib/constants.ts
Removed "billing" entitlement, Stripe-related error codes (STRIPE_CHECKOUT_ERROR, STRIPE_CLIENT_NOT_INITIALIZED, etc.), corresponding ServiceError factories, and ENTERPRISE_FEATURES/TEAM_FEATURES constants; removed Checkout step from OnboardingSteps enum.
Settings and Navigation UI
packages/web/src/app/[domain]/settings/billing/page.tsx, packages/web/src/app/[domain]/settings/layout.tsx, packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx, packages/web/src/app/[domain]/settings/members/page.tsx, packages/web/src/app/[domain]/components/navigationMenu/index.tsx, packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
Removed billing settings page, trial indicator component, billing nav item, and isBillingEnabled prop from invite card; simplified navigation menu and member invite logic.
Layout and Routing
packages/web/src/app/[domain]/layout.tsx, packages/web/src/app/[domain]/components/upgradeGuard.tsx, packages/web/src/app/[domain]/upgrade/page.tsx
Removed subscription-based gating from main layout, deleted UpgradeGuard component and upgrade page route.
Server Actions and API
packages/web/src/actions.ts, packages/web/src/features/userManagement/actions.ts, packages/web/src/lib/authUtils.ts, packages/web/src/app/api/(server)/stripe/route.ts
Simplified onboarding to remove billing checks and subscription status updates; removed billing seat increment/decrement logic from user management; deleted Stripe webhook handler API route.
Dependencies and Mocks
packages/web/package.json, packages/web/src/__mocks__/prisma.ts
Removed Stripe npm packages (@stripe/react-stripe-js, @stripe/stripe-js, stripe) and stripe:listen script; removed Stripe-related fields from MOCK_ORG.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • PR #190: Adds Stripe billing integration (inverse of this PR, affecting same DB schema, env vars, and billing-related code paths)
  • PR #888: Modifies packages/shared/src/entitlements.ts to adjust entitlements list membership
  • PR #376: Touches onboarding flow by rewriting OnboardingSteps and related completion logic

Suggested labels

sourcebot-team

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely summarizes the main change: removing all Stripe billing code and database schema. It is specific, directly related to the changeset, and accurately reflects the primary objective of the PR.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bkellam/remove-stripe-billing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql (1)

4-15: Please verify these Stripe columns are empty before rollout.

This removes the only local org→Stripe mapping (stripeCustomerId) and the last known subscription state. If any Org rows are still populated, later cancellation/refund/reconciliation becomes manual. Please archive/export non-null rows first, or explicitly gate the migration on these columns being empty.

Read-only preflight query
SELECTCOUNT(*) AS orgs_with_stripe_data
FROM"Org"WHERE"stripeCustomerId"IS NOT NULLOR"stripeSubscriptionStatus"IS NOT NULLOR"stripeLastUpdatedAt"IS NOT NULL;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`
around lines 4 - 15, The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`:
- Around line 4-15: The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ce2b2266-a82d-4d3c-b6f9-c4bced4dd257

📥 Commits

Reviewing files that changed from the base of the PR and between 17f1b7f and da00676.

📒 Files selected for processing (33)
  • .env.development
  • CHANGELOG.md
  • packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
  • packages/db/prisma/schema.prisma
  • packages/shared/src/entitlements.ts
  • packages/shared/src/env.server.ts
  • packages/web/package.json
  • packages/web/src/__mocks__/prisma.ts
  • packages/web/src/actions.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/app/[domain]/layout.tsx
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/ee/features/billing/actions.ts
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/lib/authUtils.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/lib/serviceError.ts
💤 Files with no reviewable changes (29)
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/lib/serviceError.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/lib/authUtils.ts
  • packages/shared/src/entitlements.ts
  • .env.development
  • packages/web/src/mocks/prisma.ts
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/package.json
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/app/[domain]/layout.tsx
  • packages/db/prisma/schema.prisma
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/shared/src/env.server.ts
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/actions.ts

@brendan-kellam
brendan-kellam merged commit c875d7b into mainApr 1, 2026
10 checks passed
@brendan-kellam
brendan-kellam deleted the bkellam/remove-stripe-billing branch April 1, 2026 20:31
@github-actionsgithub-actionsBot mentioned this pull request Apr 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

chore: remove all Stripe billing code and database schema - #1069

Merged
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing
Apr 1, 2026
Merged

chore: remove all Stripe billing code and database schema#1069
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove the entire Stripe billing integration including actions, server utils, webhook handler, and UI components (billing page, upgrade page, trial indicator, upgrade guard)
  • Remove StripeSubscriptionStatus enum and stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt fields from the Org model with a database migration
  • Remove stripe, @stripe/react-stripe-js, and @stripe/stripe-js dependencies and all related env vars, error codes, and entitlements

Test plan

  • Verify the app builds and starts without errors
  • Verify settings pages load correctly without the billing nav item
  • Verify member invite/remove flows work without seat count adjustments
  • Verify onboarding completes without billing/checkout step
  • Run the database migration against a test database

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Removed
    • Billing settings page and subscription management features
    • Trial status indicator from navigation menu
    • Upgrade and checkout flows
    • Stripe-based payment processing integration

brendan-kellamand others added 2 commits April 1, 2026 13:14
Billing was an enterprise entitlement that is no longer needed. This removes
the Stripe integration, billing UI, subscription management, and related
database fields.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

This comment has been minimized.

@github-actions

github-actionsBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

License Audit

⚠️Status: PASS

MetricCount
Total packages2106
Resolved (non-standard)8
Unresolved0
Strong copyleft0
Weak copyleft26

Weak Copyleft Packages (informational)

PackageVersionLicense
axe-core4.10.3MPL-2.0
@img/sharp-libvips-darwin-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.0.5LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-ppc641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-riscv641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.2.4LGPL-3.0-or-later
@img/sharp-wasm320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-wasm320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-arm640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-ia320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-ia320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-x640.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-x640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
Resolved Packages (8)
PackageVersionOriginalResolvedSource
@react-grab/cli0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
@react-grab/mcp0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
codemirror-lang-elixir4.0.0UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/codemirror-lang-elixir) — package.json license field and LICENSE file confirm Apache-2.0
lezer-elixir1.1.2UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/lezer-elixir) — package.json license field and LICENSE file confirm Apache-2.0
map-stream0.1.0UNKNOWNMITGitHub repository (github.com/dominictarr/map-stream) — GitHub license API identifies MIT
memorystream0.3.1UNKNOWNMITnpm registry metadata — licenses array contains {"type":"MIT"}
valid-url1.0.9UNKNOWNMITGitHub LICENSE file (github.com/ogt/valid-url) — standard MIT license text confirmed
posthog-js1.345.5SEE LICENSE IN LICENSEApache-2.0GitHub LICENSE file (github.com/PostHog/posthog-js) — Apache License 2.0 text confirmed

@coderabbitai

coderabbitaiBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request removes Stripe billing integration from the application, including environment variables, database schema columns, billing-related server actions, UI components, entitlements, and associated utilities across configuration, database, shared types, and web application code.

Changes

Cohort / File(s)Summary
Configuration and Environment
.env.development, packages/shared/src/env.server.ts, CHANGELOG.md
Removed Stripe environment variable placeholders and configuration schema entries; updated changelog with removal entry.
Database Schema
packages/db/prisma/schema.prisma, packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
Removed stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt columns from Org table and dropped StripeSubscriptionStatus enum type.
Billing Features Module
packages/web/src/ee/features/billing/stripe.ts, packages/web/src/ee/features/billing/actions.ts, packages/web/src/ee/features/billing/serverUtils.ts, packages/web/src/ee/features/billing/components/*
Removed entire billing module including IS_BILLING_ENABLED and stripeClient exports, server actions for subscription management, seat adjustment utilities, and all billing UI components (checkout, upgrade cards, manage subscription button, billing email card).
Type Definitions and Constants
packages/shared/src/entitlements.ts, packages/web/src/lib/errorCodes.ts, packages/web/src/lib/serviceError.ts, packages/web/src/lib/constants.ts
Removed "billing" entitlement, Stripe-related error codes (STRIPE_CHECKOUT_ERROR, STRIPE_CLIENT_NOT_INITIALIZED, etc.), corresponding ServiceError factories, and ENTERPRISE_FEATURES/TEAM_FEATURES constants; removed Checkout step from OnboardingSteps enum.
Settings and Navigation UI
packages/web/src/app/[domain]/settings/billing/page.tsx, packages/web/src/app/[domain]/settings/layout.tsx, packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx, packages/web/src/app/[domain]/settings/members/page.tsx, packages/web/src/app/[domain]/components/navigationMenu/index.tsx, packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
Removed billing settings page, trial indicator component, billing nav item, and isBillingEnabled prop from invite card; simplified navigation menu and member invite logic.
Layout and Routing
packages/web/src/app/[domain]/layout.tsx, packages/web/src/app/[domain]/components/upgradeGuard.tsx, packages/web/src/app/[domain]/upgrade/page.tsx
Removed subscription-based gating from main layout, deleted UpgradeGuard component and upgrade page route.
Server Actions and API
packages/web/src/actions.ts, packages/web/src/features/userManagement/actions.ts, packages/web/src/lib/authUtils.ts, packages/web/src/app/api/(server)/stripe/route.ts
Simplified onboarding to remove billing checks and subscription status updates; removed billing seat increment/decrement logic from user management; deleted Stripe webhook handler API route.
Dependencies and Mocks
packages/web/package.json, packages/web/src/__mocks__/prisma.ts
Removed Stripe npm packages (@stripe/react-stripe-js, @stripe/stripe-js, stripe) and stripe:listen script; removed Stripe-related fields from MOCK_ORG.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • PR #190: Adds Stripe billing integration (inverse of this PR, affecting same DB schema, env vars, and billing-related code paths)
  • PR #888: Modifies packages/shared/src/entitlements.ts to adjust entitlements list membership
  • PR #376: Touches onboarding flow by rewriting OnboardingSteps and related completion logic

Suggested labels

sourcebot-team

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely summarizes the main change: removing all Stripe billing code and database schema. It is specific, directly related to the changeset, and accurately reflects the primary objective of the PR.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bkellam/remove-stripe-billing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql (1)

4-15: Please verify these Stripe columns are empty before rollout.

This removes the only local org→Stripe mapping (stripeCustomerId) and the last known subscription state. If any Org rows are still populated, later cancellation/refund/reconciliation becomes manual. Please archive/export non-null rows first, or explicitly gate the migration on these columns being empty.

Read-only preflight query
SELECTCOUNT(*) AS orgs_with_stripe_data
FROM"Org"WHERE"stripeCustomerId"IS NOT NULLOR"stripeSubscriptionStatus"IS NOT NULLOR"stripeLastUpdatedAt"IS NOT NULL;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`
around lines 4 - 15, The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`:
- Around line 4-15: The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ce2b2266-a82d-4d3c-b6f9-c4bced4dd257

📥 Commits

Reviewing files that changed from the base of the PR and between 17f1b7f and da00676.

📒 Files selected for processing (33)
  • .env.development
  • CHANGELOG.md
  • packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
  • packages/db/prisma/schema.prisma
  • packages/shared/src/entitlements.ts
  • packages/shared/src/env.server.ts
  • packages/web/package.json
  • packages/web/src/__mocks__/prisma.ts
  • packages/web/src/actions.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/app/[domain]/layout.tsx
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/ee/features/billing/actions.ts
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/lib/authUtils.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/lib/serviceError.ts
💤 Files with no reviewable changes (29)
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/lib/serviceError.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/lib/authUtils.ts
  • packages/shared/src/entitlements.ts
  • .env.development
  • packages/web/src/mocks/prisma.ts
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/package.json
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/app/[domain]/layout.tsx
  • packages/db/prisma/schema.prisma
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/shared/src/env.server.ts
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/actions.ts

@brendan-kellam
brendan-kellam merged commit c875d7b into mainApr 1, 2026
10 checks passed
@brendan-kellam
brendan-kellam deleted the bkellam/remove-stripe-billing branch April 1, 2026 20:31
@github-actionsgithub-actionsBot mentioned this pull request Apr 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: remove all Stripe billing code and database schema - #1069

Merged
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing
Apr 1, 2026
Merged

chore: remove all Stripe billing code and database schema#1069
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove the entire Stripe billing integration including actions, server utils, webhook handler, and UI components (billing page, upgrade page, trial indicator, upgrade guard)
  • Remove StripeSubscriptionStatus enum and stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt fields from the Org model with a database migration
  • Remove stripe, @stripe/react-stripe-js, and @stripe/stripe-js dependencies and all related env vars, error codes, and entitlements

Test plan

  • Verify the app builds and starts without errors
  • Verify settings pages load correctly without the billing nav item
  • Verify member invite/remove flows work without seat count adjustments
  • Verify onboarding completes without billing/checkout step
  • Run the database migration against a test database

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Removed
    • Billing settings page and subscription management features
    • Trial status indicator from navigation menu
    • Upgrade and checkout flows
    • Stripe-based payment processing integration

brendan-kellamand others added 2 commits April 1, 2026 13:14
Billing was an enterprise entitlement that is no longer needed. This removes
the Stripe integration, billing UI, subscription management, and related
database fields.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

This comment has been minimized.

@github-actions

github-actionsBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

License Audit

⚠️Status: PASS

MetricCount
Total packages2106
Resolved (non-standard)8
Unresolved0
Strong copyleft0
Weak copyleft26

Weak Copyleft Packages (informational)

PackageVersionLicense
axe-core4.10.3MPL-2.0
@img/sharp-libvips-darwin-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.0.5LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-ppc641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-riscv641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.2.4LGPL-3.0-or-later
@img/sharp-wasm320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-wasm320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-arm640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-ia320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-ia320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-x640.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-x640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
Resolved Packages (8)
PackageVersionOriginalResolvedSource
@react-grab/cli0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
@react-grab/mcp0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
codemirror-lang-elixir4.0.0UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/codemirror-lang-elixir) — package.json license field and LICENSE file confirm Apache-2.0
lezer-elixir1.1.2UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/lezer-elixir) — package.json license field and LICENSE file confirm Apache-2.0
map-stream0.1.0UNKNOWNMITGitHub repository (github.com/dominictarr/map-stream) — GitHub license API identifies MIT
memorystream0.3.1UNKNOWNMITnpm registry metadata — licenses array contains {"type":"MIT"}
valid-url1.0.9UNKNOWNMITGitHub LICENSE file (github.com/ogt/valid-url) — standard MIT license text confirmed
posthog-js1.345.5SEE LICENSE IN LICENSEApache-2.0GitHub LICENSE file (github.com/PostHog/posthog-js) — Apache License 2.0 text confirmed

@coderabbitai

coderabbitaiBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request removes Stripe billing integration from the application, including environment variables, database schema columns, billing-related server actions, UI components, entitlements, and associated utilities across configuration, database, shared types, and web application code.

Changes

Cohort / File(s)Summary
Configuration and Environment
.env.development, packages/shared/src/env.server.ts, CHANGELOG.md
Removed Stripe environment variable placeholders and configuration schema entries; updated changelog with removal entry.
Database Schema
packages/db/prisma/schema.prisma, packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
Removed stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt columns from Org table and dropped StripeSubscriptionStatus enum type.
Billing Features Module
packages/web/src/ee/features/billing/stripe.ts, packages/web/src/ee/features/billing/actions.ts, packages/web/src/ee/features/billing/serverUtils.ts, packages/web/src/ee/features/billing/components/*
Removed entire billing module including IS_BILLING_ENABLED and stripeClient exports, server actions for subscription management, seat adjustment utilities, and all billing UI components (checkout, upgrade cards, manage subscription button, billing email card).
Type Definitions and Constants
packages/shared/src/entitlements.ts, packages/web/src/lib/errorCodes.ts, packages/web/src/lib/serviceError.ts, packages/web/src/lib/constants.ts
Removed "billing" entitlement, Stripe-related error codes (STRIPE_CHECKOUT_ERROR, STRIPE_CLIENT_NOT_INITIALIZED, etc.), corresponding ServiceError factories, and ENTERPRISE_FEATURES/TEAM_FEATURES constants; removed Checkout step from OnboardingSteps enum.
Settings and Navigation UI
packages/web/src/app/[domain]/settings/billing/page.tsx, packages/web/src/app/[domain]/settings/layout.tsx, packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx, packages/web/src/app/[domain]/settings/members/page.tsx, packages/web/src/app/[domain]/components/navigationMenu/index.tsx, packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
Removed billing settings page, trial indicator component, billing nav item, and isBillingEnabled prop from invite card; simplified navigation menu and member invite logic.
Layout and Routing
packages/web/src/app/[domain]/layout.tsx, packages/web/src/app/[domain]/components/upgradeGuard.tsx, packages/web/src/app/[domain]/upgrade/page.tsx
Removed subscription-based gating from main layout, deleted UpgradeGuard component and upgrade page route.
Server Actions and API
packages/web/src/actions.ts, packages/web/src/features/userManagement/actions.ts, packages/web/src/lib/authUtils.ts, packages/web/src/app/api/(server)/stripe/route.ts
Simplified onboarding to remove billing checks and subscription status updates; removed billing seat increment/decrement logic from user management; deleted Stripe webhook handler API route.
Dependencies and Mocks
packages/web/package.json, packages/web/src/__mocks__/prisma.ts
Removed Stripe npm packages (@stripe/react-stripe-js, @stripe/stripe-js, stripe) and stripe:listen script; removed Stripe-related fields from MOCK_ORG.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • PR #190: Adds Stripe billing integration (inverse of this PR, affecting same DB schema, env vars, and billing-related code paths)
  • PR #888: Modifies packages/shared/src/entitlements.ts to adjust entitlements list membership
  • PR #376: Touches onboarding flow by rewriting OnboardingSteps and related completion logic

Suggested labels

sourcebot-team

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely summarizes the main change: removing all Stripe billing code and database schema. It is specific, directly related to the changeset, and accurately reflects the primary objective of the PR.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bkellam/remove-stripe-billing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql (1)

4-15: Please verify these Stripe columns are empty before rollout.

This removes the only local org→Stripe mapping (stripeCustomerId) and the last known subscription state. If any Org rows are still populated, later cancellation/refund/reconciliation becomes manual. Please archive/export non-null rows first, or explicitly gate the migration on these columns being empty.

Read-only preflight query
SELECTCOUNT(*) AS orgs_with_stripe_data
FROM"Org"WHERE"stripeCustomerId"IS NOT NULLOR"stripeSubscriptionStatus"IS NOT NULLOR"stripeLastUpdatedAt"IS NOT NULL;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`
around lines 4 - 15, The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`:
- Around line 4-15: The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ce2b2266-a82d-4d3c-b6f9-c4bced4dd257

📥 Commits

Reviewing files that changed from the base of the PR and between 17f1b7f and da00676.

📒 Files selected for processing (33)
  • .env.development
  • CHANGELOG.md
  • packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
  • packages/db/prisma/schema.prisma
  • packages/shared/src/entitlements.ts
  • packages/shared/src/env.server.ts
  • packages/web/package.json
  • packages/web/src/__mocks__/prisma.ts
  • packages/web/src/actions.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/app/[domain]/layout.tsx
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/ee/features/billing/actions.ts
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/lib/authUtils.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/lib/serviceError.ts
💤 Files with no reviewable changes (29)
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/lib/serviceError.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/lib/authUtils.ts
  • packages/shared/src/entitlements.ts
  • .env.development
  • packages/web/src/mocks/prisma.ts
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/package.json
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/app/[domain]/layout.tsx
  • packages/db/prisma/schema.prisma
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/shared/src/env.server.ts
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/actions.ts

@brendan-kellam
brendan-kellam merged commit c875d7b into mainApr 1, 2026
10 checks passed
@brendan-kellam
brendan-kellam deleted the bkellam/remove-stripe-billing branch April 1, 2026 20:31
@github-actionsgithub-actionsBot mentioned this pull request Apr 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: remove all Stripe billing code and database schema - #1069

Merged
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing
Apr 1, 2026
Merged

chore: remove all Stripe billing code and database schema#1069
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove the entire Stripe billing integration including actions, server utils, webhook handler, and UI components (billing page, upgrade page, trial indicator, upgrade guard)
  • Remove StripeSubscriptionStatus enum and stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt fields from the Org model with a database migration
  • Remove stripe, @stripe/react-stripe-js, and @stripe/stripe-js dependencies and all related env vars, error codes, and entitlements

Test plan

  • Verify the app builds and starts without errors
  • Verify settings pages load correctly without the billing nav item
  • Verify member invite/remove flows work without seat count adjustments
  • Verify onboarding completes without billing/checkout step
  • Run the database migration against a test database

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Removed
    • Billing settings page and subscription management features
    • Trial status indicator from navigation menu
    • Upgrade and checkout flows
    • Stripe-based payment processing integration

brendan-kellamand others added 2 commits April 1, 2026 13:14
Billing was an enterprise entitlement that is no longer needed. This removes
the Stripe integration, billing UI, subscription management, and related
database fields.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

This comment has been minimized.

@github-actions

github-actionsBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

License Audit

⚠️Status: PASS

MetricCount
Total packages2106
Resolved (non-standard)8
Unresolved0
Strong copyleft0
Weak copyleft26

Weak Copyleft Packages (informational)

PackageVersionLicense
axe-core4.10.3MPL-2.0
@img/sharp-libvips-darwin-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.0.5LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-ppc641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-riscv641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.2.4LGPL-3.0-or-later
@img/sharp-wasm320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-wasm320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-arm640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-ia320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-ia320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-x640.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-x640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
Resolved Packages (8)
PackageVersionOriginalResolvedSource
@react-grab/cli0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
@react-grab/mcp0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
codemirror-lang-elixir4.0.0UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/codemirror-lang-elixir) — package.json license field and LICENSE file confirm Apache-2.0
lezer-elixir1.1.2UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/lezer-elixir) — package.json license field and LICENSE file confirm Apache-2.0
map-stream0.1.0UNKNOWNMITGitHub repository (github.com/dominictarr/map-stream) — GitHub license API identifies MIT
memorystream0.3.1UNKNOWNMITnpm registry metadata — licenses array contains {"type":"MIT"}
valid-url1.0.9UNKNOWNMITGitHub LICENSE file (github.com/ogt/valid-url) — standard MIT license text confirmed
posthog-js1.345.5SEE LICENSE IN LICENSEApache-2.0GitHub LICENSE file (github.com/PostHog/posthog-js) — Apache License 2.0 text confirmed

@coderabbitai

coderabbitaiBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request removes Stripe billing integration from the application, including environment variables, database schema columns, billing-related server actions, UI components, entitlements, and associated utilities across configuration, database, shared types, and web application code.

Changes

Cohort / File(s)Summary
Configuration and Environment
.env.development, packages/shared/src/env.server.ts, CHANGELOG.md
Removed Stripe environment variable placeholders and configuration schema entries; updated changelog with removal entry.
Database Schema
packages/db/prisma/schema.prisma, packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
Removed stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt columns from Org table and dropped StripeSubscriptionStatus enum type.
Billing Features Module
packages/web/src/ee/features/billing/stripe.ts, packages/web/src/ee/features/billing/actions.ts, packages/web/src/ee/features/billing/serverUtils.ts, packages/web/src/ee/features/billing/components/*
Removed entire billing module including IS_BILLING_ENABLED and stripeClient exports, server actions for subscription management, seat adjustment utilities, and all billing UI components (checkout, upgrade cards, manage subscription button, billing email card).
Type Definitions and Constants
packages/shared/src/entitlements.ts, packages/web/src/lib/errorCodes.ts, packages/web/src/lib/serviceError.ts, packages/web/src/lib/constants.ts
Removed "billing" entitlement, Stripe-related error codes (STRIPE_CHECKOUT_ERROR, STRIPE_CLIENT_NOT_INITIALIZED, etc.), corresponding ServiceError factories, and ENTERPRISE_FEATURES/TEAM_FEATURES constants; removed Checkout step from OnboardingSteps enum.
Settings and Navigation UI
packages/web/src/app/[domain]/settings/billing/page.tsx, packages/web/src/app/[domain]/settings/layout.tsx, packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx, packages/web/src/app/[domain]/settings/members/page.tsx, packages/web/src/app/[domain]/components/navigationMenu/index.tsx, packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
Removed billing settings page, trial indicator component, billing nav item, and isBillingEnabled prop from invite card; simplified navigation menu and member invite logic.
Layout and Routing
packages/web/src/app/[domain]/layout.tsx, packages/web/src/app/[domain]/components/upgradeGuard.tsx, packages/web/src/app/[domain]/upgrade/page.tsx
Removed subscription-based gating from main layout, deleted UpgradeGuard component and upgrade page route.
Server Actions and API
packages/web/src/actions.ts, packages/web/src/features/userManagement/actions.ts, packages/web/src/lib/authUtils.ts, packages/web/src/app/api/(server)/stripe/route.ts
Simplified onboarding to remove billing checks and subscription status updates; removed billing seat increment/decrement logic from user management; deleted Stripe webhook handler API route.
Dependencies and Mocks
packages/web/package.json, packages/web/src/__mocks__/prisma.ts
Removed Stripe npm packages (@stripe/react-stripe-js, @stripe/stripe-js, stripe) and stripe:listen script; removed Stripe-related fields from MOCK_ORG.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • PR #190: Adds Stripe billing integration (inverse of this PR, affecting same DB schema, env vars, and billing-related code paths)
  • PR #888: Modifies packages/shared/src/entitlements.ts to adjust entitlements list membership
  • PR #376: Touches onboarding flow by rewriting OnboardingSteps and related completion logic

Suggested labels

sourcebot-team

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely summarizes the main change: removing all Stripe billing code and database schema. It is specific, directly related to the changeset, and accurately reflects the primary objective of the PR.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bkellam/remove-stripe-billing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql (1)

4-15: Please verify these Stripe columns are empty before rollout.

This removes the only local org→Stripe mapping (stripeCustomerId) and the last known subscription state. If any Org rows are still populated, later cancellation/refund/reconciliation becomes manual. Please archive/export non-null rows first, or explicitly gate the migration on these columns being empty.

Read-only preflight query
SELECTCOUNT(*) AS orgs_with_stripe_data
FROM"Org"WHERE"stripeCustomerId"IS NOT NULLOR"stripeSubscriptionStatus"IS NOT NULLOR"stripeLastUpdatedAt"IS NOT NULL;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`
around lines 4 - 15, The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`:
- Around line 4-15: The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ce2b2266-a82d-4d3c-b6f9-c4bced4dd257

📥 Commits

Reviewing files that changed from the base of the PR and between 17f1b7f and da00676.

📒 Files selected for processing (33)
  • .env.development
  • CHANGELOG.md
  • packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
  • packages/db/prisma/schema.prisma
  • packages/shared/src/entitlements.ts
  • packages/shared/src/env.server.ts
  • packages/web/package.json
  • packages/web/src/__mocks__/prisma.ts
  • packages/web/src/actions.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/app/[domain]/layout.tsx
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/ee/features/billing/actions.ts
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/lib/authUtils.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/lib/serviceError.ts
💤 Files with no reviewable changes (29)
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/lib/serviceError.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/lib/authUtils.ts
  • packages/shared/src/entitlements.ts
  • .env.development
  • packages/web/src/mocks/prisma.ts
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/package.json
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/app/[domain]/layout.tsx
  • packages/db/prisma/schema.prisma
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/shared/src/env.server.ts
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/actions.ts

@brendan-kellam
brendan-kellam merged commit c875d7b into mainApr 1, 2026
10 checks passed
@brendan-kellam
brendan-kellam deleted the bkellam/remove-stripe-billing branch April 1, 2026 20:31
@github-actionsgithub-actionsBot mentioned this pull request Apr 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

chore: remove all Stripe billing code and database schema - #1069

Merged
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing
Apr 1, 2026
Merged

chore: remove all Stripe billing code and database schema#1069
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove the entire Stripe billing integration including actions, server utils, webhook handler, and UI components (billing page, upgrade page, trial indicator, upgrade guard)
  • Remove StripeSubscriptionStatus enum and stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt fields from the Org model with a database migration
  • Remove stripe, @stripe/react-stripe-js, and @stripe/stripe-js dependencies and all related env vars, error codes, and entitlements

Test plan

  • Verify the app builds and starts without errors
  • Verify settings pages load correctly without the billing nav item
  • Verify member invite/remove flows work without seat count adjustments
  • Verify onboarding completes without billing/checkout step
  • Run the database migration against a test database

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Removed
    • Billing settings page and subscription management features
    • Trial status indicator from navigation menu
    • Upgrade and checkout flows
    • Stripe-based payment processing integration

brendan-kellamand others added 2 commits April 1, 2026 13:14
Billing was an enterprise entitlement that is no longer needed. This removes
the Stripe integration, billing UI, subscription management, and related
database fields.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

This comment has been minimized.

@github-actions

github-actionsBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

License Audit

⚠️Status: PASS

MetricCount
Total packages2106
Resolved (non-standard)8
Unresolved0
Strong copyleft0
Weak copyleft26

Weak Copyleft Packages (informational)

PackageVersionLicense
axe-core4.10.3MPL-2.0
@img/sharp-libvips-darwin-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.0.5LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-ppc641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-riscv641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.2.4LGPL-3.0-or-later
@img/sharp-wasm320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-wasm320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-arm640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-ia320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-ia320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-x640.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-x640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
Resolved Packages (8)
PackageVersionOriginalResolvedSource
@react-grab/cli0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
@react-grab/mcp0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
codemirror-lang-elixir4.0.0UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/codemirror-lang-elixir) — package.json license field and LICENSE file confirm Apache-2.0
lezer-elixir1.1.2UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/lezer-elixir) — package.json license field and LICENSE file confirm Apache-2.0
map-stream0.1.0UNKNOWNMITGitHub repository (github.com/dominictarr/map-stream) — GitHub license API identifies MIT
memorystream0.3.1UNKNOWNMITnpm registry metadata — licenses array contains {"type":"MIT"}
valid-url1.0.9UNKNOWNMITGitHub LICENSE file (github.com/ogt/valid-url) — standard MIT license text confirmed
posthog-js1.345.5SEE LICENSE IN LICENSEApache-2.0GitHub LICENSE file (github.com/PostHog/posthog-js) — Apache License 2.0 text confirmed

@coderabbitai

coderabbitaiBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request removes Stripe billing integration from the application, including environment variables, database schema columns, billing-related server actions, UI components, entitlements, and associated utilities across configuration, database, shared types, and web application code.

Changes

Cohort / File(s)Summary
Configuration and Environment
.env.development, packages/shared/src/env.server.ts, CHANGELOG.md
Removed Stripe environment variable placeholders and configuration schema entries; updated changelog with removal entry.
Database Schema
packages/db/prisma/schema.prisma, packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
Removed stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt columns from Org table and dropped StripeSubscriptionStatus enum type.
Billing Features Module
packages/web/src/ee/features/billing/stripe.ts, packages/web/src/ee/features/billing/actions.ts, packages/web/src/ee/features/billing/serverUtils.ts, packages/web/src/ee/features/billing/components/*
Removed entire billing module including IS_BILLING_ENABLED and stripeClient exports, server actions for subscription management, seat adjustment utilities, and all billing UI components (checkout, upgrade cards, manage subscription button, billing email card).
Type Definitions and Constants
packages/shared/src/entitlements.ts, packages/web/src/lib/errorCodes.ts, packages/web/src/lib/serviceError.ts, packages/web/src/lib/constants.ts
Removed "billing" entitlement, Stripe-related error codes (STRIPE_CHECKOUT_ERROR, STRIPE_CLIENT_NOT_INITIALIZED, etc.), corresponding ServiceError factories, and ENTERPRISE_FEATURES/TEAM_FEATURES constants; removed Checkout step from OnboardingSteps enum.
Settings and Navigation UI
packages/web/src/app/[domain]/settings/billing/page.tsx, packages/web/src/app/[domain]/settings/layout.tsx, packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx, packages/web/src/app/[domain]/settings/members/page.tsx, packages/web/src/app/[domain]/components/navigationMenu/index.tsx, packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
Removed billing settings page, trial indicator component, billing nav item, and isBillingEnabled prop from invite card; simplified navigation menu and member invite logic.
Layout and Routing
packages/web/src/app/[domain]/layout.tsx, packages/web/src/app/[domain]/components/upgradeGuard.tsx, packages/web/src/app/[domain]/upgrade/page.tsx
Removed subscription-based gating from main layout, deleted UpgradeGuard component and upgrade page route.
Server Actions and API
packages/web/src/actions.ts, packages/web/src/features/userManagement/actions.ts, packages/web/src/lib/authUtils.ts, packages/web/src/app/api/(server)/stripe/route.ts
Simplified onboarding to remove billing checks and subscription status updates; removed billing seat increment/decrement logic from user management; deleted Stripe webhook handler API route.
Dependencies and Mocks
packages/web/package.json, packages/web/src/__mocks__/prisma.ts
Removed Stripe npm packages (@stripe/react-stripe-js, @stripe/stripe-js, stripe) and stripe:listen script; removed Stripe-related fields from MOCK_ORG.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • PR #190: Adds Stripe billing integration (inverse of this PR, affecting same DB schema, env vars, and billing-related code paths)
  • PR #888: Modifies packages/shared/src/entitlements.ts to adjust entitlements list membership
  • PR #376: Touches onboarding flow by rewriting OnboardingSteps and related completion logic

Suggested labels

sourcebot-team

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely summarizes the main change: removing all Stripe billing code and database schema. It is specific, directly related to the changeset, and accurately reflects the primary objective of the PR.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bkellam/remove-stripe-billing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql (1)

4-15: Please verify these Stripe columns are empty before rollout.

This removes the only local org→Stripe mapping (stripeCustomerId) and the last known subscription state. If any Org rows are still populated, later cancellation/refund/reconciliation becomes manual. Please archive/export non-null rows first, or explicitly gate the migration on these columns being empty.

Read-only preflight query
SELECTCOUNT(*) AS orgs_with_stripe_data
FROM"Org"WHERE"stripeCustomerId"IS NOT NULLOR"stripeSubscriptionStatus"IS NOT NULLOR"stripeLastUpdatedAt"IS NOT NULL;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`
around lines 4 - 15, The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`:
- Around line 4-15: The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ce2b2266-a82d-4d3c-b6f9-c4bced4dd257

📥 Commits

Reviewing files that changed from the base of the PR and between 17f1b7f and da00676.

📒 Files selected for processing (33)
  • .env.development
  • CHANGELOG.md
  • packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
  • packages/db/prisma/schema.prisma
  • packages/shared/src/entitlements.ts
  • packages/shared/src/env.server.ts
  • packages/web/package.json
  • packages/web/src/__mocks__/prisma.ts
  • packages/web/src/actions.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/app/[domain]/layout.tsx
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/ee/features/billing/actions.ts
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/lib/authUtils.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/lib/serviceError.ts
💤 Files with no reviewable changes (29)
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/lib/serviceError.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/lib/authUtils.ts
  • packages/shared/src/entitlements.ts
  • .env.development
  • packages/web/src/mocks/prisma.ts
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/package.json
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/app/[domain]/layout.tsx
  • packages/db/prisma/schema.prisma
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/shared/src/env.server.ts
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/actions.ts

@brendan-kellam
brendan-kellam merged commit c875d7b into mainApr 1, 2026
10 checks passed
@brendan-kellam
brendan-kellam deleted the bkellam/remove-stripe-billing branch April 1, 2026 20:31
@github-actionsgithub-actionsBot mentioned this pull request Apr 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: remove all Stripe billing code and database schema - #1069

Merged
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing
Apr 1, 2026
Merged

chore: remove all Stripe billing code and database schema#1069
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove the entire Stripe billing integration including actions, server utils, webhook handler, and UI components (billing page, upgrade page, trial indicator, upgrade guard)
  • Remove StripeSubscriptionStatus enum and stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt fields from the Org model with a database migration
  • Remove stripe, @stripe/react-stripe-js, and @stripe/stripe-js dependencies and all related env vars, error codes, and entitlements

Test plan

  • Verify the app builds and starts without errors
  • Verify settings pages load correctly without the billing nav item
  • Verify member invite/remove flows work without seat count adjustments
  • Verify onboarding completes without billing/checkout step
  • Run the database migration against a test database

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Removed
    • Billing settings page and subscription management features
    • Trial status indicator from navigation menu
    • Upgrade and checkout flows
    • Stripe-based payment processing integration

brendan-kellamand others added 2 commits April 1, 2026 13:14
Billing was an enterprise entitlement that is no longer needed. This removes
the Stripe integration, billing UI, subscription management, and related
database fields.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

This comment has been minimized.

@github-actions

github-actionsBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

License Audit

⚠️Status: PASS

MetricCount
Total packages2106
Resolved (non-standard)8
Unresolved0
Strong copyleft0
Weak copyleft26

Weak Copyleft Packages (informational)

PackageVersionLicense
axe-core4.10.3MPL-2.0
@img/sharp-libvips-darwin-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.0.5LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-ppc641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-riscv641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.2.4LGPL-3.0-or-later
@img/sharp-wasm320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-wasm320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-arm640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-ia320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-ia320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-x640.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-x640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
Resolved Packages (8)
PackageVersionOriginalResolvedSource
@react-grab/cli0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
@react-grab/mcp0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
codemirror-lang-elixir4.0.0UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/codemirror-lang-elixir) — package.json license field and LICENSE file confirm Apache-2.0
lezer-elixir1.1.2UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/lezer-elixir) — package.json license field and LICENSE file confirm Apache-2.0
map-stream0.1.0UNKNOWNMITGitHub repository (github.com/dominictarr/map-stream) — GitHub license API identifies MIT
memorystream0.3.1UNKNOWNMITnpm registry metadata — licenses array contains {"type":"MIT"}
valid-url1.0.9UNKNOWNMITGitHub LICENSE file (github.com/ogt/valid-url) — standard MIT license text confirmed
posthog-js1.345.5SEE LICENSE IN LICENSEApache-2.0GitHub LICENSE file (github.com/PostHog/posthog-js) — Apache License 2.0 text confirmed

@coderabbitai

coderabbitaiBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request removes Stripe billing integration from the application, including environment variables, database schema columns, billing-related server actions, UI components, entitlements, and associated utilities across configuration, database, shared types, and web application code.

Changes

Cohort / File(s)Summary
Configuration and Environment
.env.development, packages/shared/src/env.server.ts, CHANGELOG.md
Removed Stripe environment variable placeholders and configuration schema entries; updated changelog with removal entry.
Database Schema
packages/db/prisma/schema.prisma, packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
Removed stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt columns from Org table and dropped StripeSubscriptionStatus enum type.
Billing Features Module
packages/web/src/ee/features/billing/stripe.ts, packages/web/src/ee/features/billing/actions.ts, packages/web/src/ee/features/billing/serverUtils.ts, packages/web/src/ee/features/billing/components/*
Removed entire billing module including IS_BILLING_ENABLED and stripeClient exports, server actions for subscription management, seat adjustment utilities, and all billing UI components (checkout, upgrade cards, manage subscription button, billing email card).
Type Definitions and Constants
packages/shared/src/entitlements.ts, packages/web/src/lib/errorCodes.ts, packages/web/src/lib/serviceError.ts, packages/web/src/lib/constants.ts
Removed "billing" entitlement, Stripe-related error codes (STRIPE_CHECKOUT_ERROR, STRIPE_CLIENT_NOT_INITIALIZED, etc.), corresponding ServiceError factories, and ENTERPRISE_FEATURES/TEAM_FEATURES constants; removed Checkout step from OnboardingSteps enum.
Settings and Navigation UI
packages/web/src/app/[domain]/settings/billing/page.tsx, packages/web/src/app/[domain]/settings/layout.tsx, packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx, packages/web/src/app/[domain]/settings/members/page.tsx, packages/web/src/app/[domain]/components/navigationMenu/index.tsx, packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
Removed billing settings page, trial indicator component, billing nav item, and isBillingEnabled prop from invite card; simplified navigation menu and member invite logic.
Layout and Routing
packages/web/src/app/[domain]/layout.tsx, packages/web/src/app/[domain]/components/upgradeGuard.tsx, packages/web/src/app/[domain]/upgrade/page.tsx
Removed subscription-based gating from main layout, deleted UpgradeGuard component and upgrade page route.
Server Actions and API
packages/web/src/actions.ts, packages/web/src/features/userManagement/actions.ts, packages/web/src/lib/authUtils.ts, packages/web/src/app/api/(server)/stripe/route.ts
Simplified onboarding to remove billing checks and subscription status updates; removed billing seat increment/decrement logic from user management; deleted Stripe webhook handler API route.
Dependencies and Mocks
packages/web/package.json, packages/web/src/__mocks__/prisma.ts
Removed Stripe npm packages (@stripe/react-stripe-js, @stripe/stripe-js, stripe) and stripe:listen script; removed Stripe-related fields from MOCK_ORG.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • PR #190: Adds Stripe billing integration (inverse of this PR, affecting same DB schema, env vars, and billing-related code paths)
  • PR #888: Modifies packages/shared/src/entitlements.ts to adjust entitlements list membership
  • PR #376: Touches onboarding flow by rewriting OnboardingSteps and related completion logic

Suggested labels

sourcebot-team

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely summarizes the main change: removing all Stripe billing code and database schema. It is specific, directly related to the changeset, and accurately reflects the primary objective of the PR.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bkellam/remove-stripe-billing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql (1)

4-15: Please verify these Stripe columns are empty before rollout.

This removes the only local org→Stripe mapping (stripeCustomerId) and the last known subscription state. If any Org rows are still populated, later cancellation/refund/reconciliation becomes manual. Please archive/export non-null rows first, or explicitly gate the migration on these columns being empty.

Read-only preflight query
SELECTCOUNT(*) AS orgs_with_stripe_data
FROM"Org"WHERE"stripeCustomerId"IS NOT NULLOR"stripeSubscriptionStatus"IS NOT NULLOR"stripeLastUpdatedAt"IS NOT NULL;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`
around lines 4 - 15, The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`:
- Around line 4-15: The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ce2b2266-a82d-4d3c-b6f9-c4bced4dd257

📥 Commits

Reviewing files that changed from the base of the PR and between 17f1b7f and da00676.

📒 Files selected for processing (33)
  • .env.development
  • CHANGELOG.md
  • packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
  • packages/db/prisma/schema.prisma
  • packages/shared/src/entitlements.ts
  • packages/shared/src/env.server.ts
  • packages/web/package.json
  • packages/web/src/__mocks__/prisma.ts
  • packages/web/src/actions.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/app/[domain]/layout.tsx
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/ee/features/billing/actions.ts
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/lib/authUtils.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/lib/serviceError.ts
💤 Files with no reviewable changes (29)
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/lib/serviceError.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/lib/authUtils.ts
  • packages/shared/src/entitlements.ts
  • .env.development
  • packages/web/src/mocks/prisma.ts
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/package.json
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/app/[domain]/layout.tsx
  • packages/db/prisma/schema.prisma
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/shared/src/env.server.ts
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/actions.ts

@brendan-kellam
brendan-kellam merged commit c875d7b into mainApr 1, 2026
10 checks passed
@brendan-kellam
brendan-kellam deleted the bkellam/remove-stripe-billing branch April 1, 2026 20:31
@github-actionsgithub-actionsBot mentioned this pull request Apr 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: remove all Stripe billing code and database schema - #1069

Merged
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing
Apr 1, 2026
Merged

chore: remove all Stripe billing code and database schema#1069
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove the entire Stripe billing integration including actions, server utils, webhook handler, and UI components (billing page, upgrade page, trial indicator, upgrade guard)
  • Remove StripeSubscriptionStatus enum and stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt fields from the Org model with a database migration
  • Remove stripe, @stripe/react-stripe-js, and @stripe/stripe-js dependencies and all related env vars, error codes, and entitlements

Test plan

  • Verify the app builds and starts without errors
  • Verify settings pages load correctly without the billing nav item
  • Verify member invite/remove flows work without seat count adjustments
  • Verify onboarding completes without billing/checkout step
  • Run the database migration against a test database

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Removed
    • Billing settings page and subscription management features
    • Trial status indicator from navigation menu
    • Upgrade and checkout flows
    • Stripe-based payment processing integration

brendan-kellamand others added 2 commits April 1, 2026 13:14
Billing was an enterprise entitlement that is no longer needed. This removes
the Stripe integration, billing UI, subscription management, and related
database fields.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

This comment has been minimized.

@github-actions

github-actionsBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

License Audit

⚠️Status: PASS

MetricCount
Total packages2106
Resolved (non-standard)8
Unresolved0
Strong copyleft0
Weak copyleft26

Weak Copyleft Packages (informational)

PackageVersionLicense
axe-core4.10.3MPL-2.0
@img/sharp-libvips-darwin-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.0.5LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-ppc641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-riscv641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.2.4LGPL-3.0-or-later
@img/sharp-wasm320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-wasm320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-arm640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-ia320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-ia320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-x640.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-x640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
Resolved Packages (8)
PackageVersionOriginalResolvedSource
@react-grab/cli0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
@react-grab/mcp0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
codemirror-lang-elixir4.0.0UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/codemirror-lang-elixir) — package.json license field and LICENSE file confirm Apache-2.0
lezer-elixir1.1.2UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/lezer-elixir) — package.json license field and LICENSE file confirm Apache-2.0
map-stream0.1.0UNKNOWNMITGitHub repository (github.com/dominictarr/map-stream) — GitHub license API identifies MIT
memorystream0.3.1UNKNOWNMITnpm registry metadata — licenses array contains {"type":"MIT"}
valid-url1.0.9UNKNOWNMITGitHub LICENSE file (github.com/ogt/valid-url) — standard MIT license text confirmed
posthog-js1.345.5SEE LICENSE IN LICENSEApache-2.0GitHub LICENSE file (github.com/PostHog/posthog-js) — Apache License 2.0 text confirmed

@coderabbitai

coderabbitaiBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request removes Stripe billing integration from the application, including environment variables, database schema columns, billing-related server actions, UI components, entitlements, and associated utilities across configuration, database, shared types, and web application code.

Changes

Cohort / File(s)Summary
Configuration and Environment
.env.development, packages/shared/src/env.server.ts, CHANGELOG.md
Removed Stripe environment variable placeholders and configuration schema entries; updated changelog with removal entry.
Database Schema
packages/db/prisma/schema.prisma, packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
Removed stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt columns from Org table and dropped StripeSubscriptionStatus enum type.
Billing Features Module
packages/web/src/ee/features/billing/stripe.ts, packages/web/src/ee/features/billing/actions.ts, packages/web/src/ee/features/billing/serverUtils.ts, packages/web/src/ee/features/billing/components/*
Removed entire billing module including IS_BILLING_ENABLED and stripeClient exports, server actions for subscription management, seat adjustment utilities, and all billing UI components (checkout, upgrade cards, manage subscription button, billing email card).
Type Definitions and Constants
packages/shared/src/entitlements.ts, packages/web/src/lib/errorCodes.ts, packages/web/src/lib/serviceError.ts, packages/web/src/lib/constants.ts
Removed "billing" entitlement, Stripe-related error codes (STRIPE_CHECKOUT_ERROR, STRIPE_CLIENT_NOT_INITIALIZED, etc.), corresponding ServiceError factories, and ENTERPRISE_FEATURES/TEAM_FEATURES constants; removed Checkout step from OnboardingSteps enum.
Settings and Navigation UI
packages/web/src/app/[domain]/settings/billing/page.tsx, packages/web/src/app/[domain]/settings/layout.tsx, packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx, packages/web/src/app/[domain]/settings/members/page.tsx, packages/web/src/app/[domain]/components/navigationMenu/index.tsx, packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
Removed billing settings page, trial indicator component, billing nav item, and isBillingEnabled prop from invite card; simplified navigation menu and member invite logic.
Layout and Routing
packages/web/src/app/[domain]/layout.tsx, packages/web/src/app/[domain]/components/upgradeGuard.tsx, packages/web/src/app/[domain]/upgrade/page.tsx
Removed subscription-based gating from main layout, deleted UpgradeGuard component and upgrade page route.
Server Actions and API
packages/web/src/actions.ts, packages/web/src/features/userManagement/actions.ts, packages/web/src/lib/authUtils.ts, packages/web/src/app/api/(server)/stripe/route.ts
Simplified onboarding to remove billing checks and subscription status updates; removed billing seat increment/decrement logic from user management; deleted Stripe webhook handler API route.
Dependencies and Mocks
packages/web/package.json, packages/web/src/__mocks__/prisma.ts
Removed Stripe npm packages (@stripe/react-stripe-js, @stripe/stripe-js, stripe) and stripe:listen script; removed Stripe-related fields from MOCK_ORG.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • PR #190: Adds Stripe billing integration (inverse of this PR, affecting same DB schema, env vars, and billing-related code paths)
  • PR #888: Modifies packages/shared/src/entitlements.ts to adjust entitlements list membership
  • PR #376: Touches onboarding flow by rewriting OnboardingSteps and related completion logic

Suggested labels

sourcebot-team

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely summarizes the main change: removing all Stripe billing code and database schema. It is specific, directly related to the changeset, and accurately reflects the primary objective of the PR.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bkellam/remove-stripe-billing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql (1)

4-15: Please verify these Stripe columns are empty before rollout.

This removes the only local org→Stripe mapping (stripeCustomerId) and the last known subscription state. If any Org rows are still populated, later cancellation/refund/reconciliation becomes manual. Please archive/export non-null rows first, or explicitly gate the migration on these columns being empty.

Read-only preflight query
SELECTCOUNT(*) AS orgs_with_stripe_data
FROM"Org"WHERE"stripeCustomerId"IS NOT NULLOR"stripeSubscriptionStatus"IS NOT NULLOR"stripeLastUpdatedAt"IS NOT NULL;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`
around lines 4 - 15, The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`:
- Around line 4-15: The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ce2b2266-a82d-4d3c-b6f9-c4bced4dd257

📥 Commits

Reviewing files that changed from the base of the PR and between 17f1b7f and da00676.

📒 Files selected for processing (33)
  • .env.development
  • CHANGELOG.md
  • packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
  • packages/db/prisma/schema.prisma
  • packages/shared/src/entitlements.ts
  • packages/shared/src/env.server.ts
  • packages/web/package.json
  • packages/web/src/__mocks__/prisma.ts
  • packages/web/src/actions.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/app/[domain]/layout.tsx
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/ee/features/billing/actions.ts
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/lib/authUtils.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/lib/serviceError.ts
💤 Files with no reviewable changes (29)
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/lib/serviceError.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/lib/authUtils.ts
  • packages/shared/src/entitlements.ts
  • .env.development
  • packages/web/src/mocks/prisma.ts
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/package.json
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/app/[domain]/layout.tsx
  • packages/db/prisma/schema.prisma
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/shared/src/env.server.ts
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/actions.ts

@brendan-kellam
brendan-kellam merged commit c875d7b into mainApr 1, 2026
10 checks passed
@brendan-kellam
brendan-kellam deleted the bkellam/remove-stripe-billing branch April 1, 2026 20:31
@github-actionsgithub-actionsBot mentioned this pull request Apr 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

chore: remove all Stripe billing code and database schema - #1069

Merged
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing
Apr 1, 2026
Merged

chore: remove all Stripe billing code and database schema#1069
brendan-kellam merged 4 commits into
mainfrom
bkellam/remove-stripe-billing

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove the entire Stripe billing integration including actions, server utils, webhook handler, and UI components (billing page, upgrade page, trial indicator, upgrade guard)
  • Remove StripeSubscriptionStatus enum and stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt fields from the Org model with a database migration
  • Remove stripe, @stripe/react-stripe-js, and @stripe/stripe-js dependencies and all related env vars, error codes, and entitlements

Test plan

  • Verify the app builds and starts without errors
  • Verify settings pages load correctly without the billing nav item
  • Verify member invite/remove flows work without seat count adjustments
  • Verify onboarding completes without billing/checkout step
  • Run the database migration against a test database

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Removed
    • Billing settings page and subscription management features
    • Trial status indicator from navigation menu
    • Upgrade and checkout flows
    • Stripe-based payment processing integration

brendan-kellamand others added 2 commits April 1, 2026 13:14
Billing was an enterprise entitlement that is no longer needed. This removes
the Stripe integration, billing UI, subscription management, and related
database fields.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

This comment has been minimized.

@github-actions

github-actionsBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

License Audit

⚠️Status: PASS

MetricCount
Total packages2106
Resolved (non-standard)8
Unresolved0
Strong copyleft0
Weak copyleft26

Weak Copyleft Packages (informational)

PackageVersionLicense
axe-core4.10.3MPL-2.0
@img/sharp-libvips-darwin-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-darwin-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.0.5LGPL-3.0-or-later
@img/sharp-libvips-linux-arm1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-ppc641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-riscv641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x1.2.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linux-x641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm641.2.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.0.4LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x641.2.4LGPL-3.0-or-later
@img/sharp-wasm320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-wasm320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-arm640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-ia320.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-ia320.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-x640.33.5Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-x640.34.5Apache-2.0 AND LGPL-3.0-or-later AND MIT
Resolved Packages (8)
PackageVersionOriginalResolvedSource
@react-grab/cli0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
@react-grab/mcp0.1.23UNKNOWNMITGitHub repository (github.com/aidenybai/react-grab) — LICENSE file confirms MIT
codemirror-lang-elixir4.0.0UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/codemirror-lang-elixir) — package.json license field and LICENSE file confirm Apache-2.0
lezer-elixir1.1.2UNKNOWNApache-2.0GitHub repository (github.com/livebook-dev/lezer-elixir) — package.json license field and LICENSE file confirm Apache-2.0
map-stream0.1.0UNKNOWNMITGitHub repository (github.com/dominictarr/map-stream) — GitHub license API identifies MIT
memorystream0.3.1UNKNOWNMITnpm registry metadata — licenses array contains {"type":"MIT"}
valid-url1.0.9UNKNOWNMITGitHub LICENSE file (github.com/ogt/valid-url) — standard MIT license text confirmed
posthog-js1.345.5SEE LICENSE IN LICENSEApache-2.0GitHub LICENSE file (github.com/PostHog/posthog-js) — Apache License 2.0 text confirmed

@coderabbitai

coderabbitaiBot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This pull request removes Stripe billing integration from the application, including environment variables, database schema columns, billing-related server actions, UI components, entitlements, and associated utilities across configuration, database, shared types, and web application code.

Changes

Cohort / File(s)Summary
Configuration and Environment
.env.development, packages/shared/src/env.server.ts, CHANGELOG.md
Removed Stripe environment variable placeholders and configuration schema entries; updated changelog with removal entry.
Database Schema
packages/db/prisma/schema.prisma, packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
Removed stripeCustomerId, stripeSubscriptionStatus, stripeLastUpdatedAt columns from Org table and dropped StripeSubscriptionStatus enum type.
Billing Features Module
packages/web/src/ee/features/billing/stripe.ts, packages/web/src/ee/features/billing/actions.ts, packages/web/src/ee/features/billing/serverUtils.ts, packages/web/src/ee/features/billing/components/*
Removed entire billing module including IS_BILLING_ENABLED and stripeClient exports, server actions for subscription management, seat adjustment utilities, and all billing UI components (checkout, upgrade cards, manage subscription button, billing email card).
Type Definitions and Constants
packages/shared/src/entitlements.ts, packages/web/src/lib/errorCodes.ts, packages/web/src/lib/serviceError.ts, packages/web/src/lib/constants.ts
Removed "billing" entitlement, Stripe-related error codes (STRIPE_CHECKOUT_ERROR, STRIPE_CLIENT_NOT_INITIALIZED, etc.), corresponding ServiceError factories, and ENTERPRISE_FEATURES/TEAM_FEATURES constants; removed Checkout step from OnboardingSteps enum.
Settings and Navigation UI
packages/web/src/app/[domain]/settings/billing/page.tsx, packages/web/src/app/[domain]/settings/layout.tsx, packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx, packages/web/src/app/[domain]/settings/members/page.tsx, packages/web/src/app/[domain]/components/navigationMenu/index.tsx, packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
Removed billing settings page, trial indicator component, billing nav item, and isBillingEnabled prop from invite card; simplified navigation menu and member invite logic.
Layout and Routing
packages/web/src/app/[domain]/layout.tsx, packages/web/src/app/[domain]/components/upgradeGuard.tsx, packages/web/src/app/[domain]/upgrade/page.tsx
Removed subscription-based gating from main layout, deleted UpgradeGuard component and upgrade page route.
Server Actions and API
packages/web/src/actions.ts, packages/web/src/features/userManagement/actions.ts, packages/web/src/lib/authUtils.ts, packages/web/src/app/api/(server)/stripe/route.ts
Simplified onboarding to remove billing checks and subscription status updates; removed billing seat increment/decrement logic from user management; deleted Stripe webhook handler API route.
Dependencies and Mocks
packages/web/package.json, packages/web/src/__mocks__/prisma.ts
Removed Stripe npm packages (@stripe/react-stripe-js, @stripe/stripe-js, stripe) and stripe:listen script; removed Stripe-related fields from MOCK_ORG.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • PR #190: Adds Stripe billing integration (inverse of this PR, affecting same DB schema, env vars, and billing-related code paths)
  • PR #888: Modifies packages/shared/src/entitlements.ts to adjust entitlements list membership
  • PR #376: Touches onboarding flow by rewriting OnboardingSteps and related completion logic

Suggested labels

sourcebot-team

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly and concisely summarizes the main change: removing all Stripe billing code and database schema. It is specific, directly related to the changeset, and accurately reflects the primary objective of the PR.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bkellam/remove-stripe-billing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql (1)

4-15: Please verify these Stripe columns are empty before rollout.

This removes the only local org→Stripe mapping (stripeCustomerId) and the last known subscription state. If any Org rows are still populated, later cancellation/refund/reconciliation becomes manual. Please archive/export non-null rows first, or explicitly gate the migration on these columns being empty.

Read-only preflight query
SELECTCOUNT(*) AS orgs_with_stripe_data
FROM"Org"WHERE"stripeCustomerId"IS NOT NULLOR"stripeSubscriptionStatus"IS NOT NULLOR"stripeLastUpdatedAt"IS NOT NULL;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`
around lines 4 - 15, The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In
`@packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql`:
- Around line 4-15: The migration drops Org columns stripeCustomerId,
stripeLastUpdatedAt, stripeSubscriptionStatus and must be gated by a preflight
that verifies those columns are empty; add a pre-migration check (using the
provided SELECT COUNT(*) query against the Org table) and fail the migration if
the count > 0, or add an explicit data-export/archive step to persist any
non-null rows before running ALTER TABLE/ DROP TYPE; reference the Org table and
the three column names (stripeCustomerId, stripeSubscriptionStatus,
stripeLastUpdatedAt) so the migration script or deployment pipeline enforces the
check or performs the export and only proceeds when verified.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ce2b2266-a82d-4d3c-b6f9-c4bced4dd257

📥 Commits

Reviewing files that changed from the base of the PR and between 17f1b7f and da00676.

📒 Files selected for processing (33)
  • .env.development
  • CHANGELOG.md
  • packages/db/prisma/migrations/20260401200619_remove_stripe_billing/migration.sql
  • packages/db/prisma/schema.prisma
  • packages/shared/src/entitlements.ts
  • packages/shared/src/env.server.ts
  • packages/web/package.json
  • packages/web/src/__mocks__/prisma.ts
  • packages/web/src/actions.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/app/[domain]/layout.tsx
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/components/inviteMemberCard.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/ee/features/billing/actions.ts
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/lib/authUtils.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/lib/serviceError.ts
💤 Files with no reviewable changes (29)
  • packages/web/src/app/[domain]/settings/layout.tsx
  • packages/web/src/app/[domain]/settings/members/page.tsx
  • packages/web/src/app/[domain]/components/upgradeGuard.tsx
  • packages/web/src/lib/serviceError.ts
  • packages/web/src/app/[domain]/components/navigationMenu/index.tsx
  • packages/web/src/lib/authUtils.ts
  • packages/shared/src/entitlements.ts
  • .env.development
  • packages/web/src/mocks/prisma.ts
  • packages/web/src/ee/features/billing/components/enterpriseUpgradeCard.tsx
  • packages/web/package.json
  • packages/web/src/features/userManagement/actions.ts
  • packages/web/src/ee/features/billing/stripe.ts
  • packages/web/src/lib/constants.ts
  • packages/web/src/app/[domain]/layout.tsx
  • packages/db/prisma/schema.prisma
  • packages/web/src/ee/features/billing/components/manageSubscriptionButton.tsx
  • packages/web/src/lib/errorCodes.ts
  • packages/web/src/ee/features/billing/components/teamUpgradeCard.tsx
  • packages/web/src/ee/features/billing/components/upgradeCard.tsx
  • packages/web/src/ee/features/billing/components/checkout.tsx
  • packages/shared/src/env.server.ts
  • packages/web/src/app/[domain]/upgrade/page.tsx
  • packages/web/src/app/[domain]/components/navigationMenu/trialIndicator.tsx
  • packages/web/src/ee/features/billing/components/changeBillingEmailCard.tsx
  • packages/web/src/app/api/(server)/stripe/route.ts
  • packages/web/src/app/[domain]/settings/billing/page.tsx
  • packages/web/src/ee/features/billing/serverUtils.ts
  • packages/web/src/ee/features/billing/actions.ts

@brendan-kellam
brendan-kellam merged commit c875d7b into mainApr 1, 2026
10 checks passed
@brendan-kellam
brendan-kellam deleted the bkellam/remove-stripe-billing branch April 1, 2026 20:31
@github-actionsgithub-actionsBot mentioned this pull request Apr 1, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@brendan-kellam