Brand assets
Settings → Branding. Spec: docs/BRANDING_MODEL.md §2 and §7.
Your logo, your icon, the banner across your emails. Upload one file per kind; everything else — favicons, app icons, the picture shown when somebody shares a link — is made from them.
What each one is for
| Kind | What it is | Accepts | Smallest |
|---|---|---|---|
| Logo | Your primary lockup, on light backgrounds | SVG, PNG | 400 px wide |
| Logo on dark | The same lockup for dark backgrounds | SVG, PNG | 400 px wide |
| Icon | A square mark. Every favicon, app icon and avatar comes from this | SVG, PNG | 512 × 512 |
| Favicon | Optional. Overrides the favicon otherwise made from your icon | SVG, PNG, ICO | 32 × 32 |
| Email header | The banner across the top of your emails | PNG, JPG | 1200 × 300 |
| Ticket header | The strip across the top of a ticket, its PDF and the printed card | PNG, JPG | 1200 × 400 |
| Badge header | The strip across the top of a printed badge | PNG, JPG | 1200 × 300 |
| Share image | The picture shown when a link to you is shared | PNG, JPG | 1200 × 630 |
Nothing above 10 MB, whatever the kind. An icon has to be square — a stretched one is visible on every home screen it lands on.
What happens to a file you upload
- It is checked. The type has to be one the kind accepts and the picture has to be large enough. You are told which it was, with the size you sent.
- An SVG is rewritten. Scripts,
foreignObject, event attributes and anything that fetches from another address are removed before the file is stored. What is served is the drawing, not the document you uploaded. - It is stored under a fingerprint of its own contents. Two uploads of the same file are the same file.
- The sizes are generated in the background: 12 icon sizes plus the two a phone launcher can crop, a
.ico, and 200/400/800/1600-pixel-wide copies of a lockup in PNG and WebP.
Replacing one
Upload again. The new file is stored beside the old one and every surface keeps showing the old one until the new set is completely generated — there is no moment where a page asks for a picture that is not there yet.
The set you replaced keeps working for seven more days, then goes. That is not tidiness: an email already in somebody's inbox names the old banner, and a link somebody shared last week is still in a chat app's cache.
Removing one
Removing a file falls back rather than leaving a hole:
- No logo on dark? Your light logo is used on dark cards.
- No favicon? One is made from your icon.
- No ticket or badge header? Your email header is used.
- No share image? One is composed from your icon on your primary colour.
Storage
Brand files count toward your plan's storage, the same way files uploaded on a form do — the original and every size generated from it. Settings → Usage shows what is used. Removing an asset gives the space back.
Where the files are served from
Each file has an address containing its fingerprint, so browsers may cache it forever and a replacement is always a new address. They are public — a logo on a public page and a favicon a browser asks for before anything else — but only ever on your own organization's address.
What is generated from them
Uploading a file, or changing a colour, regenerates everything that is made out of them:
| Made | From |
|---|---|
Favicons at 16, 32 and 48, and the .ico a browser asks for |
Your favicon, or your icon |
| Apple touch icon (180) | Your icon |
| App icons at 192 and 512, plain and maskable | Your icon |
| Your public web manifest | Your product name, your primary colour, those app icons |
| The scanner's manifest (Growth and above) | Your scanner app name, your dark background, those app icons |
| The picture shown when a link to you is shared | Your uploaded share image, or your icon and product name composed on your primary colour |
| The email banner | Your uploaded banner, or your dark logo on a band of your primary colour |
| Apple Wallet's icon, logo and strip | Your icon, dark logo and ticket header |
The whole set is written before anything links to it, so there is never a moment where a page asks for a picture that is not there yet. An organization that has uploaded nothing still gets a complete set — with EntryWick's own mark on the icons, and nothing of ours anywhere a lockup would sit inside your brand.
Each generated file's address contains a fingerprint of everything it was made from, so browsers cache them forever. The two manifests and the wallet files cannot — a browser fetches a manifest by the name it was already given — so those keep a fixed address and a one-hour cache.