About

A smaller file should still be the same file.

OptiShrink started with a plain problem: files too heavy to send and too important to flatten. It is a small studio for the unglamorous work of making them lighter without changing what they are.

An oversized pile of files waiting to be compressed
Fig. 01The pile
A person arranging large image frames
Fig. 02The edit

In plain terms

Compress a PDF or an image, choose how much detail to trade for size, and download the result. Signed-in runs are recorded with their exact byte counts.

Per file
20 MB
Levels
03

Principles

Small by design.

Deliberate limits, visible numbers, and no illusion that compression is magic.

Show the number

Every run records the original size, the compressed size, and the difference. A saving should be visible, not implied.

Keep the structure

PDFs keep their page count. Images keep their aspect ratio. Optimization is not permission to rewrite the file.

Leave less behind

Temporary uploads are deleted after every request. History is a choice, and any entry can be removed permanently.

Stay out of the way

No gamification, no fake urgency, no interstitials. The interface is quiet because the job is ordinary.

Under the hood

Boring pieces.

The stack is small enough to understand in one sitting. Compression is delegated to services that do it well; the studio handles the workflow around it.

Frontend
Next.js · TypeScript · Tailwind CSS
Backend
Express · TypeScript · Zod
Database
PostgreSQL · Drizzle ORM
Processing
Cloudinary · pdf.co

The short story

Built in public, revised with intent.

The first version of OptiShrink was a MongoDB and React project built for learning. This revision replaces the data layer with PostgreSQL and Drizzle, tightens the upload path, and rebuilds the interface around one job: getting a smaller file out the other side.

Maintained by

Questions, bugs, and strong opinions are welcome. Include the file name and its before-and-after size if something refused to shrink.

Start here

Give the next file a little less weight.

No signup, no queue. Compress a file and see the real before-and-after size in one pass.