RECEIPTS · 30 RUNS · HARD NUMBERS
Recolor an Inter-and-blue template and you get the same site in six paint jobs. Visitors clock it in a second and trust it less. Sailop draws a different skeleton first — different DOM, different grid, different interaction logic — then colors it. Proof below: 30 runs, 23 unique palettes, 24 unique font pairs, HTML from 15KB to 27KB. Not a coat of paint.
Same brief (saas-landing, identical content). Output measured for archetype, palette, font pairing, section variants, HTML length. Lower repetition = higher uniqueness.
Each composition picks one variant per section type without repeating WITHIN the page. Across 30 runs, every variant fires multiple times — the picker is not biased toward variant 0.
Patterns the procedural generator and the scanner both ban. If you see them in the output, it's a bug we want to know about.
No mockups. Each request runs the real composePage() once and returns the archetype, palette, fonts and section variants it picked, as JSON. The generator ships with the Sailop CLI, which is not published yet.
Sailop picks structurally distinct section variants — different DOM trees, different grid bones, different layout shapes. Hero variant 0 uses a 2fr/3fr asymmetric grid. Hero variant 1 uses a 12-column grid with H1↔deco overlap. Hero variant 3 uses a polygon clip-path background. These are not the same template with new colors — they are different layouts. We then layer procedural palette/fonts/spacing on top, but those modulate WITHIN a structurally chosen layout.
Roughly 6 hero × 6 features × 4 pricing × 3 nav × 3 footer = 1,296 base structural compositions. Multiply by ~50 procedural palettes and ~40 font pairings: 1,296 × 50 × 40 = 2,592,000 structurally distinct pages. Spacing scales and effect intensities multiply further. The composer ensures no two sections in the same page reuse a layout variant.
No Inter / Roboto / Poppins / Montserrat / DM Sans as default body fonts. No blue 200-290 hue range (the Tailwind blue / purple-blue gradient signature). No three-equal-pricing-cards layout in default pricing. No animate-pulse / animate-fade-up / animate-bounce defaults. No 16px rounded-corner cards. No shadcn-default UI shapes.
Request sailop.com/api/demo-sailop/generate ten times. Each request runs composePage() once on the same brief and returns what it built as JSON: archetype, palette, fonts, the variant picked for each section, and the HTML. Compare them. The generator itself ships with the Sailop CLI, which is not published on npm yet.
The rules and the generator are framework-agnostic, and they are planned to ship as a CLI and an MCP server that any coding agent can call. Neither is published yet. Today, the free web scan at sailop.com/scan ends with an agent brief you can paste into Claude Code, Cursor or any other agent.