Skip to content

Case study

Karolina Kuc

A portfolio website for a freelance designer, with her own large-file transfer and a before-and-after slider that works the way she wanted.

Client
Karolina Kuc
Sector
Graphic design, illustration, retouching and photography, Mallorca
Services
Website Development
Stack
Next.jsReactTailwind CSSCloudflare R2ResendVercel
Year
2026
Visit live site
Karolina Kuc's home page, with the heading Your creative work, handled with care
The home page. Four services, and the work for each one page away.

The brief

Karolina Kuc is a freelance graphic designer, illustrator, photo retoucher and photographer, based in Mallorca and working with clients around the world. She needed a portfolio site that showed all four kinds of work.

She also wanted features that website platforms had not given her, which is why she chose a custom site rather than a template. Those features were built for the way she works, and they make the site her own. They are described below, after her work.

Her work, one service at a time

Each of her four services has its own page and its own work, reached from the main menu. The home page introduces all four, so a visitor can go straight to the kind of work they need.

Her retouching galleries are grouped into fashion, lifestyle and property. The grid shows only the finished pictures, so each gallery reads as a portfolio first.

Karolina's Retouching Gallery, with tabs for fashion, lifestyle and property and a grid of finished photos
The retouching gallery: finished pictures only, until one is opened and the slider appears.

Features a template could not give her

Three things set her site apart from one built on a platform: a before-and-after slider that works the way she wanted, two free tools for other designers, and her own file transfer for sending and receiving very large files.

A before-and-after slider, made the way she wanted

She had already tried paid slider plugins on Squarespace and Hostinger Website Builder, and none of them worked or looked the way she wanted. Hers is built on an open-source component and changed to suit her. The handle, the line and the Before and After labels look the way she asked for, and it moves smoothly under a finger or a mouse.

In her galleries the slider appears when a picture is opened, and in the places she has chosen to show one, such as the top of her retouching page. There it opens on the original picture, then sweeps across once to reveal the retouch before handing over. Touching it stops the sweep, and visitors who have asked their device to reduce motion do not see it.

As the handle nears either edge, the label on that side fades out, so a label does not sit over a picture it no longer describes. Each slider takes the shape of its own picture, so nothing is cropped to fit.

A portrait of a woman in a vineyard in the slider, with the original on the left of the handle and the retouched picture on the right
Drag the handle to compare. The original is on the left, her finished retouch on the right.
The slider's handle near the left edge, with the Before label fading out
Near the edge, the Before label fades out rather than sitting over the picture.

Two free tools for other designers

Her site also has a colour contrast checker and a QR code generator, free for anyone to use, with no sign-up.

The colour contrast tool: text on a solid or gradient background, with its contrast ratio checked against the accessibility guidelines as you go.
The QR Code Generator, with options for a link, text or a contact card and a choice of colours
The QR code generator, for a link, some text or a contact card, downloaded as SVG or PNG.

Her own file transfer, on her own site

A retouching job can mean a whole shoot of camera files coming in and finished pictures going back out, which is often too much for free transfer services, and the paid ones charge a monthly fee. So her site has its own.

Clients send files from an upload page on karolinakuc.com. They can drop in files or whole folders, up to 50GB and 500 files at a time. The files go straight from their browser into storage with Cloudflare in the EU, so a large shoot does not pass through the website on the way.

If a connection drops halfway through, the upload carries on from where it stopped rather than starting again. Received files are deleted automatically after 30 days.

The Send me your files page on Karolina Kuc's website, with a drop area for files and folders and fields for name, email and message
The upload page. Her name, her typeface and her colours, with nothing to sign up for.
An upload in progress, with a bar for each camera file and 27% of the transfer sent
A shoot on its way in. Each file shows its own progress, and the sender is told what happens if the connection drops.
The confirmation after an upload: Thank you, Lucía. Your files have arrived.
When the last file lands, the sender sees this and gets a confirmation email.
The email Karolina receives when files arrive, listing each file with its size and a button to view and download them
Karolina's notification: who sent what, their message, and a link straight to the files.

Behind a sign-in that only Karolina can use, a dashboard lists every transfer, sent and received, with how much storage they take up. She can see whether each one has been downloaded and when it expires. Image files get small previews, made in the sender's browser as they upload, so she can recognise a shoot without downloading it first.

Each transfer can be kept for longer, by 7, 14 or 30 days at a time, up to 90 days from when it was created.

Karolina's Transfers dashboard, listing sent and received transfers with their sizes, downloads and expiry dates
Her transfers, filtered by sent and received, with downloads and expiry dates on each.
A received transfer from Lucía Ferrer, with a grid of photo previews and her message
One received transfer, with previews of the pictures and the sender's message beside them.
The Keep it for longer dialog, offering 7, 14 or 30 more days with the date each would run until
Keeping a transfer for longer, with the new date shown before she chooses.

50GB

in a single transfer, in either direction, with up to 500 files

It works the other way too. Karolina uploads finished files and either emails the link to up to ten people or copies it to send herself. She chooses how long it lasts, from 7 to 90 days, and can protect it with a password.

Her clients download from a page with her name on it, not a transfer company's. She gets an email when they do, and a client who sent her files gets one when she downloads them.

The Share files page, with six retouched files added, a recipient's email address, a message and a choice of how many days the link lasts
Sending finished files: email them to someone, or get a link to send yourself.
Your link is ready, showing a download link on karolinakuc.com and a button to copy it
A link ready to send, with a reminder to share the password separately.
The download page a client sees, titled Files from Karolina Kuc, with previews of six retouched photos
What her client sees: previews, her message, and the files to download.
A download page asking for a password before the files can be unlocked
A transfer protected with a password.

There is no fee to send or receive. Cloudflare's storage is free up to 10GB, and above that costs about US$1.50 a month for every 100GB stored. Because transfers expire, nothing is kept for more than 90 days.

The code is hers, like the rest of her site.

Two phone screens: the Send me your files page, and the before-and-after slider open in the gallery
The upload page and the slider on a phone.

The result

Karolina has one website for all four kinds of work, with a file transfer and a slider that a platform did not give her, both under her own name.

See it for yourself.

Karolina's site is live, upload page included. If there is something your website needs that a platform cannot do, tell us what you are planning.

See it live

See what we’ve built.

Recent projects, from a designer's portfolio to an AI platform.