A full-stack SaaS platform for AI-powered media processing.
Upload. Transform. Download. Touch grass. Repeat.
RenderBox is a production-ready SaaS application that handles all the boring media processing stuff so you don't have to open Photoshop (we know you don't have a license anyway π).
Built with the latest and greatest in web tech β because using outdated frameworks is basically a personality disorder at this point.
"My 4GB video is now 40MB and it still looks good? What kind of black magic..."
- Upload videos up to 70MB
- Automatic compression while preserving quality
- Cloud storage via Cloudinary
- Track original vs compressed size (flex on your storage savings)
"Goodbye, embarrassing background. Hello, professional headshot."
- One-click background removal powered by Cloudinary AI
- Works on literally anything (yes, even that photo)
- Instant preview & download
- No green screen required β we're not cavemen
"It's like Instagram filters, but actually good."
- AI-powered image enhancement
- Before/after comparison
- Download enhanced images instantly
- Make your potato-quality photos look like they were taken by a professional
"Finally, I don't have to Google 'Instagram post dimensions' every single time."
- Pre-configured formats for all major platforms:
- Instagram Square (1:1) & Portrait (4:5)
- Twitter Post (16:9) & Header (3:1)
- Facebook Cover (205:78)
- Smart cropping with AI-powered gravity
- One-click download, optimized for each platform
| Category | Technology | Why? |
|---|---|---|
| Framework | Next.js 16 | Because we like living on the edge (literally, edge functions) |
| Frontend | React 19, TypeScript | Type safety or chaos β pick one |
| Styling | Tailwind CSS, DaisyUI | Beautiful UI without crying over CSS |
| Auth | Clerk | Auth that doesn't make you want to quit programming |
| Database | PostgreSQL + Prisma 7 | ORM that actually sparks joy |
| Media | Cloudinary | The wizard behind the curtain |
| Notifications | React Hot Toast | Because alert() is a war crime |
- Node.js 18+ (seriously, upgrade already)
- PostgreSQL database
- Cloudinary account (free tier works fine, we're not monsters)
- Clerk account
git clone https://github.com/yourusername/RenderBox.git
cd RenderBoxnpm install
# or if you're a yarn person (no judgment... okay, maybe a little)
yarn installCreate a .env file in the root directory:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/RenderBox"
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/home
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/home
# Cloudinary
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secretnpx prisma migrate dev --name init
npx prisma generatenpm run devOpen http://localhost:3000 and witness the magic β¨
RenderBox/
βββ π app/
β βββ π (app)/ # Protected routes (the good stuff)
β β βββ π ai-enhancer/ # AI image enhancement
β β βββ π background-removal/
β β βββ π home/ # Dashboard
β β βββ π social-share/ # Social media formatter
β β βββ π video-upload/ # Video upload & compression
β βββ π (auth)/ # Auth pages
β βββ π api/ # API routes
β β βββ π image-upload/ # Handles image uploads
β β βββ π video-upload/ # Handles video uploads
β β βββ π video/ # Video operations
β βββ π layout.tsx # Root layout
βββ π components/ # Reusable components
βββ π prisma/ # Database schema & migrations
βββ π public/ # Static assets
βββ π types/ # TypeScript types
- Push your code to GitHub
- Import your repo to Vercel
- Add your environment variables
- Deploy and grab a coffee β
Works anywhere Node.js runs. We're not picky.
Upload an image for processing.
| Parameter | Type | Description |
|---|---|---|
file |
File |
The image file to upload |
Response:
{
"publicId": "RenderBox/abc123xyz"
}Upload a video for compression.
| Parameter | Type | Description |
|---|---|---|
file |
File |
Video file (max 70MB) |
title |
string |
Video title |
description |
string |
Optional description |
originalSize |
string |
Original file size |
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run start |
Start production server |
npm run lint |
Lint your code (please) |
Contributions are what make the open-source community awesome. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
And please, write descriptive commit messages. "fixed stuff" tells us nothing. π€
Distributed under the MIT License. See LICENSE for more information.
Translation: Do whatever you want, just don't sue us.
- Cloudinary β For making media processing not suck
- Clerk β For auth that doesn't require a PhD
- Vercel β For deployment that actually works
- Coffee β β The real MVP
Built with π and an unhealthy amount of caffeine
Feel free to reach out
If this helped you, consider giving it a β β it's free and makes us happy