
StoreIt enables fast file uploads, organization, and sharing. It integrates Appwrite for auth and storage, Zod for typed validations, and React Hook Form for reliable forms. The UX focuses on frequent tasks (upload, rename, share) and immediate visibility into used space, recents, and per‑type distribution.
Sign‑in/sign‑up with Appwrite, secure sessions, and OTP when required. Session and recovery flows are designed to minimize friction. Examples:
account.createEmailPasswordSession(email, password)account.deleteSession("current")account.createEmailToken({ email }) + account.createSession({ userId, secret })Multi‑type uploads with progress and drag‑and‑drop; file actions (view, rename, delete). Metadata is persisted for queries and analytics.
storage.createFile(bucketId, ID.unique(), file)storage.getFileView(bucketId, fileId) / storage.getFileDownload(...)databases.updateDocument(db, collection, id, { name })Public/private link sharing, global search, and sorting by date/name/size.
databases.listDocuments(db, collection, [Query.search("name", term)])Query.orderDesc("size"), Query.orderAsc("name")storage.getFilePreview(bucketId, fileId)At‑a‑glance stats for total/consumed storage, recent uploads, and extension breakdown. Reactive charts and summary cards help track usage over time.
Tailwind‑based design system with accessible headless components; consistent toasts, modals, and selects. Strong client/server validation:
z.object({ name: z.string().min(1), size: z.number().positive() })useForm({ resolver: zodResolver(schema) }) Modern tooling (TypeScript, ESLint) and URL‑driven state where helpful for consistency and shareability.storage.createFile with progress tracking.Query.* (name, date, size).