Testing matrix
PanoPosts exports three formats. Use this matrix to verify each on its target platforms — what file to upload, which gates the platform enforces, and what to look for once the post is live.
| Platform | Mode | Output | Gates | Verify | Status |
|---|---|---|---|---|---|
| Facebook (web) | FB | Single JPEG + GPano XMP + EXIF | HFOV ≥100°, aspect ≥2.05:1 | Renders as drag/swipe pano, not flat | ✓ Verified |
| Facebook (iOS) | FB | Single JPEG + GPano XMP + EXIF | HFOV ≥100°, aspect ≥2.05:1 | Tilt-to-pan works | ✓ Verified |
| Facebook (Android) | FB | Single JPEG + GPano XMP + EXIF | HFOV ≥100°, aspect ≥2.05:1 | Tilt-to-pan works | ◐ Likely |
| Instagram feed (mobile) | IG | .zip of slides (1:1 or 4:5) | none — flat slides | Upload slide_01..NN in order; seams invisible when swiping | ✓ Verified |
| Instagram feed (web) | IG | .zip of slides (1:1 or 4:5) | none — flat slides | Same as mobile | ◐ Likely |
| Google Photos (web) | GPano | Single JPEG + GPano XMP | Valid GPano tags, equirectangular | Auto-opens immersive viewer | ✓ Verified |
| Google Photos (mobile) | GPano | Single JPEG + GPano XMP | Valid GPano tags, equirectangular | Tilt-to-pan works | ✓ Verified |
| Flickr | GPano | Single JPEG + GPano XMP | Valid GPano tags | "360°" badge appears on photo page | ◐ Likely |
| Kuula | GPano | Single JPEG + GPano XMP | full-360 preferred | Loads as 360° scene | ◐ Likely |
| Meta Quest browser | GPano | Single JPEG + GPano XMP | full-360 preferred | Opens in immersive mode | ? Untested |
| Twitter / X | — | not supported | — | No native pano viewer | ✗ Unsupported |
| — | not supported | — | No native pano viewer | ✗ Unsupported | |
| TikTok | — | not supported | — | No native pano viewer | ✗ Unsupported |
Facebook (web)
✓ VerifiedFB
- Output
- Single JPEG + GPano XMP + EXIF
- Gates
- HFOV ≥100°, aspect ≥2.05:1
- Verify
- Renders as drag/swipe pano, not flat
Facebook (iOS)
✓ VerifiedFB
- Output
- Single JPEG + GPano XMP + EXIF
- Gates
- HFOV ≥100°, aspect ≥2.05:1
- Verify
- Tilt-to-pan works
Facebook (Android)
◐ LikelyFB
- Output
- Single JPEG + GPano XMP + EXIF
- Gates
- HFOV ≥100°, aspect ≥2.05:1
- Verify
- Tilt-to-pan works
Instagram feed (mobile)
✓ VerifiedIG
- Output
- .zip of slides (1:1 or 4:5)
- Gates
- none — flat slides
- Verify
- Upload slide_01..NN in order; seams invisible when swiping
Instagram feed (web)
◐ LikelyIG
- Output
- .zip of slides (1:1 or 4:5)
- Gates
- none — flat slides
- Verify
- Same as mobile
Google Photos (web)
✓ VerifiedGPano
- Output
- Single JPEG + GPano XMP
- Gates
- Valid GPano tags, equirectangular
- Verify
- Auto-opens immersive viewer
Google Photos (mobile)
✓ VerifiedGPano
- Output
- Single JPEG + GPano XMP
- Gates
- Valid GPano tags, equirectangular
- Verify
- Tilt-to-pan works
Flickr
◐ LikelyGPano
- Output
- Single JPEG + GPano XMP
- Gates
- Valid GPano tags
- Verify
- "360°" badge appears on photo page
Kuula
◐ LikelyGPano
- Output
- Single JPEG + GPano XMP
- Gates
- full-360 preferred
- Verify
- Loads as 360° scene
Meta Quest browser
? UntestedGPano
- Output
- Single JPEG + GPano XMP
- Gates
- full-360 preferred
- Verify
- Opens in immersive mode
Twitter / X
✗ Unsupported—
- Output
- not supported
- Gates
- —
- Verify
- No native pano viewer
LinkedIn
✗ Unsupported—
- Output
- not supported
- Gates
- —
- Verify
- No native pano viewer
TikTok
✗ Unsupported—
- Output
- not supported
- Gates
- —
- Verify
- No native pano viewer
Required gates explained
Facebook HFOV gate
HFOV ≥ 100°
Below this declared horizontal field of view, Facebook serves a flat image instead of the swipe viewer.
Facebook aspect gate
aspect ≥ 2.05:1
Independent pixel-shape check. PanoPosts can vertical-crop to clear this without altering the captured arc.
Instagram slide aspects
1:1 or 4:5
Carousel slides must match Instagram's allowed feed ratios. PanoPosts slices to whichever you pick.
Supported input formats
PanoPosts decodes the source in your browser and re-encodes the export as JPEG. RAW formats (CR2, NEF, ARW, DNG) are not supported — convert them first.
| Format | Extensions | Notes |
|---|---|---|
| JPEG | .jpg, .jpeg | Pass-through when no scaling/quality change |
| PNG | .png | Re-encoded to JPEG |
| WebP | .webp | Re-encoded to JPEG |
| AVIF | .avif | Re-encoded to JPEG (Safari 16+) |
| GIF | .gif | First frame only |
| BMP | .bmp | Re-encoded to JPEG |
| HEIC / HEIF | .heic, .heif | iPhone photos — native decode when available, fallback decoder for newer HEIC variants. If a rare HEIC variant still fails, export/share from Photos as JPEG. |
How to test
- • Export from /edit in the relevant mode (Facebook / Instagram / GPano).
- • Open the JPEG in an EXIF viewer and confirm Make=
PanoPosts, Model=Multi-platform, and the GPano XMP block is present (FB / GPano modes). - • Upload to the target platform from the device listed in the row (web vs iOS vs Android can differ).
- • Run the row's "Verify" check — does the immersive viewer kick in?
- • Screenshot the rendered result for your records.
- • If a row is currently Likely or Untested, promoting it to Verified means updating this page.