Building your page
Images, video and files
Every photo, video, GIF and audio file you upload lands in one place — your Files library — and can be reused anywhere on any of your pages. This chapter covers what you're allowed to upload, what the app does to a photo on the way, both editors, and the exact messages you'll see when something is refused.
Your Files library
Open Account and pick Files from the row of tabs at the top (Your Posts · Analytics · Files · Settings). The card at the top reads Files over the line Upload images to reuse across your pages., with an Upload button beside it.
Below the card is every file you own, newest first. Each tile shows four things:
- A preview — images show their thumbnail. An exported page template shows a document icon; everything else shows a video-camera icon.
- A name — the original filename if the file has one, otherwise a made-up label like
video · Aug 6orimage · Aug 6. - A size —
512 KB,4.2 MB,12 MB. - Three buttons — copy the link, Download and Delete.
While the list loads you see placeholder tiles. If you have nothing yet it reads No files yet. Upload an image or export a template to see it here. If the list can't load at all, the whole area becomes one tappable card: Couldn't load your files — tap to retry.
Uploading from the Files tab
- Go to Account → Files.
- Tap Upload.
- Pick one or more images. The picker accepts JPG, PNG, WebP and GIF, and lets you select several at once.
- The button reads Uploading… while the batch runs. Files go up one after another, in the order you picked them.
- A toast confirms how many landed —
3 files uploaded.
Watch out
A batch stops at the first bad file
Note
Copy, download and delete
Copy a link
The first button on a tile is Copy link. It puts the file's public address on your clipboard and the icon turns into a green check for a moment. If your browser blocks clipboard access you get Couldn't copy — your browser blocked it.
Download
The Download button opens the file. Because your media is served from a different domain than the app, browsers ignore the download hint — in practice you get a new tab with the raw file, and you save it from there.
Delete
- Tap the trash icon on a tile.
- A confirmation appears: Delete this file? over Pages still using it will show a broken image..
- Choose Cancel or Delete.
Deleting removes the file from your library and gives the space back straight away. The stored image, its generated thumbnails and any video poster frame go with it. You get File deleted on success, or Couldn't delete that file. if it didn't work.
Deleting is permanent
Things that appear in Files on their own
Not everything in your library got there through the Upload button. These arrive by themselves:
- Exported page templates — every page export also writes a
.gridtemplatefile into Files, named after the template. - Videos you save from the video editor. They carry no filename, so they list as
video · Aug 6. - Photos you edit and save in the photo editor, stored under a generated name beginning
edit-. - Ambient audio uploaded in the editor's design panel, under its original filename.
Two things are deliberately kept out of the list, and neither costs you any space:
- Video poster frames — the still image shown before a clip plays. It is stored beside the clip and deleted with it.
- Generated thumbnails — the small and medium copies the app makes of every photo.
Exports pile up quietly
Watch out
mp3 in your library is not a video.What you can upload
Three families of file are accepted. Anything else is refused as an unsupported type.
| Kind | Formats | Who can upload |
|---|---|---|
| Images | PNG, JPEG, WebP, GIF | Everyone |
| Video | MP4, WebM, MOV | Everyone |
| Audio | MP3, OGG | Paid plans — Élégante and above |
Each place that takes a file narrows that list further. The Files tab and the Enchantée button's custom face take JPG, PNG, WebP and GIF. The media picker's upload tile says so on screen: JPG, PNG, WebP or GIF. Ambient sound takes MP3 and OGG only.
The largest single file you can upload
| Plan | Largest single file |
|---|---|
| Novice | 25 MB |
| Élégante | 100 MB |
| Vedette | 250 MB |
| Icône | 1 GB |
Total storage
| Plan | Total storage |
|---|---|
| Novice | 500 MB |
| Élégante | 5 GB |
| Vedette | 25 GB |
| Icône | 100 GB |
Everything with a tile in Files counts towards that total: photos, videos you export, audio and exported templates. You are charged the size of the file as stored — after the app has resized and re-compressed it, which is usually much smaller than the file on your device. Deleting a file returns its space immediately.
There is no storage meter
Documents you attach in the AI Composer are the one exception to all of this — they are read once and thrown away, never saved to Files, never charged. Plans and limits has the full comparison.
What happens to a photo before it leaves your device
Photos are processed in your browser before anything is sent. This is why uploads are quick and why they cost less space than you'd expect.
- A GIF is left completely alone — re-encoding it would kill the animation.
- Anything else is scaled down so its longest side is at most 1600 pixels.
- It is re-encoded — as WebP if the image has genuine transparency, so the transparency survives; as JPEG otherwise.
- If nothing needed scaling and the re-encode came out no smaller, your original file is sent instead.
So an uploaded photo is never more than 1600 pixels on its long edge, a JPEG is re-compressed once, and camera metadata does not survive the process. There is no keep original option.
After the file lands, the app makes two smaller copies in the background — a small one for grids and a medium one for pages — so your page loads the smallest version that will look right. Unusually heavy sources skip that step and are served from the original everywhere.
GIFs are never processed
The photo editor
A full-screen editor with crop, filters and adjustments opens automatically in three places:
- An Image widget — in the editor, select the widget, then Upload your own image in its Image field.
- Your profile photo — Account → edit your profile → tap the avatar.
- Your profile background — the same screen, Add photo or Change under Profile background.
The header is Cancel · Edit photo · Done. Your photo fills the middle, with the current filter applied live. At the bottom, a three-way switch: Crop · Filter · Adjust.
Watch out
Crop
Four aspect chips: 1:1, 4:5, 16:9 and Original. Rotate turns the photo 90° per tap. Zoom goes from 1.0× to 3.0×. Straighten runs from 0° to 360°. On the photo itself, drag to reposition and pinch to zoom; the rule-of-thirds grid shows only while this tab is open.
Watch out
Filter
Nine presets, each previewed on your own photo as a small live thumbnail. The default is Original.
| Preset | What it does |
|---|---|
| Original | No change |
| Clarendon | Punchier and brighter — more contrast and colour |
| Gingham | Soft, flat and slightly warm |
| Moon | Bright black and white |
| Noir | Deep, contrasty black and white |
| Warm | Warmer and richer |
| Cool | Cooler, shifted slightly blue |
| Fade | Washed-out film look |
| Vivid | Stronger colour and contrast |
Adjust
Five sliders, each showing its number. Warmth above zero adds a sepia warmth; below zero it shifts the picture cool. Vignette darkens the corners.
Watch out
Auto — the one AI action in the editor
In the Adjust panel there's a button reading Auto with its price beside it: · 0.2 AI credits. It looks at your photo and suggests a whole look.
- Open the Adjust tab.
- Tap Auto and wait for the spinner.
- The filter preset and all five sliders jump to the suggestion, and a one-line note explains it.
- Nudge anything you disagree with by hand, then tap Done.
After the first run the button reads Try another look. Every tap is a fresh suggestion and a fresh charge — including Try another look. It sends a small, low-resolution copy of your photo, never the full file, and closing the sheet cancels a suggestion still in flight.
Auto also draws on your plan's daily AI allowance, shared with every other AI action: Novice 30, Élégante 150, Vedette 400 and Icône 1000 actions per rolling 24 hours.
Finishing
Done renders your crop, rotation, filter, the five Adjust sliders and the vignette into a new JPEG at up to 1280 pixels on the long edge. While it renders, Cancel is disabled.
- For a widget, the photo uploads straight away and the widget updates.
- For your profile photo or background, it uploads straight away but you still have to press Save on the profile screen for it to stick — you'll get Profile saved.
Cancel, tapping the dark background, pressing Esc or dragging the sheet down all discard the edit. None of them work while the photo is rendering. Every time you open the editor it starts fresh — square crop, no zoom, no rotation, Original filter, neutral sliders.
| Setting | Where | Type | Values | Default | Plan |
|---|---|---|---|---|---|
| Crop aspect | Photo editor → Crop | Chips | 1:1, 4:5, 16:9, Original | 1:1 | All |
| Rotate | Photo editor → Crop | Button | +90° per tap, wraps at 360° | 0° | All |
| Zoom | Photo editor → Crop | Slider | 1.0× – 3.0× | 1.0× | All |
| Straighten | Photo editor → Crop | Slider | 0° – 360° (the same value Rotate moves) | 0° | All |
| Filter | Photo editor → Filter | Picker | Original, Clarendon, Gingham, Moon, Noir, Warm, Cool, Fade, Vivid | Original | All |
| Brightness | Photo editor → Adjust | Slider | 50 – 150 | 100 | All |
| Contrast | Photo editor → Adjust | Slider | 50 – 150 | 100 | All |
| Saturation | Photo editor → Adjust | Slider | 0 – 200 | 100 | All |
| Warmth | Photo editor → Adjust | Slider | −100 – 100 (warm above 0, cool below) | 0 | All |
| Vignette | Photo editor → Adjust | Slider | 0 – 100 | 0 | All |
| Auto | Photo editor → Adjust | Button | Sets the preset and all five sliders at once; becomes “Try another look” | — | All |
The media picker
Whenever a field wants a picture you already have, you get a sheet headed Insert image (or Insert video) with two tabs: Upload and Your files. It opens from any widget image field, from Choose from Files in the Image widget, from Add photos in the Gallery widget and the AI Composer, and from Files in the Video widget.
Upload
- Tap the dashed tile reading Tap to choose an image — or Tap to choose images when the field accepts several.
- Pick your file. The tile turns into a spinner with a real percentage:
Uploading 42%. - When it finishes, the picture is placed and the sheet closes.
Watch out
Your files
- Switch to Your files for a three-column grid of your library, already filtered to what the field accepts.
- Tap tiles to select. A selected tile gets a purple ring and a check.
- The footer counts what you've picked — Pick one, 1 selected or
3/12 selected. - Confirm with Use image for a single pick, or Add for several.
In a multi-pick field, files you've already used and every tile beyond the field's limit are dimmed and can't be tapped at all. With an empty library the tab reads No files yet over Upload one and it'll show here next time. If it can't load: Couldn't load your files — try again.
Pressing Esc closes the picker and nothing else — the panel you opened it from stays open. On a phone you can also drag the sheet down by its header, or tap the dimmed background. None of that works while an upload is running.
Video
Video lives entirely inside the Video widget. There is no video upload in Files and no video in the post composer.
Adding a clip
- In the editor, add or select a Video widget.
- In its panel, choose Upload to pick a file from your device, or Files to reuse a clip you've already exported.
- A fresh file opens the video editor. A clip from Files is used as-is, with no re-encoding.
Once a clip is set, the panel shows a preview with a pill like 0:12 · 1080P, the buttons Edit video and Replace, and a line telling you your plan's clip length and top quality. Picking a file that isn't a video gives you Pick a video file.
The video editor
The header is Cancel · Edit video · Save. It opens in one of two modes:
- Full — a file you just picked from your device. Tabs: Trim, Filter, Adjust, Stickers.
- Style only — a clip that is already uploaded. Tabs: Filter, Adjust, Stickers. No trimming, no quality choice, and it saves instantly because nothing is re-encoded.
You can only trim in the same session you picked the file
Trim
Quality chips — 720P, 1080P, 4K — offer whatever your plan allows. The highest usable one is selected for you when the clip loads.
A sound chip toggles between Sound on and Muted, starting at Sound on. Then two sliders, Start and End, each moving in tenths of a second. Moving Start pulls End along so your clip never exceeds your plan's limit, and a caption under them shows the trimmed length against the maximum. The preview loops only the part you kept.
Heads up
Watch out
Filter, Adjust and Stickers
Filter offers the same nine presets as the photo editor, previewed on your own clip. Adjust has the same five sliders with the same ranges, plus Reset. There is no Auto for video.
Stickers adds things on top of the picture. Text drops in an editable label; Time adds a live clock pill whose colour is fixed; below them sits a row of 22 one-tap emoji. Tap a sticker on the video to select it, then drag it anywhere. Selected text stickers get a text field (up to 60 characters) and five colour swatches; any selected sticker gets a Size slider and a Remove chip. With nothing selected the hint reads Tap a sticker to add it, then drag it anywhere on the video.
Styling is not baked into the file
Saving
- Tap Save.
- An overlay shows
Rendering… 37%over the line Encoding plays the clip through once — hang tight.. - Then
Uploading… 82%on the same bar. - The sheet closes and the widget updates. A still frame from the start of your trim is stored alongside the clip as its poster.
Encoding happens in real time, in this tab
Video limits by plan
| Plan | Qualities | Longest clip |
|---|---|---|
| Novice | 720p | 30 seconds |
| Élégante | 720p, 1080p | 2 minutes |
| Vedette | 720p, 1080p, 4K | 5 minutes at 720p and 1080p · 2 minutes at 4K |
| Icône | 720p, 1080p, 4K | 10 minutes at every quality |
Watch out
How the clip behaves on your live page
| Setting | Where | Type | Values | Default | Plan |
|---|---|---|---|---|---|
| Autoplay (muted) | Video widget panel | Toggle | On / off | On | All |
| Loop | Video widget panel | Toggle | On / off | On | All |
| Fill | Video widget panel | Chips | Fill (fills the cell, crops) / Fit (whole frame, letterboxed) | Fill | All |
| Caption | Video widget panel | Text | Free text, emoji picker attached | Empty | All |
Visitors get a round sound button on the clip — unless you chose Muted in the editor, in which case there is none. Readers who have asked their device to reduce motion don't get autoplay, and a caption is hidden on very narrow cells.
Watch out
| Setting | Where | Type | Values | Default | Plan |
|---|---|---|---|---|---|
| Video quality | Video editor → Trim | Chips | 720P / 1080P / 4K — each chip is disabled if your source isn't that tall | The highest your plan and your file allow | All |
| Sound | Video editor → Trim | Chip | Sound on / Muted (Muted removes the audio from the file for good) | Sound on | All |
| Start | Video editor → Trim | Slider | 0 s to one second before the end, in steps of 0.1 s | 0:00 | All |
| End | Video editor → Trim | Slider | At least 0.5 s after the start, at most your plan's clip limit | The end of the clip, or your plan's limit | All |
| Filter | Video editor → Filter | Picker | The same nine presets as the photo editor | Original | All |
| Brightness / Contrast / Saturation / Warmth / Vignette | Video editor → Adjust | Sliders | 50–150 / 50–150 / 0–200 / −100–100 / 0–100 | 100 / 100 / 100 / 0 / 0 | All |
| Sticker text | Video editor → Stickers | Text (text stickers only) | Up to 60 characters | Your text | All |
| Sticker colour | Video editor → Stickers | Swatches (text stickers only) | White, near-black, brand purple, gold, red | White | All |
| Sticker size | Video editor → Stickers | Slider | 12 – 72 px | 28 for text, 34 for emoji, 16 for the clock | All |
| Sticker position | Video editor → the video itself | Drag | Anywhere, held just inside the edges of the frame | Centre | All |
Every other place that takes a file
Profile photo and profile background
- Go to Account and open your profile for editing.
- Tap the avatar, or Add photo / Change under Profile background.
- Pick an image. The photo editor opens locked to a square — no aspect chips.
- Tap Done to upload, then Save in the header to keep it.
Remove photo under the avatar, and the trash chip on the background, clear the slot. Clearing does not delete the file from your library — it stays in Files until you delete it there.
The Enchantée button's face
Account → Settings → the Your button card holds the switch Show the Enchantée button on my page and, on a paid plan, a field called Custom image or GIF. Tap Upload image or GIF (Replace once one is set) and pick a PNG, JPEG, WebP or GIF. There is no cropping step here — the image goes up as it is and becomes the button's face. A Remove link puts the default back.
Watch out
A background image for your page
In the editor's design panel, under Background image, tap the dashed Upload background image tile and pick any image. Once it's set the tile becomes a preview with a Remove chip, and a whole sub-panel of controls appears. This needs a paid plan — Élégante and above.
On the free plan the file is stored anyway
| Setting | Where | Type | Values | Default | Plan |
|---|---|---|---|---|---|
| Fit | Design panel → background image | Chips | Cover / contain | Cover | Élégante |
| Focal point (crop) | Design panel → background image | 3×3 grid | Top left through bottom right | Centre | Élégante |
| Filter | Design panel → background image | Chips | None / grayscale / sepia | None | Élégante |
| Opacity | Design panel → background image | Slider | 0 – 100 % | 100 % | Élégante |
| Dark overlay | Design panel → background image | Slider | 0 – 80 % | 0 % | Élégante |
| Overlay style | Design panel → background image | Chips | Solid / gradient | Solid | Élégante |
| Overlay color | Design panel → background image | Colour picker | Any colour | Unset | Élégante |
Ambient sound
Also in the design panel, under Ambient sound — A looped track visitors can play — never autoplays. Tap Upload audio (MP3/OGG) and pick an MP3 or OGG file. Anything else is refused on the spot with MP3 or OGG audio only. On success: Ambient sound added over Visitors get a play pill — it never autoplays. The row then shows a preview play button, the label Ambient track and a Remove link. Paid plans only — Élégante and above. Audio counts against your storage like everything else.
The Image widget
The widget's Image field offers a row of ready-made pictures, Upload your own image for a file from your device, and Choose from Files for something already in your library. A custom picture shows a Custom image chip with a reset link.
When the picture is one of your own files, a Describe image button appears with the price · 0.1 credits. It writes an alt description into your library and fills the widget's Caption. Once a file has a description, the button becomes Use saved description and is free — it applies instantly, on that widget or any other.
| Setting | Where | Type | Values | Default | Plan |
|---|---|---|---|---|---|
| Caption | Image widget panel | Text | Free text, emoji picker attached | Empty | All |
| Fit | Image widget panel | Chips | Cover / contain | Cover | All |
| Focal point (crop) | Image widget panel | 3×3 grid | Top left through bottom right | Centre | All |
| Filter | Image widget panel | Chips | None / grayscale / sepia | None | All |
| Caption position | Image widget panel | Chips | Bottom / top / none | Bottom | All |
| Dark overlay | Image widget panel | Slider | 0 – 80 % | 0 % | All |
| Overlay style | Image widget panel | Chips | Solid / gradient | Solid | All |
| Overlay color | Image widget panel | Colour picker | Any colour | Unset | All |
| Link (optional) | Image widget panel | Text | A web address | Empty | All |
The Gallery widget
The field is labelled Photos (up to 12). Add photos opens the media picker in multi-select and disappears once you reach twelve. Each photo gets its own Caption (optional) field and a remove button.
| Setting | Where | Type | Values | Default | Plan |
|---|---|---|---|---|---|
| Layout | Gallery widget panel | Chips | Grid / carousel / stack | Grid | All |
| Photo fit | Gallery widget panel | Chips | Cover / contain | Cover | All |
| Auto-advance | Gallery widget panel (carousel and stack only) | Toggle | On / off | Off | All |
| Every 5s | Gallery widget panel (only when auto-advance is on) | Slider (the label counts the current value) | 2 – 8 seconds | 5 seconds | All |
| Grayscale photos | Gallery widget panel | Toggle | On / off | Off | All |
| Background color | Gallery widget panel | Colour picker | Any colour | Unset | All |
The AI Composer
- Photos — the Add photos tile opens the media picker, up to 40 pictures, uploaded from your device or picked from your library. The composer never generates imagery: photos you don't supply become empty slots you can fill later.
- Documents — a PDF, a Word
.docx, plain text or Markdown. Up to 3 files totalling 4 MB. The panel says what happens to them: Used once to understand your work, then discarded. Never saved to your Files. They cost you no storage.
Templates
Page templates are files too. Importing one takes a .gridtemplate and replaces your current page — you're asked to confirm first. Exporting writes the template into Files as well as downloading it. If an import would need more space than you have, it stops with Not enough storage to import this template's media.
Questions people ask
Can I upload a file at its original quality?
How much storage have I used?
Why can't I trim my video any more?
I deleted a file and my page broke. Can I undo it?
Where did my video's filter go when I downloaded the clip?
When an upload fails
Every upload runs in three steps, and each one can turn you away for a different reason.
- The app asks for permission — this is where your file type, the file's size and your remaining storage are checked.
- The file is transferred — this is where a lost connection or an unsupported browser bites.
- The app confirms it — the stored file is re-measured, added to your library and charged against your storage. A video's length is re-checked here.
What the messages mean
| Message | What it means | What to do |
|---|---|---|
| Upload failed — check the file type and size. | The Files tab's catch-all. It appears for every failure, including a full library. | Check the format first, then the size, then free up space. |
| This upload would exceed your plan's storage limit. | Your library is full. | Delete files in Files — old exports and templates first — or move up a plan. |
file too large | One file is over your plan's per-file cap. | Shorten a video, or export it at a lower quality. See the caps above. |
unsupported file type | The format isn't one of the accepted image, video or audio types. | Convert it. JPG, PNG, WebP, GIF, MP4, WebM, MOV, MP3 and OGG all work. |
| Videos are capped at 30s on your plan. | Your trim is longer than your plan allows. The number in the message is your own plan's limit — 30 seconds on Novice, higher above it. | Trim shorter, or move up a plan. |
| Sign in to upload video. | You're building without an account. | Create an account — it's what saves your work. |
| Sign in to upload audio. | The same, for ambient sound. | Create an account first. |
Too many requests | You uploaded a lot in quick succession and are briefly limited. | Wait a moment and try again. |
Watch out
file too large or unsupported file type. It's not a bug in your file; it's the raw reason, shown as-is.From the photo editor
- Couldn't read that photo — try again. — Auto couldn't take a copy of your photo. Close and reopen the editor.
unreadable imageorencode failed— the render didn't produce an image. Try a smaller crop or a different photo. The friendlier Couldn't save that edit — try again. is the fallback when the failure carries no message of its own.- Couldn't upload — try again. — the edit rendered but the upload didn't land (profile photo and background).
- Upload failed — the same, for a widget image.
Auto reports its own problems inline under the button rather than as a toast: You're out of credits for now. · That's today's AI limit — it comes back over the next 24 hours. · A moment — you're going fast. · The writer didn't answer — try again in a moment. · Couldn't reach the server — check your connection and try again. · That didn't work — try again in a moment.
From the video editor
- This browser can't encode video — try Chrome or Safari. — your browser has no video recorder. Switch browsers.
- Couldn't read that video file. — the file is damaged or in a container the browser can't open.
- Encoding failed — try a shorter clip or lower quality. — the render ran out of room. Trim shorter or drop a quality step.
- Couldn't play the video for export — tap Save again. — playback stalled at the start of the render. Tapping Save again usually works.
- Encoding produced no data — try a different file. — nothing came out of the recorder.
- Couldn't save that video — try again. — the catch-all.
From the other upload surfaces
| Where | Message |
|---|---|
| Deleting a file | Couldn't delete that file. |
| Loading the library | Couldn't load your files — tap to retry. · Couldn't load your files — try again. |
| Copying a link | Couldn't copy — your browser blocked it. |
| Page background image | Upload failed · Custom background image needs a paid plan. |
| Ambient sound | MP3 or OGG audio only · Page features need a paid plan. |
| Enchantée button image | Couldn't upload that image — try another file. |
| Template import | Not enough storage to import this template's media. |
| AI Composer documents | Each message names the file it refused, then the reason: PDF, Word, plain text and Markdown only. · that would go over 4MB. · 3 documents is the limit. |
If an upload keeps failing and the file is comfortably inside your plan's per-file cap, the likeliest answer is that your library is full — and nothing on screen will say so. Settings A–Z lists every setting in this chapter alongside the rest of the product.
Something here wrong or missing? Email support@enchant.ee.