📚 Service Reference Guide

What each service does and what to monitor

← Back to Dashboard
🚂

Railway

Backend Hosting + PostgreSQL Database

Open Railway →

Railway hosts your Hono backend API and PostgreSQL database. It automatically deploys when you push to your connected Git branch and handles environment variables, scaling, and SSL certificates.

What to Monitor
  • Deployment status (green = healthy)
  • CPU & memory usage graphs
  • Database storage usage
  • Build logs for deployment errors
  • Monthly usage vs. free tier limits
Key Actions
  • View live logs: click "Deployments" → latest
  • Restart service: "Settings" → "Restart"
  • Update env vars: "Variables" tab
  • Connect to DB: copy DATABASE_URL
  • Redeploy: push to Git or click "Redeploy"
Warning Signs
  • Red deployment status = build failed
  • High memory = potential memory leak
  • Slow response times in metrics
  • Database approaching storage limit
  • Frequent restarts = crash loop
☁️

Cloudflare Pages

Web App CDN & Static Hosting

Open Cloudflare →

Cloudflare Pages hosts the web export of your Expo app. It serves static files from edge locations worldwide for fast loading. You deploy using npx wrangler pages deploy dist.

What to Monitor
  • Deployment history in "Pages" section
  • Web Analytics (if enabled)
  • Request volume and bandwidth
  • Custom domain status & SSL
  • Build logs for each deployment
Key Actions
  • Deploy: wrangler pages deploy dist
  • Rollback: select previous deployment → "Rollback"
  • Add domain: "Custom domains" tab
  • View live site: click deployment URL
  • Purge cache: "Caching" → "Purge Cache"
Warning Signs
  • Failed deployments in Pages list
  • SSL certificate errors on custom domain
  • High error rate in Analytics
  • Old deployment still active after push
📱

Expo / EAS

React Native Builds & OTA Updates

Open Expo →

Expo Application Services (EAS) builds your iOS and Android apps in the cloud, handles code signing, and manages over-the-air (OTA) updates.

What to Monitor
  • Build status (queued, building, finished)
  • Build logs for errors
  • OTA update deployment status
  • Credentials (certificates, provisioning)
  • App version numbers
Key Actions
  • Build iOS: eas build -p ios
  • Build Android: eas build -p android
  • Submit to stores: eas submit
  • OTA update: eas update
  • Download build artifacts from web dashboard
Warning Signs
  • Build failures (check logs)
  • Expired certificates (iOS)
  • Version mismatch between builds
  • OTA updates not reaching users
  • Long queue times
🍎

App Store Connect

iOS App Distribution & Analytics

Open App Store →

App Store Connect manages your iOS app submission, TestFlight beta testing, app metadata, pricing, and analytics.

What to Monitor
  • App review status (Waiting, In Review, Approved)
  • TestFlight builds and testers
  • Crash reports in "Crashes" tab
  • User reviews and ratings
  • Download and sales analytics
Key Actions
  • Submit new version: App Store tab → version
  • Add TestFlight testers: TestFlight tab
  • Reply to reviews: "Ratings and Reviews"
  • Update screenshots/description
  • Manage in-app purchases
Warning Signs
  • App rejected (check Resolution Center)
  • Spike in crash reports
  • Negative reviews mentioning bugs
  • Certificate expiration warnings
  • Missing compliance declarations
🧠

Anthropic (Claude)

AI-Powered OCR & Contact Extraction

Open Anthropic →

Claude's vision API extracts contact information (name, phone, email) from uploaded images. It's used in the /api/upload/extract-contact endpoint. Requires ANTHROPIC_API_KEY env var.

What to Monitor
  • API usage and token consumption
  • Monthly spending vs. budget
  • Rate limit status
  • API key permissions
  • Error rates in API logs
Key Actions
  • View usage: "Usage" tab in console
  • Generate new API key if compromised
  • Set spending limits
  • Check model availability
  • Review API documentation for updates
Warning Signs
  • Unexpected usage spike
  • Rate limit errors (429)
  • API key authentication failures
  • Approaching spending limit
  • Model deprecation notices
🐙

GitHub

Source Code Repository

Open GitHub →

GitHub stores your source code and triggers deployments to Railway when you push. It's the single source of truth for your codebase and collaboration history.

What to Monitor
  • Recent commits and branches
  • Pull request status
  • GitHub Actions workflow runs
  • Security alerts (Dependabot)
  • Issues and project boards
Key Actions
  • Push changes: git push origin main
  • Create branch for features
  • Review and merge PRs
  • Check Actions for CI/CD status
  • Update Dependabot alerts
Warning Signs
  • Failed GitHub Actions workflows
  • Security vulnerabilities flagged
  • Merge conflicts in PRs
  • Stale branches accumulating

Prisma

Database ORM & Migrations

View Docs →

Prisma is your database toolkit. It generates type-safe queries from schema.prisma, handles migrations, and provides Prisma Studio for visual database browsing. Your schema defines Users, Sessions, Drivers, and more.

What to Monitor
  • Migration status (applied vs pending)
  • Schema changes before deploying
  • Query performance (N+1 issues)
  • Generated client is up-to-date
Key Actions
  • Generate client: bunx prisma generate
  • Create migration: bunx prisma migrate dev
  • Deploy migrations: bunx prisma migrate deploy
  • Open Studio: bunx prisma studio
  • Reset DB: bunx prisma migrate reset
Warning Signs
  • Migration failed to apply
  • Schema drift (DB doesn't match schema)
  • Slow queries in logs
  • Type errors after schema change
🔥

Hono

Backend Web Framework

View Docs →

Hono is your lightweight, fast web framework running on Bun. It handles routing, middleware (CORS, logging), and serves your API endpoints like /api/drivers, /api/auth/*, and /api/upload.

What to Monitor
  • Server logs via Railway
  • Response times for endpoints
  • Error responses (4xx, 5xx)
  • CORS issues from frontend
Key Actions
  • Run locally: bun run dev
  • Test endpoint: curl localhost:3000/health
  • Add route: create file in src/routes/
  • Add middleware in src/index.ts
Warning Signs
  • 500 errors in server logs
  • CORS blocked requests
  • Unhandled promise rejections
  • Memory leaks over time
🔐

Better Auth

Authentication Library

View Docs →

Better Auth handles user authentication with email/password. It manages sessions, cookies, and integrates with Prisma for user storage. Configured in backend/src/auth.ts with Expo plugin support.

What to Monitor
  • User sign-up/sign-in success rates
  • Session validity and expiration
  • Auth errors in server logs
  • Trusted origins configuration
Key Actions
  • Auth endpoints: /api/auth/*
  • Get session: /api/auth/session
  • Update trusted origins in auth.ts
  • Check BETTER_AUTH_SECRET is set
Warning Signs
  • Users can't sign in (check cookies)
  • Session not persisting
  • CORS errors on auth endpoints
  • Missing BETTER_AUTH_SECRET
⚛️

TanStack Query

Data Fetching & Caching

View Docs →

TanStack Query (React Query) manages server state in your React Native app. It handles caching, background refetching, optimistic updates, and loading/error states for API calls.

What to Monitor
  • Query states (loading, error, success)
  • Cache invalidation behavior
  • Stale time vs. refetch intervals
  • DevTools in development (if enabled)
Key Actions
  • Use useQuery for fetching
  • Use useMutation for updates
  • Invalidate queries after mutations
  • Configure in src/lib/queryClient.ts
Warning Signs
  • Infinite refetch loops
  • Stale data after mutations
  • Too many network requests
  • Memory issues from large caches
💨

NativeWind

Tailwind CSS for React Native

View Docs →

NativeWind brings Tailwind CSS to React Native. Use utility classes like className="bg-blue-500 p-4 rounded-lg" for styling. Configured in tailwind.config.js and global.css.

What to Monitor
  • Styles applying correctly on all platforms
  • Dark mode handling
  • Custom theme values in config
  • Build warnings about CSS
Key Actions
  • Use className prop for styles
  • Add custom colors in tailwind.config.js
  • Import global.css in entry file
  • Use cn() utility for conditionals
Warning Signs
  • Styles not applying (check imports)
  • Web vs native style differences
  • Missing content paths in config
  • Babel config issues
🐻

Zustand

State Management

View Docs →

Zustand is a lightweight state management library. Use it for global client state that doesn't need to be fetched from the server (TanStack Query handles that). Great for UI state, filters, and preferences.

What to Monitor
  • State updates triggering re-renders
  • Store organization and size
  • Persistence working (if using)
  • DevTools state inspection
Key Actions
  • Create store: create((set) => ({...}))
  • Use in components: useStore()
  • Use selectors for performance
  • Add persist middleware for local storage
Warning Signs
  • Excessive re-renders (use selectors)
  • State not persisting on reload
  • Circular dependencies in stores
  • Large state causing performance issues