StoreIt: A Scalable File-Sharing Platform Built on Next.js, ShadCN, Appwrite, and AWS


Introduction
In an era dominated by data sharing and collaboration, cloud storage solutions like Google Drive and Dropbox have become essential tools. But what if you wanted a lightweight, privacy-focused, and developer-friendly alternative that you fully control? That question led to the creation of StoreIt.
StoreIt is a custom file-sharing platform that mimics Google Drive functionality but is built entirely from scratch using modern tools like Next.js, ShadCN, Appwrite, and AWS. Unlike consumer-facing platforms, StoreIt is modular, scalable, and privacy-first—making it perfect for startups, internal team usage, educational institutions, or even personal archiving.
Tech Stack Overview
Let’s break down the technologies that power StoreIt.
1. Frontend: Next.js + ShadCN
Next.js: I chose Next.js for its performance benefits, file-based routing, and full-stack capabilities. The app is server-rendered, responsive, and blazing fast.
ShadCN: Built on top of Radix UI and TailwindCSS, ShadCN provides highly accessible and visually clean UI components. This gave StoreIt a professional, sleek feel with minimal effort.
2. Backend: Appwrite
Authentication: Appwrite handles OTP-based authentication, providing a secure login mechanism without passwords. This reduces user friction and enhances security.
Functions and Storage Metadata: Appwrite's cloud functions manage metadata, file references, and user-related data. This helped offload non-essential logic from the frontend.
3. Storage: Amazon S3 with Pre-Signed URLs
StoreIt uses Amazon S3 to store files and media. When a file is uploaded, a pre-signed URL is generated, allowing time-limited access without exposing the bucket directly.
This approach maintains both performance and security, ensuring that links expire and cannot be misused.
4. Infrastructure: AWS-Powered Scalability
StoreIt isn’t just a frontend app hosted on a server. It’s architected with scalability and production-readiness in mind:
VPC (Virtual Private Cloud): The core services and backend are deployed in an isolated network to prevent unwanted access and to improve security.
Application Load Balancer (ALB): Used to route traffic intelligently between EC2 instances running StoreIt’s backend.
Auto Scaling Groups (ASG): Automatically spins up or shuts down instances based on traffic and CPU load. This ensures performance is maintained during spikes without over-provisioning.
IAM Policies: Granular IAM roles protect access to S3, allowing users to access only their files via controlled permissions.
5. CI/CD: Jenkins for Automation
A CI/CD pipeline was configured using Jenkins, which automates the following:
Building Docker images for the frontend and backend
Running tests and lint checks
Deploying new builds to AWS with IAM roles and CLI automation
This allowed me to iterate quickly and safely push updates without manual deployment steps.
Key Features
✅ OTP-Based Authentication
Users can log in using one-time passwords sent to their email, a passwordless flow that ensures high security and low friction.
📁 File Upload and Management
Users can:
Upload single or multiple files
See a list of uploaded files with metadata
Delete and rename files
Organize media logically for quick access
🔐 Secure Sharing with Pre-Signed URLs
Each file can be shared via a time-limited pre-signed URL generated using AWS SDK. This means:
No file is ever publicly exposed
Access is temporary and can be revoked automatically
Useful for secure document transmission
🌐 Clean UI/UX
Thanks to ShadCN, StoreIt feels smooth and intuitive. Modals, toasts, cards, file lists—everything is styled consistently, ensuring great UX across devices.
Real-World Applications
1. Startup File Management System
Startups often need private, secure ways to store and share internal documents such as pitches, designs, reports, and prototypes. With StoreIt, early-stage teams can avoid vendor lock-in, keep operational costs low, and ensure full control over access policies.
2. Educational Institutes
Colleges and schools can benefit from StoreIt for:
Distributing class materials and assignments
Managing student submissions
Safely storing exam papers and administrative records
Its OTP-based auth and role-controlled access make it suitable for multi-user academic environments.
3. Legal and Healthcare Data Handling
Sensitive data like contracts, legal filings, medical reports, and patient records demand high standards of privacy and traceability. With features like expiring links, IAM-controlled access, and private S3 buckets, StoreIt becomes a viable self-hosted solution for:
Small law firms sharing documents with clients
Clinics managing scanned medical records securely
4. Freelancers and Creative Agencies
Designers, developers, writers, and filmmakers often share drafts and final work with clients. StoreIt can serve as a white-labeled delivery portal where:
Files are branded and secure
Clients get time-limited access
Download analytics and access logs can be integrated for further transparency
5. Remote Teams and Internal Collaboration Tools
Many teams operate remotely and require tools beyond email and chat. StoreIt can become part of an internal toolchain:
Team leads can manage reports and documentation
HR can share onboarding documents
Finance can securely distribute payslips or invoices
StoreIt's modularity means it can be extended to include tagging, search, user roles, and even version control for files.
Deployment Architecture
Here’s how it all connects:
Frontend (Next.js) hosted on Vercel for demonstration.
Appwrite backend + Jenkins runner deployed in AWS inside a VPC
Application Load Balancer receives traffic and forwards it to the backend instances
Auto Scaling Groups ensure consistent performance and scalability
S3 Bucket stores files securely with IAM policies controlling access
Jenkins monitors GitHub commits and pushes updates to AWS automatically
Conclusion
StoreIt is more than just another side project. It's a demonstration of how modern technologies can be combined to build a production-ready, secure, and scalable file-sharing solution. Whether you want to host your own Dropbox or build internal tools for your team, StoreIt is a great foundation.
Want to explore it? ➡️ Try the demo: https://storeit-topaz.vercel.app
Stay tuned for the open-source release and detailed deployment guide. Feel free to reach out or collaborate!
Subscribe to my newsletter
Read articles from Shreyas Ladhe directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Shreyas Ladhe
Shreyas Ladhe
I am Shreyas Ladhe a pre final year student, an avid cloud devops enthusiast pursuing my B Tech in Computer Science at Indian Institute of Information Technology Vadodara ICD. I love to learn how DevOps tools help automate complex and recurring tasks. I also love to share my knowledge and my project insights openly to promote the open source aspect of the DevOps community.