← Back to portfolio
Next.js
TypeScript
TailwindCSS
Prisma
PostgreSQL
Cloudinary
NextAuth
Razorpay

2025 - Present

Resizely – Media Processing SaaS

Resizely turns heavy media processing into a self-service product with built-in monetization. Users purchase credits via Razorpay, then spend them on image resizing, video compression, and AI background removal — each operation deducts the appropriate credit cost atomically to prevent race conditions under concurrent requests. Cloudinary handles media transformation and CDN delivery, offloading the compute-heavy work. Admins get a dedicated dashboard with per-user credit balances, consumption history, and revenue breakdowns — all without a separate service.

📸 Resizely – Media Processing SaaS 🚀

Resizely is a credit-based SaaS platform for modern media processing.
Users can resize images, compress videos, and remove backgrounds, while admins get full platform control & analytics via a dedicated Admin Dashboard.

🌐 Live: https://resizely.nikhilbhoyar.info


🌟 Features

👤 User Features

Image Resizing – Optimize images for web & social platforms
Video Compression – Reduce size without noticeable quality loss
Background Removal – AI-powered subject extraction
Credit-Based System – 2 free credits, pay-as-you-go after
Secure Payments – Razorpay integration
Authentication – NextAuth (Google + Credentials)
Fast Media Delivery – Powered by Cloudinary
Modern UI – ShadCN UI + TailwindCSS


🛡️ Admin Dashboard

Accessible only to ADMIN users with role-based protection.

User Management

Role Management

Media Management

Analytics

Security


🛠️ Tech Stack

Frontend & Backend

Database

Media Processing

Authentication

Payments

Email

UI / Styling

State Management

Deployment


🚀 Getting Started

1️⃣ Clone the Repository

git clone https://github.com/devnick10/resizely_saas.git
cd resizely_saas

2️⃣ Install Dependencies

npm install

3️⃣ Set Up Environment Variables

Create a .env.local file in the root directory and add the following:

# Database
DATABASE_URL="postgres://YourUserName:YourPassword@YourHostname:5432/YourDatabaseName"

# Cloudinary
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret

# Razorpay
RAZOR_PAY_KEY_ID=your_razorpay_key_id
NEXT_PUBLIC_RAZOR_PAY_KEY_ID=your_razorpay_key_id
RAZOR_KEY_SECRET=your_razorpay_secret

# NextAuth
NEXTAUTH_SECRET=your_random_secret_key
NEXTAUTH_URL=http://localhost:3000

# Google Auth (for NextAuth)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

# SMTP (Mailtrap for development/testing)
MAILTRAP_HOST=smtp.mailtrap.io
MAILTRAP_PORTS=2525
MAILTRAP_USERNAME=your_mailtrap_username
MAILTRAP_PASSWORD=your_mailtrap_password

🐳 Docker Setup

🪪 Development

Use Docker Compose to run the app in development mode:

docker compose --env-file ./.env -f docker/docker-compose.yml up -d

🛑 Stopping Services To stop all running services, run the following command in a terminal:

docker compose --env-file ./.env -f docker/docker-compose.yml down -v

📸 How It Works

1️⃣ Sign Up/Login via NextAuth (Google or Email/Password)
2️⃣ Get 2 free credits (or buy more via Razorpay)
3️⃣ Upload an image or video
4️⃣ Choose resizing/compression options
5️⃣ Process & download the optimized media


🛠 Contributing

🔹 Fork the repo & create a new branch
🔹 Make your changes & push to your branch
🔹 Open a Pull Request 🎉


📝 License

This project is open-source under the MIT License.


📬 Contact

Have feedback or suggestions? Connect with me!

✖️ Twitter/X
🔗 LinkedIn


Give it a ⭐ if you like this project! 🚀