# Media library

Source: https://kirora.io/docs/guides/email-designer/media-library

Upload images once and reuse them in emails and push notifications, and see where each image is used before you delete it.

The **Media library** holds your workspace's images, such as logos, product shots and banners, so you upload each one once and reuse it in any email or push notification. Go to **Media library** in the sidebar, under **Content**.

Everyone except viewers can upload, rename and delete images. Viewers can browse them, copy their links and see where they're used.

## Upload images

1. Go to **Media library** and choose **Upload images**, or **Browse files**.
2. Pick one or more files. You can also drag images anywhere onto the page, or paste them.

Each file shows its own progress. Choose **Cancel** to stop one, **Cancel remaining** to stop the rest of a batch, or **Retry** if one fails. Leaving the page during an upload asks you first, since the rest would be lost.

What you can upload:

- **PNG, JPEG or GIF.** Other formats are refused with *Choose a PNG, JPEG or GIF image. Other formats are not supported.*
- **Up to 2 MB each.** A larger file gets *The image is larger than 2 MB. Resize or compress it before uploading.* Kirora doesn't resize or compress images for you.
- **Up to 25 megapixels**, such as 5000 × 5000 pixels.

> [!WARNING]
> Uploaded images are public: anyone with the link can open them. The file is stored as you upload it, metadata included, such as a photo's location. Don't upload private files.

Large images make emails slow to load. If a campaign's images add up to more than about 1 MB, its review shows a content warning. See [Content warnings](https://kirora.io/docs/guides/campaigns/test-and-preview#content-warnings).

## Use an image in an email

1. In the [email designer](https://kirora.io/docs/guides/email-designer/design-an-email), select a block that shows an image, such as **Image** or **Logo**.
2. Choose **Choose from assets**. Pick an image under **Workspace images**, search by name, or upload new ones in the same window.
3. Fill in **Image description**: what the image shows, such as *Bowl of ramen with soft-boiled egg*. Screen readers read it, and inboxes show it when images are off.

You can also paste a link into **Image URL** to use an image hosted elsewhere. Section backgrounds choose their image the same way.

If an image has no description, the designer's **Preview** says *An image has no description. Add one unless the image is decoration.* Leave the description empty only for images that carry no meaning, such as a divider.

## Use an image in a push notification

On a campaign's **Push notification** step or a journey's push step, choose **Choose from assets** under **Image**. Android and the web show the image; iOS shows it only if your app has a notification service extension. A 2:1 image, such as 1024 × 512, fits Android's large picture best.

## Find, rename and share an image

- **Search by name** finds an image by its name or file name.
- Choose an image to see its **Format**, **Dimensions**, **Size**, when it was **Uploaded**, and **Where it's used**.
- To rename it, change **Name** and choose **Rename**. Emails that use it aren't affected, since they load it by its link.
- **Copy image link** copies its public address. **Open full size** opens it in a new tab.

There's no way to replace an image's file in place. To change an image, upload the new one, swap it into the emails that use it, then delete the old one.

## Delete an image

Sent emails load their images from Kirora, so an image can't be deleted while a template, shared block, campaign, journey, unsent message or the brand kit uses it. Emails your developers sent through the API with their own content, rather than a template, can't be checked, so keep any image whose link they still use.

1. Choose the image and check **Where it's used**. It lists the **Templates**, **Shared blocks**, **Campaigns**, **Journeys**, **Journeys with runs under way**, **Messages not sent yet** that use it, and **Brand kit** if it's your logo: *It’s the brand logo. Change it in Business context.*
2. Remove it from each of those places. For the logo, choose another in **Settings › Workspace › Business context**.
3. Choose **Delete image**, then **Delete image** again to confirm. Deleting is permanent.

Some uses can't be changed, so they keep the image for good. These are marked **Locked**: a campaign that has started sending, an ended journey, a journey with contacts part-way through, and messages about to go. A draft or scheduled campaign isn't locked; unschedule it and change its email. Choosing **Delete image** on an image with a locked use explains why it has to stay. This keeps emails sent from those campaigns and journeys showing their images.

Kirora checks the uses again when you confirm. If something started using the image while you were deciding, the delete stops with *It's still in use, so it wasn't deleted.* and lists the new place. A design saved at the same moment as the delete can still miss the check, so don't add an image to an email while you're deleting it.

## Storage

Images count towards your plan's storage, which is shared by all the workspaces the owner pays for:

| Plan | Image storage |
| --- | --- |
| Free | 100 MB |
| Starter | 1 GB |
| Growth | 5 GB |
| Enterprise | 20 GB |

When it's full, uploads are refused with *Your … of storage is full*. Images you've already uploaded keep working. To upload more, delete images nothing uses, or move up a plan. See how much is used in **Settings › Workspace › Usage**, and [Plans and billing](https://kirora.io/docs/guides/account/plans-and-billing).

## Next steps

- [Design an email](https://kirora.io/docs/guides/email-designer/design-an-email)
- [Templates](https://kirora.io/docs/guides/email-designer/templates)
- [Create a push notification](https://kirora.io/docs/guides/messaging/push/create-a-push-notification)