API Services & Third-Party Integrations
This document lists all external API services used across Juniro applications. Keys are stored in environment variables and managed via Vercel (production) or .env.local (development).
Quick Reference
| Service | Purpose | Used In | Dashboard |
|---|---|---|---|
| Posthog | Product Analytics | web-launch | app.posthog.com |
| Google Analytics | Web Analytics | web-public | analytics.google.com |
| Facebook Pixel | Marketing Analytics | web-public | business.facebook.com |
| Resend | Transactional Email | web-launch, api | resend.com |
| Loops | Email Marketing | web-launch | app.loops.so |
| Attio | CRM | web-launch | app.attio.com |
| Viral Loops | Referral Program | web-launch | app.viral-loops.com |
| Supabase | Auth & Database | api, web-* | supabase.com |
| Stripe | Payments (US) | api | dashboard.stripe.com |
| Razorpay | Payments (India) | api | dashboard.razorpay.com |
| Groq | LLM / AI | api | console.groq.com |
| Together AI | Embeddings | api | api.together.xyz |
| Vercel | Hosting | all web apps | vercel.com |
Analytics
Posthog
Purpose: Product analytics, feature flags, session recording
Environment Variables:
NEXT_PUBLIC_POSTHOG_KEY=phc_xxxxx # Public key (safe for client)
POSTHOG_API_KEY=phx_xxxxx # Private key (server-side only)
Used For:
- Waitlist signups tracking
- User behavior analytics
- Feature flag management
- Funnel analysis
Get Keys: app.posthog.com/project/settings
Google Analytics
Purpose: Web traffic analytics
Environment Variables:
NEXT_PUBLIC_GA_MEASUREMENT_ID=G-XXXXXXXXXX
Used For:
- Traffic sources
- Page views
- Marketing campaign tracking
Get Keys: analytics.google.com > Admin > Data Streams
Facebook Pixel
Purpose: Marketing conversion tracking
Environment Variables:
NEXT_PUBLIC_FB_PIXEL_ID=xxxxx
Used For:
- Ad conversion tracking
- Retargeting audiences
- Marketing attribution
Get Keys: business.facebook.com/events_manager
Email
Resend
Purpose: Transactional emails (confirmations, password reset, notifications)
Environment Variables:
RESEND_API_KEY=re_xxxxx
RESEND_FROM_EMAIL=Juniro <hello@juniro.com>
RESEND_AUDIENCE_ID=... # For contact management
Used For:
- Waitlist welcome emails
- Booking confirmations
- Password reset
- Review requests
- Provider notifications
Templates: See Resend Transactional Emails
Get Keys: resend.com/api-keys
Loops
Purpose: Email marketing sequences and newsletters
Environment Variables:
LOOPS_API_KEY=xxxxx
Used For:
- Drip campaigns
- Newsletter sequences
- Re-engagement emails
Get Keys: app.loops.so/settings/api
CRM & Sales
Attio
Purpose: Customer relationship management
Environment Variables:
ATTIO_API_KEY=xxxxx
Used For:
- Lead tracking
- Provider onboarding pipeline
- Customer data sync
Get Keys: app.attio.com/settings/developers
Viral Loops
Purpose: Referral program management
Environment Variables:
VIRAL_LOOPS_API_KEY=xxxxx
VIRAL_LOOPS_CAMPAIGN_ID=xxxxx
Used For:
- Waitlist referral tracking
- Referral rewards
- Leaderboard
Get Keys: app.viral-loops.com > Campaign Settings
Authentication & Database
Supabase
Purpose: Authentication and PostgreSQL database
Environment Variables:
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIs...
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIs... # Server-side only!
Used For:
- User authentication (email, OAuth)
- PostgreSQL database hosting
- Row-level security
Multi-Region Setup:
- US: Supabase project in us-east-1
- India: Supabase project in ap-south-1 (Mumbai)
Get Keys: supabase.com > Project Settings > API
Payments
Stripe (US Region)
Status: Config ready — stripe npm package not yet installed
Purpose: Payment processing for US market
Environment Variables:
STRIPE_SECRET_KEY=sk_test_xxxxx # Use sk_live_xxxxx in production
STRIPE_WEBHOOK_SECRET=whsec_xxxxx
NEXT_PUBLIC_STRIPE_KEY=pk_test_xxxxx # Public key for client
Used For:
- Activity bookings
- Subscription payments
- Refunds
Get Keys: dashboard.stripe.com/apikeys
Razorpay (India Region)
Status: Config ready — razorpay npm package not yet installed
Purpose: Payment processing for India market
Environment Variables:
RAZORPAY_KEY_ID=rzp_test_xxxxx
RAZORPAY_KEY_SECRET=xxxxx
RAZORPAY_WEBHOOK_SECRET=xxxxx
Used For:
- Activity bookings (INR)
- UPI payments
- Net banking
Get Keys: dashboard.razorpay.com/app/keys
AI Services
Status: Config ready —
groq-sdkandtogether-ainpm packages not yet installed. Route file and env vars exist but no SDK dependencies.
Groq
Purpose: LLM for AI features
Environment Variables:
GROQ_API_KEY=gsk_xxxxx
Used For:
- Activity recommendations
- Search enhancement
- Content generation
Get Keys: console.groq.com
Together AI
Purpose: Text embeddings for semantic search
Environment Variables:
TOGETHER_API_KEY=xxxxx
Used For:
- Activity search embeddings
- Similar activity recommendations
Get Keys: api.together.xyz
Infrastructure
Vercel
Purpose: Frontend hosting and serverless functions
Environment Variables: Managed in Vercel dashboard per-project
Projects:
juniro-web-public- Public websitejuniro-web-launch- Waitlist/launch sitejuniro-web-parents- Parent portaljuniro-web-providers- Provider portaljuniro-web-admin- Admin portaljuniro-design- Storybook (customer & admin)
Dashboard: vercel.com/juniro
Redis (Optional)
Purpose: Caching and rate limiting
Environment Variables:
REDIS_URL=redis://localhost:6379
Used For:
- API response caching
- Rate limiting
- Session storage
Environment Variable Summary by Repo
juniro-web-launch
NEXT_PUBLIC_POSTHOG_KEY
POSTHOG_API_KEY
LOOPS_API_KEY
VIRAL_LOOPS_API_KEY
VIRAL_LOOPS_CAMPAIGN_ID
ATTIO_API_KEY
RESEND_API_KEY
RESEND_FROM_EMAIL
RESEND_AUDIENCE_ID
juniro-web-public
NEXT_PUBLIC_GA_MEASUREMENT_ID
NEXT_PUBLIC_FB_PIXEL_ID
juniro-api
DATABASE_URL
SUPABASE_URL
SUPABASE_ANON_KEY
GROQ_API_KEY
TOGETHER_API_KEY
STRIPE_SECRET_KEY
STRIPE_WEBHOOK_SECRET
RAZORPAY_KEY_ID
RAZORPAY_KEY_SECRET
RAZORPAY_WEBHOOK_SECRET
REDIS_URL
Security Best Practices
- Never commit keys - Use
.env.locallocally, Vercel env vars in production - Rotate keys regularly - Especially after team member changes
- Use test keys in development - Stripe, Razorpay have test modes
- Restrict key permissions - Use least-privilege API keys when possible
- Monitor usage - Set up alerts for unusual API activity
- Document key locations - Keep a secure record in 1Password/Bitwarden
Adding New Services
When adding a new API service:
- Add to
.env.examplewith placeholder value - Document in this file with:
- Purpose
- Environment variables
- Dashboard link
- Which repos use it
- Add keys to Vercel for relevant projects
- Share keys securely with team via password manager