Two correct sizes, not one
There isn't a single "Instagram post size." There are two, and the difference is shape, not quality: 1080 × 1080 (square, 1:1) and 1080 × 1350 (portrait, 4:5). Both display at full resolution in the feed. Neither is a compressed or secondary version of the other — they're two different aspect ratios that both happen to be correct.
The practical difference is screen space. A 4:5 portrait post occupies noticeably more vertical height in someone's feed than a 1:1 square from the same account, which is the entire reason many accounts default to portrait — it simply gets seen for longer as someone scrolls. Square still has its place: product shots, quote cards, and anything built around a grid of uniform tiles usually look more deliberate as a square.
What the profile grid preview changes (and doesn't)
Instagram's profile grid shows a shorter preview crop of tall posts than the feed does. This affects how a 1080×1350 post looks in the grid thumbnail only — the full 4:5 image is exactly what displays in the feed and in the post itself when someone taps it. If you want a portrait post to also read cleanly as a grid tile, keep the subject in the middle two-thirds of the frame rather than right at the top or bottom edge, and both views will look intentional.
Why a focal point beats a centred crop
Most photos aren't already square or 4:5, so getting to either size means cropping something. A centred crop works fine when the subject is already in the middle of the frame, and fails the moment it isn't — a person standing to one side, a product placed off-centre for the original shot, gets sliced awkwardly out of the result.
Dragging the focal point onto the part of the photo that actually matters — a face, a product, a specific detail — fixes that in one step. Both the square and portrait crops are built around that point instead of the image's geometric centre, and if the point sits close to an edge, the crop slides inward rather than running off the photo.
Because both sizes come from the same source and the same focal point, you can preview one, adjust the focal point until it looks right, then switch to the other size and check it still holds up — before downloading either.
Start with a large source photo
Instagram re-compresses every image down to its own display size regardless of what you upload, so a 4000px photo and a 1080px photo of the same crop look identical once posted. What a larger source does help is the crop itself: more resolution gives the focal-point crop room to work with before detail starts to soften, so it's worth starting from the largest version of a photo you have rather than a pre-shrunk copy.
Batching several posts
If you're preparing more than one image at a time — a carousel, or a batch of posts for the week — export each one with its focal point set individually rather than reusing the same crop position across different photos. A focal point that's correct for a face in one photo will usually be wrong for a product shot in the next.
Output is JPEG at high quality, which is what Instagram re-encodes everything to anyway. Everything runs in your browser using the canvas API — the photo is never uploaded to a server, there's no sign-up, and no file size limit beyond what your own device can handle.