If you've ever shipped an app to Google Play, you know the feature graphic dance: open Figma, make a 1024×500 canvas, flatten it, export, upload, get rejected because Play says "no transparency," re-export, upload again, then repeat the whole thing for the icon, the phone screenshots, and the tablet screenshots.
I went looking for a way to skip most of that and landed on Resizo's Feature Graphic Maker — a free, no-signup, browser-only tool built specifically around Play Store and App Store asset requirements. I want to walk through what it actually does, because a few of the design decisions are genuinely clever from an engineering standpoint.
The problem it's solving
A Google Play feature graphic has a very specific, very unforgiving spec: 1024×500 px, 24-bit PNG or JPEG, no alpha channel, under 15 MB. That "no alpha channel" part is the silent killer. Export a PNG from Figma, Illustrator, Photoshop, or Canva and it keeps an alpha channel even when every pixel is fully opaque. The file looks fine locally. Play rejects it on upload. You won't even get a clear error pointing at transparency — you just get a rejection and have to go figure out why.
Resizo's approach to this is structural rather than a warning banner: the editor composites a background layer — solid, gradient, or photo — underneath everything else before it draws anything, and the export renders that whole stack onto an opaque canvas. There's no "none" option for the background, on purpose. There's literally no path through the editor that produces a transparent PNG, so a straight export is guaranteed to be something Play will accept on that front.
What's actually in the editor
It's not just a feature-graphic-sized canvas. The canvas picker covers the entire asset list a Play/App Store submission needs:
- Google Play — feature graphic (1024×500), app icon (512×512), phone screenshot (1080×1920), tablet screenshot (1920×1080)
- Apple App Store — iPhone 6.7" (1290×2796), iPad 12.9" (2048×2732)
- Social & web — OG image (1200×630), YouTube thumbnail (1280×720), YouTube channel art (2560×1440), X/Twitter header (1500×500), LinkedIn banner (1584×396), Facebook cover (820×312), Instagram post (1080×1080), Instagram portrait (1080×1350), blog hero (1600×900)
- Custom — any size up to 8000px
But the canvas picker goes further than that — it also breaks out a dedicated preset for every individual device screen, not just a generic "iPhone" or "Android" bucket:
Apple device screens:
- iPhone 16 Pro Max — 1320×2868
- iPhone 16 Pro — 1206×2622
- iPhone 16 Plus — 1290×2796
- iPhone 16 / 15 / 14 — 1179×2556
- iPhone 13 / 12 — 1170×2532
- iPhone SE (3rd gen) — 750×1334
- iPad Pro 13" — 2064×2752
Android device screens:
- Pixel 9 Pro XL — 1344×2992
- Pixel 9 Pro — 1280×2856
- Pixel 9 — 1080×2424
- Pixel 8a — 1080×2400
- Galaxy S24 Ultra — 1440×3120
- Galaxy S24 / A55 — 1080×2340
- Galaxy Z Fold 6 (open) — 1856×2160
- OnePlus 12 — 1440×3168
- Xiaomi 14 — 1200×2670
- Nothing Phone (2) — 1080×2412
- Android phone (16:9) — 1080×1920
- Android tablet — 1600×2560
That's on top of the 22 device frames used for mockups (covered below) — these entries are canvas presets sized to a specific phone's actual screen resolution, so if you're prepping a raw screenshot for a specific device rather than mocking one up inside a frame, you don't have to go look up the resolution yourself. Switching between any of these presets doesn't reset your work — that's because of how the templates are built.
The part I actually found interesting: fractional templates
Most "template" systems in design tools are just pre-made images at a fixed size. Resizo's templates are described as fractions of the canvas — a headline positioned at 6% from the left, 19% down, sized at 18.5% of canvas height, for example. That means the same "Hero left" template renders as a landscape banner on the 1024×500 feature graphic and re-solves into a sane portrait layout the moment you switch the canvas to a 1080×1920 screenshot — same text, same screenshot, no manual re-positioning.
You can save your own layout the same way: Save current as template normalizes whatever's on your canvas against the size it was made on, so it rescales cleanly onto every other preset. It deliberately doesn't store the actual photos, only the geometry — smaller storage footprint, and it means applying a saved template re-uses whatever images are already sitting on your canvas instead of yanking in stale ones.
22 real device frames
For screenshot mockups, there are 22 device frames — iPhone 16 Pro Max down to SE 3rd gen, iPad Pro/Air/mini, Pixel 9 series, Galaxy S24/Z Fold 6, OnePlus 12, Xiaomi 14, Nothing Phone (2), plus generic Android phone/tablet. Each one carries the device's actual screen resolution, corner radius, bezel width, and camera cutout (Dynamic Island, notch, punch-hole, or physical home button), and the frame height is always solved from width so you can't accidentally stretch a phone into a weird aspect ratio.
Pick a device from the frame list and it can also set your canvas to that screen's exact resolution — which happens to be what the App/Play stores expect you to upload.
Design guidance baked into the docs (worth reading even if you don't use the tool)
A few rules from the page are worth internalizing regardless of what tool you use:
- Safe area matters. Play letterboxes or crops the graphic depending on where it's shown, and composites a large circular play button over the center if you attach a promo video. Keep critical content inside the middle 824×400.
- Three or four words, set large. At the size Play actually renders this on a phone (often ~360px wide), body copy just disappears. Treat it like a poster, not a webpage.
- Contrast over decoration. Aim for at least 4.5:1 contrast between headline and background, and check it by zooming out — if it's illegible at 25%, it won't survive the store.
Privacy note that's actually relevant for indie devs
If you're working on an unreleased app, you probably don't want its UI touching a third-party server. Everything here — the editor and the PNG/JPG/WebP export — runs client-side via the HTML5 Canvas API. Nothing is uploaded. Layout state autosaves to your browser's local storage (large embedded photos can get dropped from autosave if you blow past the storage quota, but the layout itself persists).
Quick reference: common rejection causes
| Cause | Fix |
|---|---|
| PNG has an alpha channel | Flatten to opaque / export 24-bit |
| Wrong dimensions | Must be exactly 1024×500 — Play won't downscale for you |
| File over 15 MB | Switch export to JPG, or run it through a PNG compressor |
| Store badges in the artwork | Remove — Google reserves those |
| Ratings/download counts shown | Banned by metadata policy, even if real |
| Text cropped at the edges | Not a hard rejection, but fails quality review — respect the safe area |
Should you use it?
If you're an indie dev who just needs a compliant 1024×500 banner, a 512×512 icon, and a matching screenshot set without spinning up Figma or paying for a design subscription, it's a solid fit — especially because the whole listing (banner, icon, phone/tablet screenshots, even the Apple sizes) comes from one canvas picker instead of five separate exports. If you need pixel-level custom illustration work, you'll still want a full design tool — this is squarely optimized for "get a compliant, decent-looking listing shipped today."
🔗 Try it here — free, no signup, no watermark.
Feature Graphic Generator
Have you hit the "alpha channel" rejection before? Curious how other devs handle their Play Store asset pipeline — drop your workflow in the comments.
Top comments (0)