10 — Age gate and payment routes

The support page separates subscriptions/card checkout, donations, newsletter signup, and community. PayPal and Stripe handle subscription/card checkout; GitHub Sponsors, Ko-fi, Buy Me a Coffee, and NOWPayments are donation/payment destinations; Substack handles the newsletter; Discord is a separate community HTML page.

Age confirmation

pages/support.html presents an 18+ self-attestation before it reveals payment and donation widgets. The page stores a simple “yes” flag in session storage for the current browser tab and does not request a date of birth. Third-party provider scripts, the sponsor iframe, and remote donation button images are loaded only after confirmation. The Ko-fi floating overlay is removed; its direct provider link remains inside the gated donation section.

This is a front-end self-attestation, not identity verification, strong access control, or proof of legal compliance. Anyone can inspect static HTML or clear browser state. If the product or jurisdiction requires verified age, use an appropriate provider-backed verification flow before accepting payment. Confirm the required minimum age and legal disclosures before public launch.

Provider setup and success routes

The PayPal client ID and plan ID, GitHub Sponsors handle, Ko-fi handle, Buy Me a Coffee handle, NOWPayments payment link, Stripe Buy Button ID and publishable key, Substack publication slug, and Discord widget ID are included exactly as supplied in the request. Verify the account, plan, amount, renewal frequency, donation destination, and provider checkout settings before using the live page. No payment is started until a visitor chooses a provider checkout.

PayPal approval returns to pages/subscription-return.html. Stripe's supplied Buy Button is embedded as documented; its success redirect is configured in the Stripe Payment Link settings rather than through a return-url attribute on this component. Set that redirect to the deployed URL for pages/subscription-return.html. See Stripe's Buy Button documentation.

The return page is static and cannot verify a transaction or grant service access. Use the provider's dashboard, webhook, or confirmation notice as the authoritative record. Do not treat a query string or a local thank-you page as proof of payment.

The Substack form sends an email address to gitfed.substack.com. On success it routes to pages/newsletter-return.html; if the embedded request is blocked, it sends the subscriber to Substack's hosted HTML signup page. No email is stored in this repository.

Internal navigation

Visible guide links, promo cards, community entry points, support links, and payment return routes lead to actual .html pages. Provider checkout links leave the project for the named provider's HTML checkout. Markdown source documents are retained for editing, with matching rendered HTML copies for browser navigation.

The NSFW Discord option has a separate age-confirmation dialog. Continuing routes to an HTML email-request page for museai@fedpromptly.com; no NSFW invite URL is embedded or opened automatically. The community widget and the two non-NSFW server buttons remain on the centered community HTML page.