@bot Redesign https://\[your-existing-landing-page\].com. Keep the content and brand. Use the attached image as a reference for the Features and Use Cases sections.

title, h1-h3, img. The structure parser scans section and article blocks, then groups headings, paragraphs, repeated cards, CTA links, and imagesLoading editor...
{
"finalUrl": "<https://example.com>",
"title": "AskDoc | AI assistants from company knowledge",
"headings": [
{
"level": 1,
"text": "Build AI assistants from your company knowledge"
},
...
],
"importantLinks": [
{
"text": "Create your first bot",
"url": "..."
},
...
],
"sections": [
{
"kind": "hero",
"order": 0,
"heading": "Build AI assistants from your company knowledge",
"supportingCopy": "Upload docs, guides, policies, and playbooks, then publish helpful assistants for customers, teams, and workflows."
},
{
"kind": "use-cases",
"order": 2,
"heading": "Put your knowledge where the questions happen",
"items": [
{ "title": "Customer support" },
{ "title": "Website conversion" },
{ "title": "Internal knowledge" }
]
},
...
],
"branding": {
"colorScheme": "light",
"roles": {
"primary": { "value": "#1d867a" },
"accent": { "value": "#f6a523" },
"background": { "value": "#f9fafb" }
}
}
}1440 × 1000;390 × 844.Loading editor...
import { chromium, type Browser } from "playwright";
async function captureViewport(
browser: Browser,
url: string,
viewport: { width: number; height: number },
) {
const context = await browser.newContext({
viewport,
acceptDownloads: false,
permissions: [],
serviceWorkers: "block",
});
try {
const page = await context.newPage();
await page.goto(url, { waitUntil: "domcontentloaded" });
await page.evaluate(async () => {
await document.fonts.ready;
});
return {
sections: await readSections(page),
screenshot: await page.screenshot({ fullPage: true }),
};
} finally {
await context.close();
}
}
async function capturePage(url: string) {
const browser = await chromium.launch({ headless: true });
try {
return {
desktop: await captureViewport(
browser,
url,
{ width: 1440, height: 1000 },
),
mobile: await captureViewport(
browser,
url,
{ width: 390, height: 844 },
),
};
} finally {
await browser.close();
}
}
const captures = await capturePage(acceptedUrl);readSections runs in the page through Playwright. It reads each section's position and a small set of computed styles. The project runs it at both viewport sizes, matches the sections, and adds the result to the static snapshot.Loading editor...
import type { Page } from "playwright";
async function readSections(page: Page) {
return await page.locator("main section").evaluateAll((sections) =>
sections.slice(0, 14).map((section, order) => {
const box = section.getBoundingClientRect();
const style = getComputedStyle(section);
return {
order,
heading:
section.querySelector("h1, h2, h3")?.textContent?.trim() ?? null,
boundingBox: {
x: Math.round(box.x),
y: Math.round(box.y + window.scrollY),
width: Math.round(box.width),
height: Math.round(box.height),
},
styles: {
display: style.display,
backgroundColor: style.backgroundColor,
color: style.color,
fontFamily: style.fontFamily,
},
};
}),
);
}Loading editor...
{
"designVersion": 1,
"captureMode": "rendered",
"viewports": [
{
"name": "desktop",
"width": 1440,
"height": 1000,
"documentHeight": 4347
},
{
"name": "mobile",
"width": 390,
"height": 844,
"documentHeight": 7126
}
],
"sections": [{
"id": "source-section-5",
"kind": "pricing",
"order": 4,
"boundingBox": {
"x": 0,
"y": 3429,
"width": 1440,
"height": 702
},
"surfaceRole": "light",
"headings": [
"Pricing that fits a launch path",
"Free",
"Pro",
"Business"
],
"components": ["pricing", "cta"],
"responsiveVariants": [
{
"viewport": "desktop",
"boundingBox": {
"x": 0,
"y": 3429,
"width": 1440,
"height": 702
}
},
...
],
"representativeStyles": {
"section": {
"backgroundColor": "rgb(255, 255, 255)",
"color": "rgb(23, 27, 38)"
},
"heading": {
"fontFamily": "Inter, ui-sans-serif, system-ui, sans-serif",
"fontSize": "30px",
"fontWeight": "600",
"lineHeight": "36px"
}
}
}]
}
Focus on customers and sales while we handle product delivery. Hire a dedicated AI maker or a whole product team.