Stack

Adams forStripe payments.

Payment code holds a secret key and a webhook. Adams keeps the key out of commits and asks before you go live.

Lite and Pro
// the problem

What goes wrong

A live key in the repoThe secret key can create charges and read customers. If it is committed to a public repository, it has to be replaced.
Test mode is skippedWiring a payment and clicking through it with a real card is quick. Test mode exists so that a bug does not cost money.
// what adams does

What Adams does

Blocks keys at commitLite: a secret key in code is stopped with the file and line and moved to an ignored env file.
Asks about the flow firstPro: one time or recurring, refunds, and what happens when a payment fails are settled before code.
Puts a leak firstPro: hey adams offers to move the key, check if it went public, replace it, then test a payment, in that order.
// worked example

An example

The order of the fix

From a real hey adams run on a test store.

~/project~/your-project · example
A key looks pasted into app/api/checkout/route.ts
1. Move the key out of code (recommended)
2. Check if it went public
3. Replace the old key
4. Test a payment
// faq

Questions

Does Adams talk to Stripe?

No. It never connects to a payment account.

Does it make me PCI compliant?

No. Using hosted checkout from your provider is the usual way to keep card data away from your code.

What is free?

The secret, git and leak guards.

// related

Keep reading