A modern, secure file storage and management platform built with Next.js 15, TypeScript, and Appwrite. Arqive provides enterprise-grade security for storing, organizing, and accessing your files from anywhere.
π Live Demo: https://arqive.vercel.app
- Dual Authentication Methods: Email/Password and OTP-based authentication
- Secure Sessions: HTTP-only cookies with secure session management
- Email Verification: OTP verification for enhanced security
- User Management: Complete user registration and profile management
- Multi-format Support: Documents, Images, Videos, Audio files, and more
- Drag & Drop Upload: Intuitive file uploading with progress tracking
- File Operations: Rename, delete, share, and download files
- File Preview: Built-in thumbnail generation and file previews
- Storage Limits: 20GB storage per user with usage tracking
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Dark/Light Mode: Theme switching support
- Smooth Animations: Micro-interactions and loading states
- Apple-level Design: Premium, polished interface
- Real-time Updates: Live file operations and status updates
- Storage Analytics: Visual charts showing storage usage by file type
- Recent Activity: Track recently uploaded and modified files
- Quick Actions: Fast access to common operations
- File Categories: Organized view by Documents, Images, Media, and Others
- Global Search: Search across all files with real-time results
- Smart Filtering: Filter by file type, date, size, and name
- Sorting Options: Multiple sorting criteria for better organization
- File Sharing: Share files with other users via email
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible component primitives
- React Hook Form - Form management with validation
- Sonner - Toast notifications
- Lucide React - Beautiful icons
- Appwrite - Backend-as-a-Service platform
- Node Appwrite SDK - Server-side Appwrite integration
- File Storage - Secure cloud file storage
- Real-time Database - Document-based database
- ESLint - Code linting and formatting
- PostCSS - CSS processing
- Turbopack - Fast development builds
- Node.js 18+
- npm or yarn
- Appwrite account and project
git clone https://github.com/yourusername/arqive.git
cd arqivenpm install
# or
yarn installCreate a .env.local file in the root directory:
# Appwrite Configuration
NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
NEXT_PUBLIC_APPWRITE_PROJECT_ID=your_project_id
NEXT_PUBLIC_APPWRITE_DATABASE=your_database_id
NEXT_PUBLIC_APPWRITE_USERS=your_users_collection_id
NEXT_PUBLIC_APPWRITE_FILES=your_files_collection_id
NEXT_PUBLIC_APPWRITE_BUCKET=your_bucket_id
NEXT_APPWRITE_SECRET=your_api_secret_key
NEXT_PUBLIC_APPWRITE_OTP=your_otp_collection_id-
Users Collection (
users)accountId(string, required)email(string, required, unique)fullname(string, required)avatar(string, required)
-
Files Collection (
files)type(string, required)name(string, required)url(string, required)extension(string, required)size(integer, required)owner(string, required)accountId(string, required)users(array, required)bucketFileId(string, required)
- Create a storage bucket for file uploads
- Configure appropriate permissions
npm run dev
# or
yarn devOpen http://localhost:3000 to view the application.
arqive/
βββ app/ # Next.js App Router
β βββ (auth)/ # Authentication pages
β β βββ sign-in/ # Sign in page
β β βββ sign-up/ # Sign up page
β β βββ layout.tsx # Auth layout
β βββ (root)/ # Main application
β β βββ [type]/ # Dynamic file type pages
β β βββ layout.tsx # Main layout
β β βββ page.tsx # Dashboard
β βββ context/ # React contexts
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
βββ components/ # Reusable components
β βββ ui/ # UI components (Radix UI)
β βββ skeletons/ # Loading skeletons
β βββ ActionDropdown.tsx # File actions menu
β βββ AuthForm.tsx # Authentication form
β βββ Card.tsx # File card component
β βββ Chart.tsx # Storage usage chart
β βββ FileUploader.tsx # File upload component
β βββ Header.tsx # Application header
β βββ Search.tsx # Global search
β βββ Sidebar.tsx # Navigation sidebar
β βββ ...
βββ lib/ # Utility libraries
β βββ actions/ # Server actions
β βββ appwrite/ # Appwrite configuration
β βββ utils.ts # Utility functions
βββ public/ # Static assets
β βββ assets/ # Icons and images
βββ types/ # TypeScript type definitions
βββ ...config files
- Maximum file size: 50MB per file
- Total storage: 20GB per user
- Supported formats: All common file types
- HTTPS enforcement
- Secure cookie settings
- Input validation and sanitization
- File type validation
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically
The application can be deployed on any platform that supports Next.js:
- Netlify
- Railway
- DigitalOcean App Platform
- AWS Amplify
Arqive - Your digital world, safely Arqived. π
