Build me a landing page for a Sydney dental practice. Hero, services grid, testimonials, booking CTA.
Generating your website…
- Choosing a theme
- Generating layout
- Writing copy
- Selecting images
- Publishing
Your site is ready. your-site-7f3a.10web.io
10Web's AI builder takes a sentence and returns a working WordPress site. The output is opaque, the markup is unreadable, and the loop is owned by 10Web. Atlas takes the same intent, stores it as a JSON manifest in your repository, and renders it server-side. One is a black box. The other is a document.
§ 02 / The prompt loop
The 10Web UX is a chat box. You describe the site, it builds the site, and the build happens somewhere you cannot see. The transcript below is a faithful reconstruction of the exchange.
Build me a landing page for a Sydney dental practice. Hero, services grid, testimonials, booking CTA.
Generating your website…
Your site is ready. your-site-7f3a.10web.io
// content/landings/sydney-dental.atlas.json
{
"layout": "landing",
"sections": [
{ "kind": "hero",
"heading": "Gentle dentistry in Surry Hills." },
{ "kind": "services",
"items": ["check-up", "clean", "whitening"] },
{ "kind": "testimonials",
"from": "reviews/sydney-dental.json" },
{ "kind": "cta-booking",
"endpoint": "/api/book" }
]
} The same intent, expressed as a file you can read, diff, and edit. No chat history. No black box.
§ 03 / What 10Web returns
When the loop closes, 10Web hands you a finished WordPress site. The markup beneath it is generated by Elementor, wrapped in 10Web's hosting stack. This is what your homepage actually looks like in view-source.
<section data-elementor-type="wp-page">
<div class="elementor-section elementor-top-section elementor-element elementor-element-1a2b3c4" data-id="1a2b3c4">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5d6e7f8">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-9a0b1c2 elementor-widget elementor-widget-heading">
<div class="elementor-widget-container">
<h1 class="elementor-heading-title elementor-size-default">Gentle dentistry in Surry Hills.</h1>
</div>
</div>
</div>
</div>
</div>
</div>
</section> § 04 / The things you do not get
§ 05 / The structural alternative
Atlas takes the same kind of intent — "Sydney dental practice, services, testimonials, booking" — and stores it as a JSON manifest in your repository. The block renders it server-side every request. The same manifest produces the same bytes every time.
{
"kind": "hero",
"heading": "Gentle dentistry in Surry Hills.",
"lede": "Family-run, ten years on Crown St.",
"cta": { "label": "Book online",
"href": "/book" }
} <section class="hero">
<h1>Gentle dentistry in Surry Hills.</h1>
<p>Family-run, ten years on Crown St.</p>
<a href="/book">Book online</a>
</section> A prompt-loop hands you a site. A manifest hands you a structure.