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

Shreyas LadheShreyas Ladhe
5 min read

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.

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:

  1. Frontend (Next.js) hosted on Vercel for demonstration.

  2. Appwrite backend + Jenkins runner deployed in AWS inside a VPC

  3. Application Load Balancer receives traffic and forwards it to the backend instances

  4. Auto Scaling Groups ensure consistent performance and scalability

  5. S3 Bucket stores files securely with IAM policies controlling access

  6. 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!

0
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.