Social Share

Upload an image and get it cropped to the aspect ratios the social networks ask for. Upload a video and get a compressed copy back.

The video library: one card showing a thumbnail, the title, the original and compressed sizes, and the compression saved.
The video library after an upload. Screenshot taken before the controls on each card were reworked, so the buttons look slightly different today.
Images are processed on this server
sharp decodes the upload, applies its EXIF orientation, strips the rest of the metadata (GPS included) and re-encodes to WebP. No media API is involved and no account is needed for this half.
Five crops, computed on request
Instagram square and portrait, Twitter post and header, Facebook cover. Each one is cropped when you ask for it, using the highest-detail region rather than the centre, so a subject near an edge survives the crop.
Video compression through Cloudinary
A video upload is transcoded by Cloudinary and the before and after sizes are recorded. This half needs a Cloudinary account; without one the app says so plainly and the image half keeps working.
Your uploads are yours
Every file is scoped to the account that uploaded it, listed only for that account, and kept until it is deleted — within a per-account storage limit.

A portfolio project, built with Next.js, Clerk, Prisma and sharp. Source: github.com/vipinsao/ai-saas-webapp