src/. For exact env variable names, search the repo or read .env.example if your team maintains one.
Application core
Build & developer tooling
These ship inpackage.json but are not “runtime product” integrations — they support type-checking, linting, and editor experience.
Supabase (auth, database, server patterns)
Packages:@supabase/ssr, @supabase/supabase-js.
Twilio in this repo: Twilio is the typical SMS backend when you enable phone auth in Supabase. Cora depends on Supabase’s phone APIs; configure Twilio (or another supported provider) in Supabase so OTP messages actually deliver.
Cloudflare
Turnstile (bot protection)
Env:NEXT_PUBLIC_TURNSTILE_SITE_KEY, TURNSTILE_SECRET_KEY.
The widget is rendered from turnstile-field on sign-up and login pages. Server-side verification against https://challenges.cloudflare.com/turnstile/v0/siteverify runs in the signup server action (actions.tsx) before creating the account. The login action currently authenticates with Supabase only (no Turnstile token check in that action).
R2 (object storage for images)
Env:S3_ENDPOINT, S3_KEY_ID, S3_SECRET_KEY, bucket names passed as database in form data, plus optional NEXT_PUBLIC_R2_PUBLIC_AVATAR_URL for public avatar URLs.
The route /api/cloudflare (src/app/api/cloudflare/route.ts) uses the AWS SDK for JavaScript v3 modules @aws-sdk/client-s3 and @aws-sdk/s3-request-presigner against an R2-compatible S3 endpoint (auto region in the client config). It uploads, lists/fetches, and deletes objects (report images and avatars). Client-side helpers live in cfhelpers.tsx (POST/GET/DELETE via fetch to that API).
The path is named
cloudflare because storage is Cloudflare R2; implementation is S3-compatible, not the Cloudflare Images product.
Env:
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY (and any keys your Places/autocomplete setup requires).
Vercel (hosting & observability)
Web Push & PWA
Other dependencies (lighter touch)
This documentation site (Mintlify)
Thedocs/ folder is a separate Mintlify site. Branding and navigation are controlled only by docs/docs.json. It does not change how the Next.js app runs.
Run the app locally
Install dependencies, configure
.env.local, and npm run dev.