Dribbble shot image: 1600 px wide, 10 MB, PNG JPG or GIF
Dribbble recommends images at least 1600 px wide and takes PNG, JPG or GIF up to 10MB. Sizes Sume can generate at 1600 wide, and a script to check the file.

Dribbble takes PNG, JPG or GIF images up to 10MB and recommends a minimum width of 1600 pixels for images, GIFs and videos. There is no required ratio or height any more. Sume's GPT Image 2.5 can generate at 1600 wide in several shapes, but it does not list GIF as an output format, so a GIF has to come from elsewhere.
The requirements
The page is the Dribbble Help Center article on creating shots, dated April 10, 2025. It also notes the thumbnail is chosen later in a Final Touches step, so the first block does not have to be the thumbnail.
| Rule | Value |
|---|---|
| Recommended minimum width | 1600 pixels |
| Ratio and height | no fixed limit |
| Image types | png, jpg, gif |
| Maximum image size | 10MB |
Sizes at 1600 wide or more
Both edges must be multiples of 16, the longest edge at most 3840, the ratio at most 3:1, and the pixel count between 655,360 and 8,294,400. All four shapes below pass. The last column is the raw 8-bit RGB size, width times height times 3 bytes, a rough ceiling before compression.
| Size | Shape | Pixels | Raw RGB bytes |
|---|---|---|---|
| 1600x1200 | 4:3 | 1,920,000 | 5,760,000 |
| 1600x896 | about 16:9 (1.786) | 1,433,600 | 4,300,800 |
| 1600x1600 | 1:1 | 2,560,000 | 7,680,000 |
| 2048x1536 | 4:3 | 3,145,728 | 9,437,184 |
Request it
Ask for output_format png or jpeg on POST /v1/images with model openai/gpt-image-2.5 and image_size set to the size. The docs list png, jpeg, webp and svg, so a GIF is out of scope.
Check the file
import asyncio, os
from PIL import Image
LIMIT = 10_000_000
async def main():
path = "shot.png"
img = Image.open(path)
size = os.path.getsize(path)
print(img.size, size)
assert img.width >= 1600, "under the recommended 1600 px width"
assert size <= LIMIT, "over the 10MB reading"
asyncio.run(main())Mistakes
- Treating 1600 as a hard limit. Dribbble says recommend, not require.
- Assuming the 10MB reading. The page does not define MB, so the script uses 10,000,000.
- Asking Sume for a GIF output.
Sources
Related posts
More in Use cases
- eBay AI listing photos: the seller owns accuracy
eBay's User Agreement makes sellers responsible for listing accuracy, including generative AI content. Generate 1:1 stills from your real photo and check them.
- E-commerce product video cost per SKU: cutout plus a 5-second clip
A cutout at $0.0225 plus a 5-second 720p Seedance 2.5 clip is $2.9115 per SKU on Sume. For 100 SKUs that is $291.15. Arithmetic inside.
- ElevenLabs free-plan music: the ElevenMusic credit rule for ads
Free ElevenLabs users may use tracks commercially only with an ElevenMusic credit; Pro gets rights with the plan. What that means for a paid video ad.
- Estate sale preview video from mixed portrait and landscape photos
Phone photos of estate sale lots come in both orientations. Timeline's fit modes (cover, contain, stretch, blur) decide whether a lot is cropped or kept whole.
Written by Sume