akshaj@portfolio:~$ cat projects/droply.md

Droply — Temporary File Sharing Web App

Full-stack app to upload files/folders and generate one shareable link with automatic 24-hour expiration.

Next.jsTypeScriptPostgreSQL (Neon)Prisma ORMAppwriteoRPCTanStack Query
Live ProjectGitHub RepoBack to Projects

Droply

Droply is a lightweight file-sharing app that lets you upload files or folders, generate a single share link, and automatically expire everything after 24 hours. It uses Appwrite for storage and Postgres via Prisma for session metadata.

Features

Tech Stack

Getting Started

1) Install dependencies

npm install

2) Configure environment variables

Create a .env file in the project root with the following variables:

DATABASE_URL="postgresql://..."
NEXT_PUBLIC_APPWRITE_PROJECT_ID="..."
NEXT_PUBLIC_APPWRITE_PROJECT_NAME="droply"
NEXT_PUBLIC_APPWRITE_ENDPOINT="https://<region>.cloud.appwrite.io/v1"
NEXT_PUBLIC_APPWRITE_BUCKET_ID="temp-files"
NEXT_PUBLIC_BASE_URL="http://localhost:3000"
NEXT_PUBLIC_SITE_URL="https://your-domain.example"
CRON_SECRET="your-secret"

3) Set up the database

npx prisma migrate dev

4) Run the dev server

npm run dev

Open http://localhost:3000.

Scripts

API Routes

How Expiration Works

Each upload session is valid for 24 hours. A cleanup job can be triggered by hitting the cron endpoint which removes expired files from Appwrite and deletes their metadata from Postgres.

Deployment Notes