Skip to main content
EVO Dialed is a distributed system with three main applications, a shared database, and multiple external integrations.

System diagram

Application stack

Backend (Rails)

Frontend (Next.js)

iOS (Swift)

Domain model

The core domain model centers on brands and creators:

Key relationships

API structure

The backend exposes three API namespaces:

Internal API (/api/internal/*)

For the admin frontend (EVO team):
  • Full CRUD on all resources
  • Mission Control, Pipeline, Roster
  • Analytics and reporting
  • Requires admin JWT

Creator API (/api/creator/*)

For the iOS app (creators):
  • Dashboard, brand hubs, chat
  • Content submission
  • Strategy viewing
  • Requires creator JWT

Public API (/api/public/*)

For unauthenticated access:
  • Client Hub (with optional passcode)
  • Public brand reports
  • Contract signing
  • Invite acceptance

Authentication flow

Better Auth handles:
  • Magic link email login
  • Password authentication
  • Session management
  • JWT token issuance
The Rails backend:
  • Validates JWT tokens
  • Looks up user by auth_user_id
  • Enforces authorization

Real-time features

ActionCable provides WebSocket connections for:

Background jobs

SolidQueue processes background work:

Deployment architecture

Security considerations

  • All traffic over HTTPS
  • JWT tokens with expiration
  • Rate limiting on sensitive endpoints
  • Client Hub optional passcode protection
  • Better Auth handles credential storage
  • Environment variables for secrets