DashboardSupportWelcome

👤 USER DOCS

Getting Started

Daily Operations

Shift Workspace & TasksPre-Shift SetupLine-Up CardsShift ReportsForms

Staff & Locations

Staff SchedulingManaging Locations

Oversight

Manager ReportsAnalyticsPre-Shift & Compliance

Incidents & Feedback

Incident ReportingAnonymous FeedbackMessages & Announcements

AI & Settings

AI ChatgearApp Settings

Administration

Dashboard & OnboardingAdmin

⚙️ DEVELOPER DOCS

Getting Started

Getting StartedDevelopmentDeployment Guide

Architecture

Architecture OverviewData FlowArchitecture Decision Records

Core Domain

Core DomainDatabase ReferenceLocations DomainAuth & RBACScheduling DomainReports DomainIncidents DomainNotifications DomainAudit Log & OptimizationDesign Audit Findings

Frontend

Frontend ArchitectureFormsLoading SkeletonsComponentsPWA & NotificationsimageScreenshots

API Reference

API Reference

Endpoints

POS Sales APIOptimization Data APISchedule Shifts APIEmployee Export APIReports APIIncidents APIAI Chat APIPush Notifications APIWebhooks APICron API

Contributing

ContributingcodeCode Examples

Security

Security & Compliance
Danvas IconDanvas
Danvas IconDanvas

Deployment Guide

How Danvas is deployed to production

Danvas is deployed on Vercel with a Turborepo-powered build pipeline. Each application has its own Vercel project with independent deployments.

Applications

AppVercel ProjectDomain
Main Appcanvas-forge-appdanvas.hartalliance.com
Docscanvas-forge-docsdanvas-docs.hartalliance.com
APIcanvas-forge-api(Vercel default or custom)
Marketingcanvas-forge-web(Vercel default or custom)

Build Pipeline

bun run build          # Build all apps (Turborepo)
bun run build:prod     # Build + test (CI)
bun run check          # Lint + type-check
bun run test           # Run all test suites

Development

Local development guide for Danvas

Architecture Overview

High-level architecture of the Danvas platform

On this page

ApplicationsBuild PipelineTurborepo ConfigurationEnvironment VariablesKey Environment VariablesCron JobsCI/CD

Turborepo Configuration

  • Parallel execution (concurrency: 6)
  • Remote caching for faster CI
  • Build dependencies flow: packages → apps
  • Environment variable hashing for cache invalidation

Environment Variables

Each app validates its environment variables at build time using @t3-oss/env-nextjs:

  • apps/app/env.ts — merges @repo/auth, @repo/database, @repo/ai, @repo/slack, @repo/analytics, @repo/storage, @repo/observability key schemas
  • apps/api/env.ts — merges @repo/auth, @repo/database, @repo/analytics, @repo/rate-limit
  • apps/web/env.ts — merges @repo/cms, @repo/seo, @repo/internationalization, @repo/analytics

Key Environment Variables

VariableRequired For
DATABASE_URLNeon PostgreSQL connection string
CLERK_SECRET_KEY / NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYClerk authentication
OPENROUTER_API_KEYAI chat (DeepSeek via OpenRouter)
CANVAS_TEAM_IDDefault org ID for seeding and anonymous feedback
CRON_SECRETAPI app cron job authentication
BLOB_READ_WRITE_TOKENVercel Blob storage
RESEND_TOKENTransactional email
NEXT_PUBLIC_POSTHOG_KEYAnalytics
NEXT_PUBLIC_SENTRY_DSNError tracking
NEXT_PUBLIC_APP_URLPublic app URL (https://danvas.hartalliance.com in production)
NEXT_PUBLIC_DOCS_URLPublic docs URL (https://danvas-docs.hartalliance.com on app + docs projects)

Cron Jobs

The API app schedules cron jobs via vercel.json:

CronSchedule (UTC)Purpose
check-complianceEvery 15 min (14-23, 0-4 UTC)Compliance nudge reminders
report-reminderDaily 20:00Missing report summary
aggregate-heroesMonday 14:00Weekly MVP calculation
keep-aliveDaily 01:00Database connection keep-alive

CI/CD

  • Lint + type-check run on every PR
  • Tests run in CI via Vitest
  • Vercel preview deployments for every PR
  • Production deploys on merge to main
  • Sentry release tracking on deploy