Store • Organize • Search • Edit • Share • Collaborate
Overview • Features • Architecture • Tech Stack • Getting Started • API Reference • Deployment
CloudDrive is a modern cloud file management platform built with Next.js 14, TypeScript, Prisma, NextAuth, and Supabase Storage.
It combines secure file storage, folder organization, AI-assisted discovery, inline editing, public sharing, browser-based Python execution, and responsive dashboards into a single intelligent workspace.
CloudDrive is designed for developers, students, teams, and organizations that need more than traditional cloud storage.
Unlike conventional storage platforms, CloudDrive adds intelligence directly into the file management workflow.
- 🤖 AI-powered file discovery
- 📝 Built-in file editor
- ☁️ Secure cloud storage
- 🔎 Semantic search
- 📂 Hierarchical folder organization
- 🔗 Public file sharing
- 📥 File-drop upload portals
- 🐍 Browser-side Python execution
- 📱 Fully responsive dashboard
Secure account management powered by NextAuth.
- User Registration
- User Login
- Session Management
- JWT Authorization
- Protected Routes
- Password Reset Flow
- Avatar Upload Support
- Profile Management
Manage the complete lifecycle of files from a unified dashboard.
- Upload Files
- Download Files
- Rename Files
- Delete Files
- Trash & Restore
- Star Files
- Duplicate Detection
- Multi-Selection Support
- ZIP Downloads
- File Metadata Management
Organize files using hierarchical folder structures.
- Nested Folders
- Breadcrumb Navigation
- Folder-Aware Browsing
- Tree-Based Storage Model
- Structured File Organization
CloudDrive integrates AI directly into the storage experience.
Generate summaries from:
- PDF Files
- DOCX Documents
- Text Files
- Markdown Files
Automatically extracts:
- Keywords
- Tags
- Searchable Metadata
- Content Insights
Search across:
- File Names
- Tags
- Summaries
- Extracted Content
Edit files directly inside the browser.
.txt.md.json.py
- Monaco Editor
- Syntax Highlighting
- Live Editing
- Direct Save to Storage
Run Python scripts directly in the browser using Pyodide.
- No Backend Execution Required
- Instant Testing
- Educational Workflows
- Lightweight Automation
Share files securely with internal users or external audiences.
Grant access to selected users.
Generate public shareable URLs.
Allow external users to upload files into specific folders.
- Client Deliverables
- Assignment Collection
- Recruitment Portals
- Public Submissions
Built with productivity and responsiveness in mind.
- Responsive Dashboard
- Sidebar Navigation
- Mobile Navigation
- Grid View
- List View
- Skeleton Loaders
- Toast Notifications
- Theme Support
- Framer Motion Animations
- Reusable UI Components
┌────────────────────┐
│ Frontend │
│ Next.js 14 │
└─────────┬──────────┘
│
▼
┌────────────────────┐
│ API Layer │
│ Route Handlers │
└─────────┬──────────┘
│
┌──────────────────┼──────────────────┐
▼ ▼
┌───────────────────┐ ┌───────────────────┐
│ PostgreSQL │ │ Supabase Storage │
│ Prisma ORM │ │ File Objects │
└───────────────────┘ └───────────────────┘
│
▼
┌──────────────────────┐
│ Groq AI │
│ Summaries & Search │
└──────────────────────┘
- Next.js 14 App Router
- React
- TypeScript
- Tailwind CSS
- Framer Motion
- Lucide React
- PostgreSQL
- Prisma ORM
- Next.js Route Handlers
- Winston Logging
- NextAuth
- JWT Authorization
- bcryptjs
- Supabase Storage
- Presigned Upload URLs
- Groq SDK
- pdf-parse
- Mammoth
- AI Metadata Extraction
- Semantic Search
- JSZip
- React Dropzone
- Monaco Editor
- Pyodide
| Capability | Supported |
|---|---|
| Cloud Storage | ✅ |
| Folder Management | ✅ |
| AI Search | ✅ |
| AI Summaries | ✅ |
| Metadata Extraction | ✅ |
| Public Sharing | ✅ |
| File Drop Links | ✅ |
| Browser Editing | ✅ |
| Python Runtime | ✅ |
| ZIP Downloads | ✅ |
| Mobile Responsive | ✅ |
| Authentication | ✅ |
cloud-drive/
│
├── app/
├── components/
├── hooks/
├── lib/
├── prisma/
├── public/
├── types/
│
├── middleware.ts
├── next.config.js
├── tailwind.config.ts
├── package.json
└── README.mdgit clone https://github.com/your-username/cloud-drive.git
cd cloud-drivenpm installCreate a .env file in the project root.
DATABASE_URL="postgresql://USER:PASSWORD@HOST:5432/DATABASE"
DIRECT_URL="postgresql://USER:PASSWORD@HOST:5432/DATABASE"
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key"
NEXT_PUBLIC_SUPABASE_URL="https://your-project.supabase.co"
NEXT_PUBLIC_SUPABASE_ANON_KEY="your-anon-key"
SUPABASE_SERVICE_ROLE_KEY="your-service-role-key"
SUPABASE_STORAGE_BUCKET="files"
GROQ_API_KEY="your-groq-api-key"
MAX_FILE_SIZE=104857600
SMTP_HOST=""
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=""
SMTP_PASS=""
SMTP_FROM=""GROQ_API_KEYis required for AI search and summaries.SMTP_*variables are required only for password reset emails.MAX_FILE_SIZEcontrols upload validation limits.
Generate Prisma Client:
npm run db:generatePush Database Schema:
npm run db:pushnpm run devOpen:
http://localhost:3000
| Command | Description |
|---|---|
| npm run dev | Start Development Server |
| npm run build | Create Production Build |
| npm run start | Start Production Server |
| npm run lint | Run ESLint |
| npm run db:generate | Generate Prisma Client |
| npm run db:push | Push Database Schema |
| npm run db:studio | Open Prisma Studio |
| npm run check-env | Validate Environment Variables |
| npm run vercel-build | Vercel Build Script |
| Endpoint | Method(s) | Description |
|---|---|---|
/api/auth/register |
POST | Register a User |
/api/auth/login |
POST | User Login |
/api/auth/me |
GET, PATCH | User Profile |
/api/auth/[...nextauth] |
NextAuth | Authentication Handler |
| Endpoint | Method(s) | Description |
|---|---|---|
/api/files |
GET, POST | List & Upload Files |
/api/files/[id] |
GET, PATCH, DELETE | File Operations |
/api/files/[id]/content |
GET, PUT | File Content |
/api/files/[id]/download |
GET | Download File |
/api/files/[id]/share |
POST | Share File |
/api/files/[id]/share/link |
POST | Generate Public Link |
/api/files/presign |
POST | Generate Upload URL |
/api/files/confirm |
POST | Confirm Upload |
/api/files/trash |
POST | Trash Operations |
| Endpoint | Method(s) | Description |
|---|---|---|
/api/summarize |
POST | Summarize Local File |
/api/files/[id]/summarize |
POST | Summarize Stored File |
/api/ai/search |
POST | AI-Powered Search |
| Endpoint | Method(s) | Description |
|---|---|---|
/api/storage |
GET | Storage Statistics |
/api/share/[id] |
GET, POST | Public File Access |
/api/drop-links |
GET, POST | Drop Link Management |
/api/drop-links/[token] |
GET, POST | Public Upload Portal |
CloudDrive follows modern security best practices.
- JWT Validation
- Protected API Routes
- Secure Sessions
- Password Hashing
- Access Control Enforcement
- Presigned Upload URLs
- Share Token Validation
- Storage Access Restrictions
- Configure PostgreSQL Database
- Configure Supabase Storage
- Set Environment Variables
- Generate Prisma Client
- Configure NextAuth URL
- Configure Groq API Key
- Verify Storage Permissions
npm run buildnpm run start- Real-Time Collaboration
- File Version History
- OCR Support
- Team Workspaces
- Activity Timeline
- File Comments
- Advanced Permissions
- AI File Classification
- Desktop Application
- WebDAV Support
Contributions are welcome.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push your branch
- Open a Pull Request
This project is licensed under the MIT License.