DEV Community

Alpesh Borekar
Alpesh Borekar

Posted on

How I Built CloudStash: A Cloud File Storage System with Node.js, PostgreSQL, Redis, and BullMQ


How I Built CloudStash

After several weeks of building and deployment debugging, I finally launched CloudStash, a cloud file storage application built to learn how production-style backend systems work beyond basic CRUD applications.

Why I Built It

Most tutorial projects stop after implementing CRUD APIs.

I wanted to understand how real systems handle:

  • File uploads
  • Background processing
  • Object storage
  • Caching
  • Authentication
  • Deployment
  • Real-time updates

CloudStash became my learning project for these concepts.

Tech Stack

  • Node.js
  • TypeScript
  • PostgreSQL
  • Redis
  • BullMQ
  • Docker
  • Render
  • Vercel

Features

  • JWT Authentication
  • File Uploads and Downloads
  • PostgreSQL Metadata Storage
  • Redis Caching Layer
  • Background Workers with BullMQ
  • Real-Time Upload Progress
  • Dockerized Deployment
  • Object Storage Support

Architecture

[Insert your architecture diagram here]

The system separates metadata from file storage and uses workers for background processing.

Biggest Challenges

The hardest part wasn't writing APIs.

It was:

  • Deployment issues
  • Environment variables
  • Connecting multiple services together
  • Handling production configuration

I spent more time debugging deployment than writing features.

What I Learned

  • Redis is useful beyond caching
  • Background jobs simplify heavy processing
  • Separating metadata from blobs improves design
  • Production deployments are very different from local development

What's Next

Planned improvements:

  • File sharing links
  • Folder support
  • Storage analytics
  • Multipart uploads
  • Better monitoring

Links

Demo:
https://cloudstash-frontend.vercel.app

GitHub:
https://github.com/alpeshborekar/cloudstash

Top comments (0)