Project Structure Documentation

Overview

This document details the complete structure of the do.dev application project, including all active directories, their purposes, and key files.

Root Structure

dodev-project/
├── apps/                      # Application directory
│   └── dodev/                # Main do.dev application
├── packages/                  # Shared workspace packages
├── tools/                     # Development tools
├── docs/                      # Documentation
├── scripts/                   # Utility scripts
├── turbo.json                # Turborepo configuration
├── pnpm-workspace.yaml       # PNPM workspace config
├── package.json              # Root package.json
├── biome.json                # Biome formatter/linter config
├── vercel.json               # Vercel deployment config
├── .gitignore
├── .env.example
└── CLAUDE.md                 # AI assistant guide

Applications (/apps)

/apps/dodev - Main do.dev Application

dodev/
├── app/                      # Next.js App Router
│   ├── api/                 # API Routes
│   │   ├── ai-agent/       # AI agent endpoints
│   │   ├── caddy/          # Caddy server management
│   │   ├── contact/        # Contact form
│   │   ├── customers/      # Customer APIs
│   │   └── dns/            # DNS management
│   ├── dashboard/          # Protected dashboard routes
│   │   ├── billing/        # Billing pages
│   │   ├── customers/      # Customer management
│   │   ├── demo/           # Demo page
│   │   ├── doc/            # Documentation builder
│   │   ├── dodev/          # Admin sections
│   │   ├── local/          # Local dev tools
│   │   ├── settings/       # User settings
│   │   └── layout.tsx      # Dashboard layout
│   ├── admin/              # Admin-specific pages
│   ├── onboarding/         # User onboarding flow
│   ├── organization/       # Organization management
│   ├── (public pages)      # Homepage, login, etc.
│   ├── layout.tsx          # Root layout
│   ├── not-found.tsx       # 404 page
│   └── robots.ts           # SEO robots.txt
├── components/             # React Components
│   ├── dashboard/          # Dashboard-specific
│   ├── auth/               # Authentication
│   └── (ui components)     # Various UI components
├── hooks/                  # Custom React hooks
├── lib/                    # Utilities
├── public/                 # Static assets
├── next.config.js          # Next.js config
├── package.json           # Dependencies
├── tailwind.config.ts     # Tailwind config
└── tsconfig.json          # TypeScript config

Note: Legacy Structure Removed

The previous /apps/webs/ intermediate directory has been removed for simplicity.

Packages (/packages)

/packages/ui - Shared UI Components

ui/
├── components/            # ShadCN UI components
├── primitives/           # Base UI primitives
├── static/              # Static assets (logos, etc.)
├── hooks/               # Shared React hooks
├── lib/                 # UI utilities
└── package.json

/packages/convex - Backend Configuration

convex/
├── _generated/          # Auto-generated Convex files
├── auth/               # Authentication functions
├── functions/          # Convex functions
├── schema.ts           # Database schema
└── package.json

/packages/prisma - Database ORM

prisma/
├── prisma/
│   └── schema.prisma   # Database schema
├── seed.ts            # Database seeding
└── package.json

/packages/dns-client - DNS Utilities

dns-client/
├── src/
│   └── index.ts       # DNS client implementation
└── package.json

/packages/typescript-config - Shared TS Configs

typescript-config/
├── base.json          # Base TypeScript config
├── nextjs.json        # Next.js specific config
├── react-library.json # React library config
└── package.json

/packages/dodotdev/ai-editor - AI Editor Component

Custom AI-powered editor implementation.

Tools (/tools)

/tools/convex - Convex Development Tools

Development utilities for Convex backend.

Documentation (/docs)

Current documentation files:

  • APP_SPECIFIC_AUTH.md - Multi-tenant authentication guide
  • CODEBASE_STATUS.md - Current codebase state
  • EMAIL_SETUP.md - Email configuration
  • GIT_PREFERENCES.md - Git workflow guidelines
  • GOOGLE_AUTH_SETUP.md - OAuth setup instructions
  • PROJECT_STRUCTURE.md - This file
  • ROLES.md - Role-based access control
  • TYPESCRIPT_BEST_PRACTICES.md - TypeScript guidelines
  • UI_STANDARDS.md - UI/UX guidelines
  • VERCEL_DEPLOYMENT_GUIDE.md - Deployment instructions

Key Configuration Files

Root Level

  • turbo.json - Turborepo pipeline configuration
  • pnpm-workspace.yaml - Workspace package definitions
  • biome.json - Code formatting and linting rules
  • vercel.json - Vercel deployment settings
  • .env.example - Environment variable template

Application Level

  • next.config.js - Next.js configuration
  • tailwind.config.ts - Tailwind CSS configuration
  • tsconfig.json - TypeScript configuration
  • package.json - Dependencies and scripts

Scripts Overview

Development

  • pnpm dev - Start development server
  • pnpm build - Build for production
  • pnpm start - Start production server

Code Quality

  • pnpm lint - Run linter
  • pnpm lint:fix - Auto-fix lint issues
  • pnpm format - Format code
  • pnpm typecheck - TypeScript type checking

Deployment

  • pnpm vercel-build - Build for Vercel deployment

Environment Variables

Required environment variables:

  • DATABASE_URL - Database connection string
  • CONVEX_URL - Convex deployment URL
  • NEXT_PUBLIC_CONVEX_URL - Public Convex URL
  • OAuth credentials (Google, GitHub)
  • Various API keys and secrets

Port Configuration

  • Development: Port 3005 (configured in package.json)
  • Production: Managed by Vercel

Recent Updates (July 2025)

  1. Removed _protected/dev folder (72 unused files)
  2. Cleaned up unused API routes
  3. Removed unused dependencies (@tiptap packages)
  4. Unified dashboard layout implementation
  5. Added demo page with charts
  6. Improved TypeScript interfaces

Last updated: July 22, 2025

On this page