Building Basedrop: Simple File Hosting
I made Basedrop.link because existing file sharing tools were either too limited or too complex. I wanted something fast with zero friction.
The Philosophy
- No accounts required
- No upload queues
- No upsell screens
- Just upload and get a link
Tech Stack
- Frontend: Next.js + TypeScript
- API: Next.js API Routes
- Storage: AWS S3
- CDN: CloudFront
Upload Flow
Presigned URLs let files go directly to S3:
const getUploadUrl = async (fileName: string) => {
const command = new PutObjectCommand({
Bucket: process.env.S3_BUCKET,
Key: `uploads/${generateId()}/${fileName}`,
});
return await getSignedUrl(s3Client, command);
};This means:
- No server bottleneck on uploads
- Better speeds for users
- Lower costs
Abuse Prevention
Anonymous hosting attracts bad actors:
- File type restrictions (no executables)
- Rate limiting per IP
- Automatic expiration
- Report system for takedowns
Results
- Average upload: under 30 seconds
- 40% of users return within a week
- Zero support requests about "how to upload"
Try it at Basedrop.link – no signup needed.
Related: Building Clark • My Journey
