# BitterCheckout

> BitterCheckout adds Stripe Checkout to an existing product site while the
> product keeps control of access and fulfillment.

Canonical site: https://bittercheckout.com/

The GitHub source link is omitted until publication safety review, public
visibility, and live route behavior all verify.

## Add Stripe Checkout to Your Existing Product

BitterCheckout hosts checkout configuration and an embeddable widget, creates
the Stripe Checkout session, observes the Stripe webhook, keeps Checkout-local
event records, and sends a signed callback to the consuming product.

Stripe processes payment. The consuming product still owns credits, access,
fulfillment, refunds policy, support, and the meaning of purchased value.

## User And Job

The user is a small product or site operator who wants to add Stripe Checkout
without rebuilding widget UX, session creation, webhook receipt, and callback
plumbing.

## How It Works

1. Define the product, packs or plans, allowed site, and callback URL.
2. Connect the Stripe account that should receive payment.
3. Add the BitterCheckout widget and mark the buy button.
4. Verify the signed completion callback and test product fulfillment before
   accepting live payments.

## Product Loop

```text
CheckoutConfig -> WidgetEmbed -> BuyerAction -> StripeCheckoutSession -> StripeWebhook -> CheckoutEvent -> SignedCallback -> ProductFulfillment
```

## Public Proof

The source-shaped public surface exposes:

- home page at `https://bittercheckout.com/`
- health route at `https://bittercheckout.com/up`
- widget route at `https://bittercheckout.com/widget.js`
- sitemap at `https://bittercheckout.com/sitemap.xml`
- robots file at `https://bittercheckout.com/robots.txt`
- Markdown mirror at `https://bittercheckout.com/index.md`
- agent index at `https://bittercheckout.com/llms.txt`
- full Markdown bundle at `https://bittercheckout.com/llms-full.txt`

## Boundaries

BitterCheckout is not a payment processor, credit ledger, entitlement engine,
Hub identity system, credential custody service, accounting system, refund
authority, or support workflow.

Stripe owns hosted payment collection, card data, payment methods, processor
receipts, disputes, and payouts. The consuming product owns fulfillment.

## Current Deployment Boundary

This app repo is source-shaped and deployed to the live BitterGrid service, but
it is still not a public-safe source repository.

As of 2026-07-10:

- the live Grid service serves the homepage, widget, health route, sitemap,
  Markdown mirror, and LLM discovery files from this app/runtime repository
- private account routes such as `/login`, `/signup`, `/dashboard`, and the
  account callback route are marked `noindex` in HTML and HTTP robots headers
- GitHub visibility remains private, so the public source link stays omitted

Do not treat this repository as public-approved until a marketing split or
dedicated app-repo publication scrub is complete.
