Can Gemini Build a Newsletter That Works on Your Phone?
It took one targeted revision to restore the publication name and raise two 14-pixel lines.One Revision, Three CorrectionsThe first newsletter looked finished on my laptop and perfectly calm on my phone. It didn’t show its own publication name, and two small lines fell below my…
It took one targeted revision to restore the publication name and raise two 14-pixel lines.One Revision, Three CorrectionsThe first newsletter looked finished on my laptop and perfectly calm on my phone. It didn’t show its own publication name, and two small lines fell below my 16-pixel floor.That’s the danger of judging an AI-made page by its overall vibe. I gave Gemini Canvas one frozen brief, saved two HTML files, checked both viewports, and allowed one targeted revision. Below are the exact prompts, four viewport checks, failure, timing, and final decision.Google’s current Canvas help page says Canvas can create and edit code and web pages. It doesn’t promise responsive quality or content retention.The opening lines of the exact English newsletter prompt in Gemini Canvas.Freeze the Newsletter Before Opening CanvasI froze the newsletter before Canvas had a chance to improvise. I used a fictional publication called *Small Signals*. I locked the copy, CTA target, two viewports, and three minimums: a 680-pixel reading column, 16-pixel body copy, and a 44-by-44-pixel CTA target.This wasn’t an email-client test. It was a browser-rendered web newsletter.【The fixed brief】Here is the exact first prompt:Use Canvas to build a web newsletter from the frozen brief below. Return one complete single-file HTML document with all CSS inline or inside a single element.Preserve every reader-facing string exactly as written:Publication name: Small SignalsIssue label: Issue 12 · September 2026Headline: Three checks before you publish AI-assisted workIntro: A polished draft can still hide a missing source, a changed number, or an unclear next step.Story 1 heading: Save the sourceStory 1 body: Keep the page, date, and exact passage beside every factual claim.Story 2 heading: Freeze the numbersStory 2 body: Write the expected value down before asking a tool to summarize or transform it.Story 3 heading: Name the human decisionStory 3 body: State what a person must verify before the draft can move forward.Checklist heading: The 30-second pre-publish checkChecklist items: Source saved; Numbers matched; Human decision namedCTA label: Open the checklistCTA target: #checklistFooter: No tracking pixels. No personal data.Production requirements:- Use semantic headings, three story sections, one checklist section with id="checklist", one CTA link with href="#checklist", and the exact footer.- Use no external images, fonts, scripts, trackers, or assets.- At 1440 × 900 CSS pixels, keep the readable content column no wider than 680 CSS pixels.- At 390 × 844 CSS pixels, allow no horizontal scrolling and stack all three story sections vertically.- Keep computed body copy at least 16 CSS pixels at both widths.- Make the CTA's visible target at least 44 × 44 CSS pixels.- Keep every frozen string and the CTA target unchanged. Styling may change; facts and wording may not.Create the page in Canvas and provide the full HTML document without commentary before or after the code.Build Once, Then Look at the PhoneThe first version got the structure right and still failed the brief. Canvas returned a downloadable single-file HTML page. No cleanup first. I opened the same output at both frozen widths.The first version got the structure right. At 390 pixels, page and viewport widths measured 390 pixels. The stories stacked vertically. The CTA measured 189.61 × 68 pixels, its anchor worked, and the desktop content column was 680 pixels. The file had no external dependencies.But it missed two frozen checks. Small Signals appeared in the document title, not on the visible page. The issue label and footer both computed to 14 pixels at both widths.【The measured failure】The first newsletter version on a 390-pixel viewport without a visible publication name.A polished page can still fail a frozen brief.One Revision Is Enough to Expose the Control ProblemThe repair prompt named two failures and no aesthetic goal. I told Canvas to preserve everything that already passed:Revise the existing Canvas HTML. Fix only these two failed checks from the first audit:1. The publication name `Small Signals` is absent from the rendered page body. Add that exact frozen string once as visible text in the header.2. The issue label `Issue 12 · September 2026` and footer `No tracking pixels. No personal data.` both compute to 14 CSS pixels at 1440 × 900 and 390 × 844. Raise both reader-facing, non-heading text elements to at least 16 CSS pixels.Keep every other frozen string exactly unchanged, keep the CTA label `Open the checklist` and href="#checklist" unchanged, and preserve all passing layout and accessibility behavior. Do not redesign the page or add content. Return the complete revised single-file HTML document.The revision took 69 seconds. Its file diff was unusually clean: two font declarations changed from 14 to 16 pixels, and one visible Small Signals line was added to the header. Three changes. No redesign.So I repeated both viewport checks. Version two kept the 390-pixel page free of overflow, preserved the vertical stories and anchor, held the 680-pixel content width, and kept the same CTA dimensions. Every non-heading line now met the 16-pixel minimum. The publication name appeared once.The revised newsletter on a 390-pixel viewport with Small Signals visible above the issue label.Two interactions do not prove that Canvas will preserve every future brief. They do show why a targeted repair prompt beats “make it better”: the second output can be checked against a narrow diff.The existing Pro entitlement covered both interactions. Incremental spend was USD 0.00. From the first prompt through the final audit, the run took about 11 minutes, including roughly eight minutes of inspection. There were no retries, quota warnings, or generation errors.Ship, Revise, or RebuildMy decision for this output is to revise inside Canvas. Version one wasn’t ready because it failed two checks. Version two passed without a regression. I’d ship that revised file for this narrow web-page use case, with the raw HTML and audit notes beside it.Here is the reusable Mobile Newsletter QA Card:Is every frozen string visible once and unchanged?Does the CTA keep its exact label and destination?Does page width stay within 390 CSS pixels?Do all content sections stack in a readable order?Is every non-heading reader line at least 16 CSS pixels?Is the CTA at least 44 × 44 CSS pixels?Is the desktop reading column no wider than 680 CSS pixels?Does the file avoid external assets, scripts, fonts, and trackers?Did the revision fix only the named defect without breaking a passed check?If a repair rewrites frozen copy or breaks a passed check, rebuild outside Canvas. If V1 fails a measurable item and the V2 diff stays narrow, revise inside Canvas. If all nine rows pass, ship the saved file, not its polished first impression.So before calling any AI-generated page mobile-ready, open it at 390 CSS pixels and measure it.This story is published under the Generative AI publication. Connect with us on LinkedIn and follow Zeniteq to stay in the loop with the latest AI stories. Let’s shape the future of AI together!Can Gemini Build a Newsletter That Works on Your Phone? was originally published in Generative AI on Medium, where people are continuing the conversation by highlighting and responding to this story.Source: Generative AI Pub — Published — Category: Image AI