Skip to content

Re-enable Stripe billing (currently pinned for early access) #3

Description

@rogadev

Billing is fully implemented but dormant: with no Stripe env vars set, billingEnabled() is false, the app runs unlocked with password-only accounts, and all billing UI (nav item, trial banner, signup/landing trial copy) is hidden. See commit 69c18f1.

Why it's pinned

Ryan couldn't get access to the Stripe account when we tried to authorize the Stripe MCP plugin (June 11, 2026). Everything code-side is done and merged — this is purely account/config work.

To re-enable

  1. Stripe account access — resolve login issues (this was the blocker).
  2. Create the product/price — "EzEval", recurring $5.00 USD/month → copy the price ID. (The Stripe MCP plugin can do this once authorized.)
  3. Webhook endpointhttps://ezeval.app/api/stripe/webhook, events: checkout.session.completed, customer.subscription.created, customer.subscription.updated, customer.subscription.deleted → copy the signing secret.
  4. Set env vars (locally in .env and in the Vercel project):
    • STRIPE_SECRET_KEY
    • STRIPE_PRICE_ID
    • STRIPE_WEBHOOK_SECRET
  5. Revisit early-access copy — landing page and signup currently say "free during early access · $5/month at launch"; restore trial/subscribe wording when billing goes live (src/routes/+page.svelte, src/routes/signup/+page.svelte).
  6. Decide grandfathering — businesses created during early access have a trialEndsAt 14 days after signup, which will likely be in the past when billing turns on; they'll be locked to the billing page on their next visit. Either extend trial_ends_at for existing rows or let them subscribe immediately.
  7. Test the flow — checkout with test cards (4242 4242 4242 4242), webhook delivery, past-due banner, lock/unlock gating.

Setting the three env vars is the only switch — no code changes needed to turn billing back on.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions