Dashboard & CMS Overview
The rdv.ai-dashboard repository is the control center of the Rendez-vous.ai ecosystem. Built on Next.js (App Router) and Payload CMS, it serves two critical purposes:
- The User Interface: A modern, responsive web application where clients log in to configure their AI agents, view conversation logs, manage calendar bookings, and track analytics.
- The Central Database: It acts as the single source of truth for the entire distributed system. Payload CMS manages the underlying PostgreSQL database and exposes a GraphQL API that the Core API (
rdv.ai-api) consumes.
Architecture
We utilize Payload CMS natively within the Next.js App Router. This modern approach allows us to blend custom React frontend routes with auto-generated admin UI and API endpoints seamlessly within the same Node.js process.
Directory Structure
If you are navigating the rdv.ai-dashboard repository for the first time, here are the most important directories to understand:
app/: The core Next.js routing directory.app/(dashboard)/: Contains all the client-facing pages (Analytics, Calls, Chats, Calendar, Settings).app/(auth)/: Contains the login and authentication flows.app/(payload)/: The automatically generated and customized Payload CMS admin panels and API routes (e.g.,/api/graphql).
collections/: This is where the database schema is defined. Every file here (e.g.,Users.ts,Calls.ts,Chats.ts,Events.ts) represents a PostgreSQL table managed by Payload CMS.components/: A vast library of reusable React components. We heavily rely on Tailwind CSS and shadcn/ui (Radix UI primitives) for accessible, consistent styling.actions/: Next.js Server Actions. Instead of building traditional REST endpoints for the frontend to communicate with the backend, we use Server Actions to handle form submissions, data mutations, and complex server-side logic directly from our React components.migrations/: Automatically generated database migration scripts. When you change a collection schema, Payload generates a migration file here to apply the changes to the PostgreSQL database.
Authentication & Authorization
Authentication is handled natively by Payload CMS using JWTs (JSON Web Tokens).
Because the Dashboard acts as the central hub, the JWT_SECRET used here is shared with the Core API (rdv.ai-API). This allows the Core API to securely decrypt tokens and authenticate requests coming from the dashboard or the embeddable widgets without needing a separate authentication service.
Next Steps
To dive deeper into how data is modeled and managed, proceed to the Payload CMS Integration documentation.