This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a Turbo monorepo containing multiple applications and shared packages:
web/- Next.js web applicationmcp/- Model Context Protocol server
bun run dev- Start all applications in development modebun run build- Build all applicationsbun run check-types- Run TypeScript checks across all appsbun run format-lint- Format and lint code using Biome
bun run dev- Start Next.js development serverbun run build- Build Next.js applicationbun run lint- Run Next.js linting
- Runtime: Next.js (web)
- Framework: Next.js (web)
- Language: TypeScript throughout
- Package Manager: Bun
- Monorepo: Turbo
- Authentication: Better Auth
- Monitoring: Sentry
The API serves as the core backend with these key features:
Key API Routes
/v3/documents- CRUD operations for documents/memories/v3/search- Semantic search across indexed content/v3/connections- External service integrations (Google Drive, Notion, OneDrive)/v3/settings- Organization and user settings/v3/analytics- Usage analytics and reporting/api/auth/*- Authentication endpoints
Next.js application providing user interface for:
better-auth- Authentication system with organization supportdrizzle-orm- Database ORMzod- Schema validationhono- Web framework (API & MCP)@sentry/*- Error monitoringturbo- Monorepo build system
next- React framework@radix-ui/*- UI components@tanstack/react-query- Data fetchingrecharts- Analytics visualization
All content goes through the IngestContentWorkflow which handles:
- Content type detection and extraction
- AI-powered summarization and automatic tagging
- Vector embedding generation using Cloudflare AI
- Chunking for semantic search optimization
- Space relationship management
- Uses
wrangler.jsoncfor Cloudflare Workers configuration - Supports staging and production environments
- Requires Cloudflare bindings: Hyperdrive (DB), AI, KV storage, Workflows
- Cron triggers every 4 hours for connection imports
- HTTPException for consistent API error responses
- Sentry integration with user and organization context
- Custom logging that filters analytics noise
- Biome used for linting and formatting across the monorepo
- Run
bun run format-lintto format and lint all code - Configuration in
biome.jsonat repository root
- Strict TypeScript configuration with
@total-typescript/tsconfig - Type checking with
bun run check-types - Cloudflare Workers type generation with
cf-typegen
- Drizzle ORM with schema located in shared packages
- Database migrations handled through Drizzle Kit
- Schema types automatically generated and shared
- Better Auth handles user authentication and organization management
- API key authentication for external access
- Role-based access control within organizations
- Content hashing to prevent duplicate processing
- Secure handling of external service credentials
- Automatic content type detection and validation
- Cloudflare Workers for scalable serverless deployment
- Source map uploads to Sentry for production debugging
- Environment-specific configuration management