I tested an AI design tool on her listing brochure. It gave back a duplicated heading, a price you could barely read, and content that had simply disappeared. That is what happens when a model decides the layout.
- differing pixels between the editable page and the PDF, across 9 pages at 150 dpi
- 0
- smaller embedded fonts, 1,907 KB down to 219 KB
- 89%
- templates: one-pager, brochure, buyer and seller guides
- 4
From the project's test suites and architecture log, August and September 2026.
Solo residential real-estate agent, Aug to Sep 2026
Watch it run.
Read the narration
Maaz tested an AI design tool on a real-estate agent's listing brochure. It duplicated a heading and lost content. So in this system, the model only fills fields and never decides the layout.
Four listing templates share one brand module: a one-pager, a brochure, and buyer and seller guides. Layout lives in code, and content lives in fields.
Every document also builds as an editable page from the same layout code. Click any text, like the price, to change it.
Click a photo to swap it, and crop it to fit its frame.
Saving a PDF first checks that nothing overflowed the page.
The page forces exact colour, because Chrome's background-graphics setting is off by default and washes out coloured bands. Zero margins remove the URL and date stamps.
A pixel diff proves the editable page and the PDF are identical: zero differing pixels across nine pages at 150 DPI.
The handover is built to run in Claude Code. Its CLAUDE.md stops Claude from regenerating layouts, and a preflight check names any missing file in plain English.
Finished on 1 September 2026, the system lets her change addresses, prices and photos herself, and the layout cannot drift. It is verified on Windows Chromium, and a pass on her Mac is the one open check.
Before the build.
She wanted branded one-pagers, brochures and buyer and seller guides without a designer on call.
Fixed PDFs were too rigid for how she works: she wanted to change an address and a price herself and resend. She is not technical, and she had been burned before by an automation that stopped running without telling her.
The rule that keeps a document from looking AI-made
The model never decides layout. It only fills fields.
It is the whole difference between the failed test above and the four templates below.
What I built.
One Python layout module renders both the editable page and the PDF, and a pixel diff proves they match.
Four parts, and the third one is the part nobody ever sees.
- Layout in code, content in fields
- An editable mode from the same code
- Print-safe by construction
- A handover run by Claude Code
What is true today.
- Finished on 1 September 2026: four brand-locked templates and a gallery page, editable in Chrome, with pixel-identical PDF output.
- She can change addresses, prices and photos herself, and the layout cannot drift.
Still open
- Verified on Windows Chromium. A pass on her Mac is the one open check.
Updated
The details, when you need them.
Layout in code, content in fields
Four templates built in Python on a shared brand module. Layout in code, content in fields, is most of the trick to documents that do not look AI-made.
An editable mode from the same code
Every document also builds as an editable HTML page from the same layout code. Click any text to change it, click a photo to swap and crop it, then save a PDF. The save first checks that nothing overflowed the page.
Print-safe by construction
Chrome's background-graphics setting is off by default and silently washes out coloured bands, so the pages force exact colour and that can never happen. Zero page margins remove the URL and date stamps.
A handover run by Claude Code
The package is built to run in Claude Code on her own seat: a CLAUDE.md that stops Claude from regenerating layouts, a preferences file it learns from, a preflight check, and plain-English guides. Every failure I could foresee becomes a sentence telling her what to fix, never a stack trace.
- On demand, on her own machine
- Built to run in Claude Code on her seat
- No path that regenerates the layout
build-listing-document
Preflight the folder
names any missing file in plain English
Load the listing fields
address, price, photos, copy
Render with the brand module
layout fixed in code
Build the editable page
same layout code as the PDF
Check for overflow
blocks the save if text spills
Print to PDF in headless Chromium
exact colour, zero margins
Save the PDF and an editable copy
Layout never leaves the code
What happens when it fails?
- I tested the zip that ships, not the repo: extracting the first package to a clean folder showed it had silently left out the brand module.
- Pixel-diff tests prove the editable page and the PDF are identical, so a change to one can never quietly diverge from the other.
- The stress suite also blocks confidential or refusal language from ever reaching a client file.
- The renderer looks for Chrome, Edge or Chromium on macOS, Windows and Linux, and says what to install if it finds none.
What I could not show you
- Her brand, her listings and her clients are not shown, and no real document from the system appears on this page: the walkthrough recreates the templates with a fictional brand.
- The pixel-diff figure comes from the project's own test suite, which she can re-run herself on her own machine.
Measurements and project details
- checks in the stress suite, all green
- 33
- renders in the edit-survival suite, all green
- 36
- Client
- Solo residential real-estate agent
- Industry
- Real estate
- Region
- United States
- Timeline
- Aug to Sep 2026
- Role
- Document system design, build and Claude Code handover
Stack
- Python
- HTML and CSS
- Headless Chromium
- fontTools
- PyMuPDF
- NumPy
- Claude Code