Generated Computers
Locals: an Apple Silicon engine that runs local LLMs up to 3x faster. A product of Generated Computers.
Translation pending
See any website at the viewports Safari 27.1 really gives it on iPhone Duo: closed, open, turned and in Split View, with Safari's bars and the crease where they are.
Developer toolsJavaScript · HTMLGitHub @MarigameoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
See your website at the viewports Safari 27.1 really gives it on iPhone Duo: closed, open, turned and in Split View, with Safari's bars and the crease where they are.
Taken from the repository README
Loading the full README.
Read the full README ↗See your website the way Safari 27.1 shows it on iPhone Duo. Closed, open, turned and in Split View, with Safari's bars where they are and the crease drawn in.
Most iPhone Duo previewers divide the screen's pixels by three and call that the viewport. Safari doesn't give your page the whole screen: on the closed phone its controls take a column down the right edge, so your page is 382px wide, not 466. This playground uses the viewports WebKit published for Safari 27.1, so what you see here is the size your CSS actually gets.
| Pose | Your page gets (CSS px) | Scrolled, bars hidden |
|---|---|---|
| Closed | 382 × 580 | 382 × 618 |
| Closed, wide | 594 × 368 | 594 × 406 |
| Open | 951 × 585 | 951 × 620 |
| Open, tall | 669 × 867 | 669 × 902 |
| Split View, each window | 385 × 571 | 385 × 609 |
Source: WebKit Features for Safari 27.1. All of it lives in poses.json.
The fit-iphone-duo skill audits your site in WebKit and hands you a report like this sample →: one card per thing it found, with the crease drawn and the element outlined, sorted into what needs your answer, what your agent will pick, what's a safe fix and what to leave. The sample audits the skill's own test site.
X-Frame-Options or a CSP frame-ancestors, and stay blank here. Run the playground locally next to your site, or use the skill. To allow the hosted playground, send Content-Security-Policy: frame-ancestors 'self' https://marigameo.github.io instead of X-Frame-Options: DENY.localhost stays as typed.No build step and no dependencies.
git clone https://github.com/marigameo/iphone-duo-playground
cd iphone-duo-playground
python3 -m http.server 8765
Open http://localhost:8765. To try your own site with the flags, copy these files into your site's public folder and open /index.html?url=/.
Checks, with Playwright installed somewhere:
PLAYWRIGHT=/path/to/node_modules/playwright node tests/smoke.cjs
./scripts/size.sh
The smoke test reads what the framed page actually receives: every viewport in both bar states, the mid-fold resize, both flag states, and the export.
The fit-iphone-duo skill takes a site from here to fixed. It audits the five viewports and the crease in WebKit, fixes the cause rather than adding a patch layer, and proves the fix. It reads the same poses.json.
Built by Mari with Claude Code. The numbers come from WebKit and Apple. Apple's Human Interface Guidelines for iPhone Duo and its Tech Talks shaped the drawing.
iPhone is a trademark of Apple Inc. This project is not affiliated with or endorsed by Apple.
MIT licensed.