Skip to content
supastack
Browse documentation
WebTanStack Start

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /docs/tanstack/external-accounts.md (or send Accept: text/markdown).

Create your external accounts

The master checklist: which outside services the kit can use, what each one gives you, and the order to create them in.

You can build before you buy

Every feature in this kit first runs with a local stand-in — a built-in adapter that imitates the real service without an account. EMAIL_PROVIDER=local writes messages to a preview page instead of sending them, AI_PROVIDER=fake returns a deterministic fake answer, BILLING_PROVIDER=local completes checkout without a payment provider, JOB_PROVIDER=local queues background jobs in memory without running them, and CAPTCHA_PROVIDER=off keeps public forms open. The .env.example configuration ships this way, so the five-minute tutorial needs zero paid accounts.

Add a real external account only when you ship the feature it powers: a database before real sign-in, an email provider before messages must reach inboxes, a billing provider before charging money. Each guide below names the console page, the values to copy, and where to paste them.

The complete account checklist

This table lists every outside service a supastack product can need. Skip any row whose feature you are not shipping — a web-only starter never touches the mobile and desktop rows. The Guide column names the doc that walks that console click-by-click; the actual links are in Where to start at the end of this page.

ServiceWhat it gives youNeeded forGuide
Postgres database (Supabase, Neon, or Docker)Tables for accounts, workspaces, and dataReal sign-in and any saved dataSet up database
StripeCard payments and subscriptions on the webCharging money in the web appAdd Stripe payments
Resend / Amazon SESTransactional email deliverySign-in codes and receipts reaching real inboxesAdd Resend email / Set up Amazon SES email
Google Cloud OAuth clientThe Continue with Google buttonOffering Google sign-inAdd Google sign-in
GitHub OAuth AppThe Continue with GitHub buttonOffering GitHub sign-inAdd GitHub sign-in
AI provider key (OpenAI, Anthropic, or OpenRouter)Real model answersLive AI tasks instead of the fake adapterCollect the remaining provider keys
Trigger.devManaged background-job runsProduction background workCollect the remaining provider keys
S3-compatible bucket (e.g. Cloudflare R2)File and object storageUploads and stored filesCollect the remaining provider keys
Sentry or PostHogError tracking and product analyticsObservability in productionCollect the remaining provider keys
Cloudflare TurnstileSpam checks on public formsPublic sign-up and contact formsCollect the remaining provider keys
Domain registrar + DNSYour own domain nameA public https://yourdomain.com addressCollect the remaining provider keys / Deploy to Google Cloud
Hosting (Google Cloud Run or a VPS + Coolify)A public HTTPS URL for the web appGoing live for real usersDeploy to Google Cloud / Deployment checklist
Expo + EASCloud builds of the native appAnything past the Expo Go previewCreate mobile accounts
Apple Developer ProgramiOS signing, App Store submission, Sign in with AppleiPhone releases and Apple sign-inCreate mobile accounts / Add Apple sign-in
Google Play ConsoleThe Android store listingPlay Store submissionCreate mobile accounts
RevenueCatVerified native purchases and restoresSelling subscriptions inside the appSet up RevenueCat purchases
Apple Developer ID + signing CASigned and notarized desktop installersPublic desktop releases without warningsCreate desktop release accounts

A sensible creation order

Create accounts in the order features come online. For most web products that means: 1. Postgres database, 2. transactional email, 3. Google and/or GitHub sign-in, 4. billing, 5. an AI provider — then storage, background jobs, observability, and spam protection as the product needs them.

Hosting and a domain come last — a public URL is only useful once a working app exists to point it at. Mobile accounts (Expo, Apple, Google Play, RevenueCat) and desktop signing accounts matter only when you reach those platforms; skip them entirely for a web-only launch.

Keep every secret — OAuth client secrets, API keys, webhook signing secrets, and the password inside DATABASE_URL — in .env.local files or your host's secret manager. Never place them in NEXT_PUBLIC_ or EXPO_PUBLIC_ variables, and never commit them to Git.

Where to start

The detailed guides below walk each console click-by-click. Work top to bottom: the sign-in providers, then the account walkthroughs for payments, email, and the remaining provider keys, then the provider setup references for the services your product ships, then deployment; the platform account guides when you reach mobile or desktop.

If you want to continue setup, read Add Google sign-in.