Cloud file storage built with Next.js App Router and Appwrite. Upload, preview, search, sort, share, and manage files with OTP sign-in, server actions, and storage usage chart.
- Authentication with OTP (Appwrite Account APIs)
- Upload files via drag-and-drop with size/type validation
- File type detection and thumbnails for images/media
- Share, rename, delete, and download actions
- Search with debounced client queries
- Sort and filter by type (documents, images, media, others)
- Dashboard usage chart (used vs. total) and latest upload dates
- Server Actions for secure data access from the server
- Tailwind CSS + shadcn UI components
- Next.js App Router with server and client components
- Next.js 15 (App Router, Server Actions)
- React 19 RC
- Appwrite (Auth, Databases, Storage)
- Tailwind CSS + shadcn/ui
- Recharts
- TypeScript
app/(root)— authenticated routes, dashboard and type pagesapp/(auth)— sign-in and sign-up layouts- Server-only actions in
lib/actions/*using "use server" - Appwrite clients:
- Session client (reads with user session via
cookies()) - Admin client (secure server key for privileged operations)
- Session client (reads with user session via
- UI components under
components/*(client/server as needed)
Set these in .env.local for development and in your hosting provider (e.g., Vercel Project Settings) for production:
NEXT_PUBLIC_APPWRITE_ENDPOINT="https://cloud.appwrite.io/v1"
NEXT_PUBLIC_APPWRITE_PROJECT=""
NEXT_PUBLIC_APPWRITE_DATABASE=""
NEXT_PUBLIC_APPWRITE_USERS_COLLECTION=""
NEXT_PUBLIC_APPWRITE_FILES_COLLECTION=""
NEXT_PUBLIC_APPWRITE_BUCKET=""
NEXT_APPWRITE_KEY=""