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/web/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.
| Service | What it gives you | Needed for | Guide |
|---|---|---|---|
| Postgres database (Supabase, Neon, or Docker) | Tables for accounts, workspaces, and data | Real sign-in and any saved data | Set up database |
| Stripe | Card payments and subscriptions on the web | Charging money in the web app | Add Stripe payments |
| Resend / Amazon SES | Transactional email delivery | Sign-in codes and receipts reaching real inboxes | Add Resend email / Set up Amazon SES email |
| Google Cloud OAuth client | The Continue with Google button | Offering Google sign-in | Add Google sign-in |
| GitHub OAuth App | The Continue with GitHub button | Offering GitHub sign-in | Add GitHub sign-in |
| AI provider key (OpenAI, Anthropic, or OpenRouter) | Real model answers | Live AI tasks instead of the fake adapter | Collect the remaining provider keys |
| Trigger.dev | Managed background-job runs | Production background work | Collect the remaining provider keys |
| S3-compatible bucket (e.g. Cloudflare R2) | File and object storage | Uploads and stored files | Collect the remaining provider keys |
| Sentry or PostHog | Error tracking and product analytics | Observability in production | Collect the remaining provider keys |
| Cloudflare Turnstile | Spam checks on public forms | Public sign-up and contact forms | Collect the remaining provider keys |
| Domain registrar + DNS | Your own domain name | A public https://yourdomain.com address | Collect the remaining provider keys / Deploy to Google Cloud |
| Hosting (Google Cloud Run or a VPS + Coolify) | A public HTTPS URL for the web app | Going live for real users | Deploy to Google Cloud / Deployment checklist |
| Expo + EAS | Cloud builds of the native app | Anything past the Expo Go preview | Create mobile accounts |
| Apple Developer Program | iOS signing, App Store submission, Sign in with Apple | iPhone releases and Apple sign-in | Create mobile accounts / Add Apple sign-in |
| Google Play Console | The Android store listing | Play Store submission | Create mobile accounts |
| RevenueCat | Verified native purchases and restores | Selling subscriptions inside the app | Set up RevenueCat purchases |
| Apple Developer ID + signing CA | Signed and notarized desktop installers | Public desktop releases without warnings | Create 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.
- Add Google sign-in
- Add GitHub sign-in
- Add Apple sign-in
- Add Stripe payments
- Add Resend email
- Collect the remaining provider keys
- Set up database
- Set up payments
- Set up email
- Set up OAuth sign-in
- Set up AI
- Set up background jobs
- Set up file storage
- Set up observability
- Spam protection
- Set up custom domains
- Deploy to Google Cloud
- Deployment checklist
- Create mobile accounts
- Create desktop release accounts
- Connect the mobile project to EAS
- Set up RevenueCat purchases
- Sign desktop installers