mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-05-17 12:20:04 +00:00
3.9 KiB
3.9 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Repository Structure
This is a Turbo monorepo containing multiple applications and shared packages:
Applications (apps/)
web/- Next.js web applicationmcp/- Model Context Protocol server
Development Commands
Root Level (Monorepo)
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
Web Application (apps/web/)
bun run dev- Start Next.js development serverbun run build- Build Next.js applicationbun run lint- Run Next.js linting
Architecture Overview
Core Technology Stack
- Runtime: Next.js (web)
- Framework: Next.js (web)
- Language: TypeScript throughout
- Package Manager: Bun
- Monorepo: Turbo
- Authentication: Better Auth
- Monitoring: Sentry
API Application (Primary Backend)
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
Web Application
Next.js application providing user interface for:
Key Libraries & Dependencies
Shared Dependencies
better-auth- Authentication system with organization supportdrizzle-orm- Database ORMzod- Schema validationhono- Web framework (API & MCP)@sentry/*- Error monitoringturbo- Monorepo build system
Web-Specific
next- React framework@radix-ui/*- UI components@tanstack/react-query- Data fetchingrecharts- Analytics visualization
Development Workflow
Content Processing Pipeline
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
Environment Configuration
- 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
Error Handling & Monitoring
- HTTPException for consistent API error responses
- Sentry integration with user and organization context
- Custom logging that filters analytics noise
Code Quality & Standards
Linting & Formatting
- 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
TypeScript
- Strict TypeScript configuration with
@total-typescript/tsconfig - Type checking with
bun run check-types - Cloudflare Workers type generation with
cf-typegen
Database Management
- Drizzle ORM with schema located in shared packages
- Database migrations handled through Drizzle Kit
- Schema types automatically generated and shared
Security & Best Practices
Authentication
- Better Auth handles user authentication and organization management
- API key authentication for external access
- Role-based access control within organizations
Data Handling
- Content hashing to prevent duplicate processing
- Secure handling of external service credentials
- Automatic content type detection and validation
Deployment
- Cloudflare Workers for scalable serverless deployment
- Source map uploads to Sentry for production debugging
- Environment-specific configuration management