diff --git a/frontend/README-VERCEL.md b/frontend/README-VERCEL.md index 17e647c..b115f3c 100644 --- a/frontend/README-VERCEL.md +++ b/frontend/README-VERCEL.md @@ -55,6 +55,23 @@ unset in Preview and Development so those deployments emit no analytics: | `NEXT_PUBLIC_POSTHOG_HOST` | `https://e.codeswhat.com` | | `NEXT_PUBLIC_POSTHOG_UI_HOST` | `https://us.posthog.com` | +### Support page + +`/support` reads `CODESWHAT_SUPPORT_LINKS`, a server-side JSON object mapping tier +id to a Stripe Payment Link. The six ids are `monthly-5`, `monthly-10`, +`monthly-25`, `monthly-100`, `once-10` and `once-50`: + +``` +CODESWHAT_SUPPORT_LINKS={"monthly-5":"https://buy.stripe.com/...","monthly-10":"https://buy.stripe.com/...","monthly-25":"https://buy.stripe.com/...","monthly-100":"https://buy.stripe.com/...","once-10":"https://buy.stripe.com/...","once-50":"https://buy.stripe.com/..."} +``` + +Only `https://buy.stripe.com/...` and `https://donate.stripe.com/...` links with a +path and no credentials are accepted. Unknown ids and invalid links are dropped +with a server warning, and any tier without a link renders as "Opening soon". +The page is rendered per request, so changing the variable needs a redeploy but +no rebuild of page code. Costs marked PLACEHOLDER in `lib/support.ts` are for the +maintainer to fill in. + ## Domain Configuration 1. Go to your Vercel project settings diff --git a/frontend/app/(site)/layout.tsx b/frontend/app/(site)/layout.tsx new file mode 100644 index 0000000..75048ef --- /dev/null +++ b/frontend/app/(site)/layout.tsx @@ -0,0 +1,13 @@ +import { Footer } from "@/components/catalogue/Footer"; +import { Shell } from "@/components/catalogue/Shell"; + +// The Catalogue shell wraps every public route. The dev-only /studio capture pages sit +// outside this group so their transparent canvases are not painted over by the paper. +export default function SiteLayout({ children }: { children: React.ReactNode }) { + return ( + + {children} +