{"product_id":"frontman","title":"Frontman","description":"\u003cstyle\u003e\n.guidaio-v3 { --gv3-bg:#f6f5fb;--gv3-surface:#fff;--gv3-surface-soft:#fbfaff;--gv3-ink:#14132b;--gv3-ink-2:#2b2a4a;--gv3-muted:#6c6a8a;--gv3-line:#ecebf5;--gv3-line-2:#e0deef;--gv3-brand:#5b3df5;--gv3-brand-2:#7c63ff;--gv3-brand-soft:#efeaff;--gv3-brand-ink:#2c1d8a;--gv3-ok:#0f8a5a;--gv3-ok-soft:#e6f7ee;--gv3-warn:#b16800;--gv3-warn-soft:#fff3dc;--gv3-bad:#b3261e;--gv3-bad-soft:#fde7e6;--gv3-radius-lg:22px;--gv3-radius:16px;--gv3-radius-sm:10px;--gv3-shadow-sm:0 1px 2px rgba(20,19,43,.04);--gv3-shadow:0 12px 30px rgba(53,38,124,.07);\n  background:radial-gradient(1200px 600px at 80% -10%,rgba(124,99,255,.18),transparent 60%),radial-gradient(900px 500px at -10% 5%,rgba(91,61,245,.12),transparent 60%),var(--gv3-bg);\n  color:var(--gv3-ink);font-family:Inter,system-ui,-apple-system,\"Segoe UI\",Roboto,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;\n  max-width:1240px;margin:0 auto;padding:24px 16px 64px;border-radius:var(--gv3-radius-lg);}\n.guidaio-v3 *,.guidaio-v3 *::before,.guidaio-v3 *::after{box-sizing:border-box}\n.guidaio-v3 a{color:var(--gv3-brand);text-decoration:none}.guidaio-v3 a:hover{text-decoration:underline}\n.guidaio-v3 img{max-width:100%;display:block}\n.guidaio-v3 h1,.guidaio-v3 h2,.guidaio-v3 h3,.guidaio-v3 h4{font-family:\"Space Grotesk\",Inter,sans-serif;letter-spacing:-.01em;margin:0;color:var(--gv3-ink)}\n.guidaio-v3 svg{display:inline-block;vertical-align:middle}\n.guidaio-v3 .hero{position:relative;background:radial-gradient(700px 320px at 90% 0%,rgba(124,99,255,.18),transparent 70%),linear-gradient(180deg,#fff 0%,#fbfaff 100%);border:1px solid var(--gv3-line);border-radius:var(--gv3-radius-lg);box-shadow:var(--gv3-shadow);padding:32px;overflow:hidden}\n.guidaio-v3 .hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:28px;align-items:start}\n.guidaio-v3 .hero-head{display:flex;gap:16px;align-items:flex-start}\n.guidaio-v3 .logo-tile{width:72px;height:72px;border-radius:18px;border:1px solid var(--gv3-line-2);background:#fff;box-shadow:var(--gv3-shadow-sm);display:grid;place-items:center;overflow:hidden;flex:0 0 auto}\n.guidaio-v3 .logo-tile img{width:56px;height:56px;object-fit:contain}\n.guidaio-v3 .eyebrow{display:inline-flex;align-items:center;gap:6px;color:var(--gv3-brand-ink);background:var(--gv3-brand-soft);padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}\n.guidaio-v3 h1.title{margin-top:12px;font-size:34px;line-height:1.1;color:var(--gv3-ink)}\n.guidaio-v3 .lede{margin:14px 0 0;font-size:17px;color:var(--gv3-ink-2);max-width:60ch}\n.guidaio-v3 .badge-row,.guidaio-v3 .chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}\n.guidaio-v3 .badge{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;font-size:12px;font-weight:600;background:#fff;border:1px solid var(--gv3-line-2);color:var(--gv3-ink-2)}\n.guidaio-v3 .badge.ok{background:var(--gv3-ok-soft);color:var(--gv3-ok);border-color:#b8e8cc}\n.guidaio-v3 .badge.warn{background:var(--gv3-warn-soft);color:var(--gv3-warn);border-color:#f1d6a3}\n.guidaio-v3 .badge.bad{background:var(--gv3-bad-soft);color:var(--gv3-bad);border-color:#f5c2c0}\n.guidaio-v3 .badge.brand{background:var(--gv3-brand-soft);color:var(--gv3-brand-ink);border-color:#d6cdfb}\n.guidaio-v3 .tbd-row{margin-top:14px;display:grid;gap:10px}\n.guidaio-v3 .tbd-row .label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gv3-muted)}\n.guidaio-v3 .chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:13px;border:1px solid var(--gv3-line-2);background:#fff;color:var(--gv3-ink-2)}\n.guidaio-v3 .chip.cat{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}\n.guidaio-v3 .chip.dom{background:#ecfeff;color:#0e7490;border-color:#a5f3fc}\n.guidaio-v3 .chip.prof{background:#fdf4ff;color:#86198f;border-color:#f5d0fe}\n.guidaio-v3 .cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}\n.guidaio-v3 .btn{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:12px;font-weight:700;border:1px solid transparent;cursor:pointer;font-size:14px}\n.guidaio-v3 .btn:hover{text-decoration:none}\n.guidaio-v3 .btn-primary{background:linear-gradient(135deg,var(--gv3-brand) 0%,var(--gv3-brand-2) 100%);color:#fff;box-shadow:0 14px 28px rgba(91,61,245,.28)}\n.guidaio-v3 .btn-secondary{background:#fff;color:var(--gv3-brand-ink);border-color:#d6cdfb}\n.guidaio-v3 .btn-ghost{background:transparent;color:var(--gv3-ink-2);border-color:var(--gv3-line-2)}\n.guidaio-v3 .affiliate-note{margin-top:10px;font-size:12px;color:var(--gv3-muted)}\n.guidaio-v3 .snapshot{background:#fff;border:1px solid var(--gv3-line);border-radius:var(--gv3-radius-lg);padding:20px;box-shadow:var(--gv3-shadow)}\n.guidaio-v3 .snapshot h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--gv3-brand-ink);margin-bottom:14px}\n.guidaio-v3 .snapshot dl{margin:0;display:grid;grid-template-columns:1fr;gap:12px}\n.guidaio-v3 .snapshot .row{display:grid;grid-template-columns:1fr auto;gap:8px;padding-bottom:12px;border-bottom:1px dashed var(--gv3-line-2)}\n.guidaio-v3 .snapshot .row:last-child{border-bottom:0;padding-bottom:0}\n.guidaio-v3 .snapshot dt{color:var(--gv3-muted);font-size:13px;margin:0}\n.guidaio-v3 .snapshot dd{margin:0;text-align:right;font-weight:700;color:var(--gv3-ink);font-size:13px}\n.guidaio-v3 .snapshot dd small{display:block;font-weight:500;color:var(--gv3-muted);font-size:11px;text-align:right}\n.guidaio-v3 .price-big{font-family:\"Space Grotesk\";font-size:20px;line-height:1}\n.guidaio-v3 .toc{margin:20px 0 24px;padding:10px;background:rgba(255,255,255,.85);border:1px solid var(--gv3-line);border-radius:22px;box-shadow:var(--gv3-shadow-sm);display:flex;flex-wrap:wrap;gap:8px;overflow-x:auto}\n.guidaio-v3 .toc a{padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--gv3-brand-ink);background:#fff;white-space:nowrap;border:1px solid var(--gv3-line-2);box-shadow:var(--gv3-shadow-sm);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,border-color .18s ease}\n.guidaio-v3 .toc a:hover{background:linear-gradient(135deg,var(--gv3-brand) 0%,var(--gv3-brand-2) 100%);color:#fff;border-color:transparent;transform:translateY(-2px) scale(1.04);box-shadow:0 8px 18px rgba(91,61,245,.25);text-decoration:none}\n.guidaio-v3 .justify{text-align:justify;text-justify:inter-word;hyphens:auto}\n.guidaio-v3 a.chip,.guidaio-v3 a.chip:hover{text-decoration:none}\n.guidaio-v3 a.chip{transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;cursor:pointer}\n.guidaio-v3 a.chip:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(53,38,124,.12);filter:brightness(.96)}\n.guidaio-v3 section.block{background:var(--gv3-surface);border:1px solid var(--gv3-line);border-radius:var(--gv3-radius-lg);padding:32px;margin-top:22px;box-shadow:var(--gv3-shadow-sm);scroll-margin-top:90px}\n.guidaio-v3 section.block.soft{background:var(--gv3-surface-soft)}\n.guidaio-v3 section.block .head{margin-bottom:20px}\n.guidaio-v3 section.block .eyebrow + h2{margin-top:10px}\n.guidaio-v3 section.block h2{font-size:24px;color:var(--gv3-ink)}\n.guidaio-v3 section.block .lead{margin-top:8px;color:var(--gv3-muted);max-width:70ch}\n.guidaio-v3 .grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}\n.guidaio-v3 .grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}\n.guidaio-v3 .rich p{margin:0 0 14px}.guidaio-v3 .rich p:last-child{margin:0}\n.guidaio-v3 ul.brand-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}\n.guidaio-v3 ul.brand-list li{position:relative;padding-left:26px;color:var(--gv3-ink-2)}\n.guidaio-v3 ul.brand-list li::before{content:\"\";position:absolute;left:0;top:9px;width:14px;height:14px;border-radius:999px;background:var(--gv3-brand-soft);box-shadow:inset 0 0 0 4px var(--gv3-brand)}\n.guidaio-v3 ol.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:14px}\n.guidaio-v3 ol.steps li{counter-increment:s;position:relative;padding-left:42px;color:var(--gv3-ink-2);min-height:30px}\n.guidaio-v3 ol.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:999px;background:linear-gradient(135deg,var(--gv3-brand) 0%,var(--gv3-brand-2) 100%);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;box-shadow:0 6px 14px rgba(91,61,245,.25)}\n.guidaio-v3 .feature-card{border:1px solid var(--gv3-line);border-radius:var(--gv3-radius);padding:16px;background:#fff;display:grid;gap:8px}\n.guidaio-v3 .feature-card .icbox{width:36px;height:36px;border-radius:12px;background:var(--gv3-brand-soft);color:var(--gv3-brand-ink);display:grid;place-items:center}\n.guidaio-v3 .feature-card .ftitle{font-weight:700;color:var(--gv3-ink);font-size:15px}\n.guidaio-v3 .feature-card .fbody{color:var(--gv3-muted);font-size:13px}\n.guidaio-v3 .pc{border-radius:var(--gv3-radius);padding:20px;border:1px solid var(--gv3-line)}\n.guidaio-v3 .pc.pros{background:var(--gv3-ok-soft);border-color:#b8e8cc}\n.guidaio-v3 .pc.cons{background:var(--gv3-bad-soft);border-color:#f5c2c0}\n.guidaio-v3 .pc h3{font-size:17px;display:flex;align-items:center;gap:8px;margin-bottom:12px}\n.guidaio-v3 .pc.pros h3{color:var(--gv3-ok)}.guidaio-v3 .pc.cons h3{color:var(--gv3-bad)}\n.guidaio-v3 .pc ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}\n.guidaio-v3 .pc li{display:flex;gap:8px;align-items:flex-start;color:var(--gv3-ink-2);font-size:14px}\n.guidaio-v3 .pc li svg{flex:0 0 auto;margin-top:3px}\n.guidaio-v3 .pc.pros li svg{color:var(--gv3-ok)}.guidaio-v3 .pc.cons li svg{color:var(--gv3-bad)}\n.guidaio-v3 .bestnot{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n.guidaio-v3 .bestnot .card{border:1px solid var(--gv3-line);border-radius:var(--gv3-radius);padding:20px;background:#fff}\n.guidaio-v3 .bestnot h3{display:flex;align-items:center;gap:8px;font-size:17px;margin-bottom:12px}\n.guidaio-v3 .bestnot .for h3{color:var(--gv3-ok)}.guidaio-v3 .bestnot .not h3{color:var(--gv3-warn)}\n.guidaio-v3 .plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}\n.guidaio-v3 .plan{border:1px solid var(--gv3-line);border-radius:var(--gv3-radius-lg);padding:22px;background:#fff;display:grid;gap:10px;position:relative}\n.guidaio-v3 .plan.featured{border-color:#c7baff;background:linear-gradient(180deg,#fff 0%,#f7f3ff 100%);box-shadow:var(--gv3-shadow)}\n.guidaio-v3 .plan .pill{position:absolute;top:-12px;right:14px;background:linear-gradient(135deg,var(--gv3-brand) 0%,var(--gv3-brand-2) 100%);color:#fff;font-size:11px;font-weight:700;letter-spacing:.06em;padding:5px 9px;border-radius:999px;text-transform:uppercase}\n.guidaio-v3 .plan .pname{font-family:\"Space Grotesk\";font-weight:700;font-size:17px}\n.guidaio-v3 .plan .pprice{font-family:\"Space Grotesk\";font-size:24px;font-weight:700}\n.guidaio-v3 .plan .pprice small{font-size:13px;font-weight:500;color:var(--gv3-muted)}\n.guidaio-v3 .plan ul{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:8px}\n.guidaio-v3 .plan ul li{display:flex;gap:8px;align-items:flex-start;color:var(--gv3-ink-2);font-size:14px}\n.guidaio-v3 .plan ul li svg{color:var(--gv3-brand);flex:0 0 auto;margin-top:3px}\n.guidaio-v3 .pricing-extras{margin-top:16px;display:grid;gap:10px}\n.guidaio-v3 .offer{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:#fff7e6;border:1px solid #f1d6a3;color:var(--gv3-warn);font-size:14px}\n.guidaio-v3 .offer svg{flex:0 0 auto;margin-top:2px}\n.guidaio-v3 .trust-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}\n.guidaio-v3 .trust-grid .col{display:grid;gap:14px}\n.guidaio-v3 .trust-card{background:#fff;border:1px solid var(--gv3-line);border-radius:var(--gv3-radius);padding:20px}\n.guidaio-v3 .trust-card h3{font-size:15px;margin-bottom:10px}\n.guidaio-v3 .kv{display:grid;grid-template-columns:180px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--gv3-line)}\n.guidaio-v3 .kv:first-child{border-top:0;padding-top:0}\n.guidaio-v3 .kv .k{color:var(--gv3-muted);font-size:13px}\n.guidaio-v3 .kv .v{color:var(--gv3-ink);font-size:14px}\n.guidaio-v3 .availability{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n.guidaio-v3 .availability .card{border:1px solid var(--gv3-line);border-radius:var(--gv3-radius);background:#fff;padding:18px}\n.guidaio-v3 .flag-row{display:flex;flex-wrap:wrap;gap:8px}\n.guidaio-v3 .flag{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:#fff;border:1px solid var(--gv3-line-2);font-size:13px;color:var(--gv3-ink-2)}\n.guidaio-v3 section.block.watch{background:#fffaf0;border:1px solid #f1d6a3}\n.guidaio-v3 section.block.watch .head h2{color:var(--gv3-warn)}\n.guidaio-v3 .setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n.guidaio-v3 .setup-card{background:#fff;border:1px solid var(--gv3-line);border-radius:var(--gv3-radius);padding:20px}\n.guidaio-v3 .integrations{display:flex;flex-wrap:wrap;gap:8px}\n.guidaio-v3 .integration{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:12px;background:#fff;border:1px solid var(--gv3-line-2);color:var(--gv3-ink-2);font-size:13px;font-weight:600}\n.guidaio-v3 .company-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}\n.guidaio-v3 .company-card{border:1px solid var(--gv3-line);border-radius:var(--gv3-radius);background:#fff;padding:20px}\n.guidaio-v3 .timeline{display:grid;gap:8px;margin:8px 0 0}\n.guidaio-v3 .timeline .ev{padding:10px 14px;border-radius:12px;background:var(--gv3-brand-soft);color:var(--gv3-brand-ink);font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px}\n.guidaio-v3 .social-row{display:flex;gap:8px;flex-wrap:wrap}\n.guidaio-v3 .social{width:36px;height:36px;border-radius:12px;border:1px solid var(--gv3-line-2);background:#fff;display:grid;place-items:center;color:var(--gv3-ink-2)}\n.guidaio-v3 .social:hover{background:var(--gv3-brand-soft);color:var(--gv3-brand-ink);border-color:#d6cdfb}\n.guidaio-v3 .res-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}\n.guidaio-v3 .res{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--gv3-line);background:#fff;color:var(--gv3-ink-2);font-size:13px}\n.guidaio-v3 .res:hover{border-color:#d6cdfb;background:#fbfaff;text-decoration:none}\n.guidaio-v3 .res svg{color:var(--gv3-brand);flex:0 0 auto}\n.guidaio-v3 .res .url{color:var(--gv3-muted);font-size:11px;word-break:break-all}\n.guidaio-v3 .res .res-text{display:grid}\n.guidaio-v3 .alts{display:flex;flex-wrap:wrap;gap:8px}\n.guidaio-v3 .alt{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:14px;background:#fff;border:1px solid var(--gv3-line-2);font-weight:600;color:var(--gv3-ink-2);font-size:14px}\n.guidaio-v3 .alt .av{width:24px;height:24px;border-radius:8px;background:linear-gradient(135deg,#c7baff 0%,#efeaff 100%);display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--gv3-brand-ink)}\n.guidaio-v3 .faq{display:grid;gap:10px}\n.guidaio-v3 .faq details{background:#fff;border:1px solid var(--gv3-line);border-radius:var(--gv3-radius);padding:14px 16px}\n.guidaio-v3 .faq summary{cursor:pointer;list-style:none;font-weight:700;color:var(--gv3-ink);display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:15px}\n.guidaio-v3 .faq summary::-webkit-details-marker{display:none}\n.guidaio-v3 .faq summary svg{color:var(--gv3-brand)}\n.guidaio-v3 .faq .ans{color:var(--gv3-muted);margin-top:10px;font-size:14px}\n.guidaio-v3 section.block.conclusion{background:radial-gradient(700px 320px at 0% 0%,rgba(124,99,255,.18),transparent 60%),linear-gradient(135deg,#1c163a 0%,#2c1d8a 100%);color:#fff;border-color:#2c1d8a}\n.guidaio-v3 section.block.conclusion .head h2{color:#fff}\n.guidaio-v3 section.block.conclusion .lead,.guidaio-v3 section.block.conclusion .rich p{color:rgba(255,255,255,.88)}\n.guidaio-v3 section.block.conclusion .rich strong,.guidaio-v3 section.block.conclusion .rich b{color:#fff}\n.guidaio-v3 section.block.conclusion .eyebrow{background:rgba(255,255,255,.14);color:#fff}\n.guidaio-v3 section.block.conclusion .btn-secondary{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.25)}\n@media (max-width:1080px){.guidaio-v3 .hero-grid,.guidaio-v3 .trust-grid,.guidaio-v3 .company-grid,.guidaio-v3 .setup-grid,.guidaio-v3 .availability{grid-template-columns:1fr}.guidaio-v3 .grid-3,.guidaio-v3 .res-grid,.guidaio-v3 .plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}\n@media (max-width:700px){.guidaio-v3{padding:12px 8px 48px}.guidaio-v3 .hero{padding:20px}.guidaio-v3 section.block{padding:20px}.guidaio-v3 .grid-2,.guidaio-v3 .grid-3,.guidaio-v3 .res-grid,.guidaio-v3 .plan-grid,.guidaio-v3 .bestnot,.guidaio-v3 .availability{grid-template-columns:1fr}.guidaio-v3 h1.title{font-size:28px}}\n\u003c\/style\u003e\n\u003cdiv class=\"guidaio-v3\" itemscope itemtype=\"https:\/\/schema.org\/SoftwareApplication\"\u003e\n\u003cmeta itemprop=\"name\" content=\"Frontman: AI Website Editor for WordPress, Next.js, Vite\"\u003e\n\u003cmeta itemprop=\"description\" content=\"Frontman is an AI website editor for existing sites: click an element, describe the change, get a reviewable diff. WordPress, Next.js, Astro, Vite. BYOK.\"\u003e\n\u003cdiv class=\"hero\"\u003e\u003cdiv class=\"hero-grid\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"hero-head\"\u003e\n\u003cdiv class=\"logo-tile\"\u003e\u003cimg src=\"https:\/\/frontman.sh\/logo.svg\" alt=\"Frontman logo\" itemprop=\"image\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"name-block\"\u003e\n\u003cspan class=\"eyebrow\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"m12 3-1.9 5.8a2 2 0 0 1-1.3 1.3L3 12l5.8 1.9a2 2 0 0 1 1.3 1.3L12 21l1.9-5.8a2 2 0 0 1 1.3-1.3L21 12l-5.8-1.9a2 2 0 0 1-1.3-1.3Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Code Assistants · Code Generation\u003c\/span\u003e\u003ch1 class=\"title\" itemprop=\"name\"\u003eFrontman\u003c\/h1\u003e\n\u003cp class=\"lede justify\" itemprop=\"description\"\u003eFrontman is an AI website editor for \u003cb\u003esites that already exist\u003c\/b\u003e. Designers, marketers and developers click any element on a WordPress, Next.js, Astro or Vite page, describe the change in plain language, and get reviewable source-file diffs.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"badge-row\"\u003e\n\u003cspan class=\"badge ok\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"\u003e\u003c\/circle\u003e\u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Active\u003c\/span\u003e\u003cspan class=\"badge ok\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e GDPR compliant\u003c\/span\u003e\u003cspan class=\"badge brand\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 12 20 22 4 22 4 12\"\u003e\u003c\/polyline\u003e\u003crect x=\"2\" y=\"7\" width=\"20\" height=\"5\"\u003e\u003c\/rect\u003e\u003cline x1=\"12\" y1=\"22\" x2=\"12\" y2=\"7\"\u003e\u003c\/line\u003e\u003cpath d=\"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Free plan · Free trial\u003c\/span\u003e\u003cspan class=\"badge\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"22 7 13.5 15.5 8.5 10.5 2 17\"\u003e\u003c\/polyline\u003e\u003cpolyline points=\"16 7 22 7 22 13\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e Freemium\u003c\/span\u003e\u003cspan class=\"badge\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e No public API\u003c\/span\u003e\u003cspan class=\"badge brand\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"\u003e\u003c\/circle\u003e\u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Verified by Guidaio\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tbd-row\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"label\"\u003eCategories\u003c\/div\u003e\n\u003cdiv class=\"chip-row\"\u003e\n\u003ca class=\"chip cat\" href=\"\/collections\/code-assistants\"\u003eCode Assistants\u003c\/a\u003e\u003ca class=\"chip cat\" href=\"\/collections\/code-generation\"\u003eCode Generation\u003c\/a\u003e\u003ca class=\"chip cat\" href=\"\/collections\/no-low-code\"\u003eNo Low Code\u003c\/a\u003e\u003ca class=\"chip cat\" href=\"\/collections\/content-automation\"\u003eContent Automation\u003c\/a\u003e\u003ca class=\"chip cat\" href=\"\/collections\/workflow-automation\"\u003eWorkflow Automation\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"label\"\u003eTarget domains\u003c\/div\u003e\n\u003cdiv class=\"chip-row\"\u003e\n\u003ca class=\"chip dom\" href=\"\/collections\/it-software\"\u003eIt Software\u003c\/a\u003e\u003ca class=\"chip dom\" href=\"\/collections\/design-creative\"\u003eDesign Creative\u003c\/a\u003e\u003ca class=\"chip dom\" href=\"\/collections\/marketing-advertising\"\u003eMarketing Advertising\u003c\/a\u003e\u003ca class=\"chip dom\" href=\"\/collections\/product-management\"\u003eProduct Management\u003c\/a\u003e\u003ca class=\"chip dom\" href=\"\/collections\/retail-e-commerce\"\u003eRetail E Commerce\u003c\/a\u003e\u003ca class=\"chip dom\" href=\"\/collections\/freelancers-entrepreneurs\"\u003eFreelancers Entrepreneurs\u003c\/a\u003e\u003ca class=\"chip dom\" href=\"\/collections\/content-writing\"\u003eContent Writing\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cta-row\"\u003e\n\u003ca class=\"btn btn-primary\" href=\"https:\/\/frontman.sh\/\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M15 3h6v6\"\u003e\u003c\/path\u003e\u003cpath d=\"M10 14 21 3\"\u003e\u003c\/path\u003e\u003cpath d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Discover Frontman\u003c\/a\u003e\u003ca class=\"btn btn-secondary\" href=\"https:\/\/playground.wordpress.net\/?networking=yes\u0026amp;blueprint-url=https%3A%2F%2Ffrontman.sh%2Fwordpress-playground%2Fblueprint.json\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolygon points=\"6 3 20 12 6 21 6 3\"\u003e\u003c\/polygon\u003e\u003c\/svg\u003e Start the 14-day trial\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003caside class=\"snapshot\"\u003e\u003ch3\u003eSnapshot\u003c\/h3\u003e\n\u003cdl\u003e\n\u003cdiv class=\"row\"\u003e\n\u003cdt\u003ePricing model\u003c\/dt\u003e\n\u003cdd\u003eFreemium\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"row\"\u003e\n\u003cdt\u003eStarts at\u003c\/dt\u003e\n\u003cdd\u003e\n\u003cspan class=\"price-big\"\u003eEUR15.00\u003c\/span\u003e\u003csmall\u003eEUR · per seat\/month\u003c\/small\u003e\n\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"row\"\u003e\n\u003cdt\u003eFree plan\u003c\/dt\u003e\n\u003cdd\u003eYes\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"row\"\u003e\n\u003cdt\u003eFree trial\u003c\/dt\u003e\n\u003cdd\u003eYes\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"row\"\u003e\n\u003cdt\u003eAPI available\u003c\/dt\u003e\n\u003cdd\u003eNo\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"row\"\u003e\n\u003cdt\u003eDeployment\u003c\/dt\u003e\n\u003cdd\u003eWeb app · Plugin\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"row\"\u003e\n\u003cdt\u003eTool status\u003c\/dt\u003e\n\u003cdd\u003eActive\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"row\"\u003e\n\u003cdt\u003eCountry of origin\u003c\/dt\u003e\n\u003cdd\u003e🇩🇩 Germany\u003c\/dd\u003e\n\u003c\/div\u003e\n\u003c\/dl\u003e\u003c\/aside\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003cnav class=\"toc\" aria-label=\"Page sections\"\u003e\u003ca href=\"#what\"\u003eWhat is it\u003c\/a\u003e\u003ca href=\"#bestnot\"\u003eWhen to use Frontman \/ When not to\u003c\/a\u003e\u003ca href=\"#how\"\u003eHow to use\u003c\/a\u003e\u003ca href=\"#proscons\"\u003ePros \u0026amp; Cons\u003c\/a\u003e\u003ca href=\"#pricing\"\u003ePricing\u003c\/a\u003e\u003ca href=\"#trust\"\u003eTrust \u0026amp; Privacy\u003c\/a\u003e\u003ca href=\"#watch\"\u003eWatch-outs\u003c\/a\u003e\u003ca href=\"#setup\"\u003eSetup \u0026amp; Integrations\u003c\/a\u003e\u003ca href=\"#company\"\u003eCompany\u003c\/a\u003e\u003ca href=\"#resources\"\u003eResources\u003c\/a\u003e\u003ca href=\"#alternatives\"\u003eAlternatives\u003c\/a\u003e\u003ca href=\"#faq\"\u003eFAQ\u003c\/a\u003e\u003ca href=\"#conclusion\"\u003eConclusion\u003c\/a\u003e\u003c\/nav\u003e\n\u003csection class=\"block\" id=\"what\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eOverview\u003c\/span\u003e\u003ch2\u003eWhat is Frontman?\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grid-2\"\u003e\n\u003cdiv class=\"rich justify\"\u003e\n\u003cp\u003e\u003cb\u003eFrontman is an AI website editor for sites that already exist.\u003c\/b\u003e It does not scaffold a new project and it does not rebuild what you have: it plugs into a site you already run and turns visual requests into source changes a developer can review.\u003c\/p\u003e\n\u003cp\u003eThe architecture has three parts. Browser tools inspect the live page. Local integrations manipulate the CMS or the file system on your own machine. A server, hosted by the publisher or self-hosted by you, orchestrates the agent and stores task history. What reaches the model is unusually rich for this category: the real DOM, computed CSS styles, component boundaries, source maps, routes, dev server logs, build errors, screenshots and tool results. The publisher's argument is that agents which only read files are blind to the rendering, since a source map resolves only from the build pipeline and the DOM alone knows nothing about the component tree.\u003c\/p\u003e\n\u003cp\u003eThere are two ways in. A framework middleware turns your local dev server into an MCP server for \u003cb\u003eNext.js\u003c\/b\u003e (App and Pages Router, Webpack and Turbopack, server components), \u003cb\u003eAstro\u003c\/b\u003e (SSR, SSG, hybrid, Islands) and \u003cb\u003eVite\u003c\/b\u003e (React, Vue, Svelte, SolidJS). Alternatively, a native \u003cb\u003eWordPress\u003c\/b\u003e plugin exposes the editor on the \/frontman route and drives posts, pages, Gutenberg blocks, Elementor layouts, menus, templates, widgets, settings, cache and WooCommerce. Frontman also reads, writes, searches and greps any file in the project directory, so backend code is in scope too.\u003c\/p\u003e\n\u003cp\u003eModels are bring-your-own-key: Anthropic, OpenAI, OpenRouter, Google, xAI or any OpenAI-compatible API, with OAuth if you already pay for Claude or ChatGPT. The code and the prompts are source-available on GitHub, and the home page counts more than 1,000 tasks run across Vite, WordPress, Next.js and Astro projects.\u003c\/p\u003e\n\u003cp\u003eThe limits are stated up front rather than discovered later. File system tools run on your machine, so the server has no direct disk access; the agent runs no arbitrary shell commands, performs no deployments and pushes nothing to Git by itself. Frontman is \u003ci\u003ea visual frontend editor with runtime context, not a general-purpose AI coding tool\u003c\/i\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003ch3 style=\"font-size:14px;margin-bottom:12px;color:var(--gv3-brand-ink);text-transform:uppercase;letter-spacing:.08em\"\u003eWhat it does\u003c\/h3\u003e\n\u003cul class=\"brand-list\"\u003e\n\u003cli\u003eClick any element on the live page and describe the change you want in plain language\u003c\/li\u003e\n\u003cli\u003eSelect several elements at once with Shift+click and apply distinct instructions in a single pass\u003c\/li\u003e\n\u003cli\u003eSee the result in the browser within seconds, then iterate with follow-up instructions\u003c\/li\u003e\n\u003cli\u003eEdit WordPress posts, pages, Gutenberg blocks, Elementor layouts, menus, templates, widgets, settings, cache and WooCommerce data\u003c\/li\u003e\n\u003cli\u003eCheck every breakpoint with the iPhone, iPad and desktop responsive presets\u003c\/li\u003e\n\u003cli\u003eRead dev server logs, build errors and stack traces, and fix compilation errors automatically\u003c\/li\u003e\n\u003cli\u003eCommit and push to Git from the browser, run Lighthouse audits, and read, write, search or grep any file in the project\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"block soft\" id=\"bestnot\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eAudience\u003c\/span\u003e\u003ch2\u003eWhen to use Frontman \/ When not to\u003c\/h2\u003e\n\u003cp class=\"lead\"\u003eA quick filter to help you decide if Frontman is the right fit.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bestnot\"\u003e\n\u003cdiv class=\"card for\"\u003e\n\u003ch3\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M7 10v12\"\u003e\u003c\/path\u003e\u003cpath d=\"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e When to use Frontman\u003c\/h3\u003e\n\u003cul class=\"brand-list\"\u003e\n\u003cli\u003eWordPress owners and maintainers who need to update posts, Gutenberg blocks, Elementor layouts, menus and WooCommerce data without waiting for a developer\u003c\/li\u003e\n\u003cli\u003eMarketing teams running campaign landing pages on Next.js, Astro or Vite who want to rewrite copy and CTAs themselves\u003c\/li\u003e\n\u003cli\u003eDesigners who want to fix spacing, colours and responsive polish directly on the rendered page instead of filing a ticket\u003c\/li\u003e\n\u003cli\u003eProduct managers who spot copy errors and alignment defects during review and want them turned into code straight away\u003c\/li\u003e\n\u003cli\u003eFront-end developers and design system teams who want an agent with real runtime context: DOM, computed CSS, component boundaries, source maps and dev server logs\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"card not\"\u003e\n\u003ch3\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M17 14V2\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e When not to use Frontman\u003c\/h3\u003e\n\u003cul class=\"brand-list\"\u003e\n\u003cli\u003eDevelopers looking for inline suggestions or tab completion: Frontman has none and the publisher points to Cursor, Windsurf or Copilot instead\u003c\/li\u003e\n\u003cli\u003eAnyone starting from a blank page, since Frontman edits existing sites and never scaffolds a new project; the publisher points to v0, Bolt or Lovable for that\u003c\/li\u003e\n\u003cli\u003eTeams working on Angular, Remix or standalone SvelteKit, which are not supported frameworks\u003c\/li\u003e\n\u003cli\u003ePeople working in StackBlitz, CodeSandbox or other cloud environments, because a local dev server is mandatory for the JavaScript integrations\u003c\/li\u003e\n\u003cli\u003eConsumers in the sense of §13 BGB: the hosted service is sold to business customers only, and the agent cannot run shell commands, tests or git operations for you\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"block soft\" id=\"how\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eGet started\u003c\/span\u003e\u003ch2\u003eHow to use Frontman\u003c\/h2\u003e\n\u003cp class=\"lead\"\u003eA typical end-to-end flow, from setup to results.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003col class=\"steps\"\u003e\n\u003cli\u003eChoose your route: a JavaScript framework project (Next.js, Astro or Vite) or a WordPress site\u003c\/li\u003e\n\u003cli\u003eFor a framework, run the single install command: npx @frontman-ai\/nextjs install, npx @frontman-ai\/vite install, or astro add @frontman-ai\/astro\u003c\/li\u003e\n\u003cli\u003eLet the installer add its middleware and adjust your dev configuration, which the publisher times at around 60 seconds\u003c\/li\u003e\n\u003cli\u003eStart your dev server and open http:\/\/localhost:3000\/frontman in the browser\u003c\/li\u003e\n\u003cli\u003eFor WordPress, go to wp-admin, Plugins, Add New Plugin, search for Frontman Agentic AI Editor, install and activate it (WordPress 6.0+, PHP 7.4+, administrator access)\u003c\/li\u003e\n\u003cli\u003eOpen https:\/\/yoursite.com\/frontman, or simply append \/frontman to the URL of any page you want to work on\u003c\/li\u003e\n\u003cli\u003eConnect your AI provider, Claude, ChatGPT or OpenRouter, with an API key or an OAuth sign-in\u003c\/li\u003e\n\u003cli\u003eClick the element you want changed in the live preview and describe the change in the chat panel beside it\u003c\/li\u003e\n\u003cli\u003eMove between components and divs with the up and down arrow keys, and Shift+click to select several elements at once\u003c\/li\u003e\n\u003cli\u003eReview the resulting diff, then commit and push; to try the whole flow without installing anything, open the disposable WordPress Playground instance first\u003c\/li\u003e\n\u003c\/ol\u003e\u003c\/section\u003e\n\u003csection class=\"block\" id=\"proscons\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eQuick read\u003c\/span\u003e\u003ch2\u003ePros \u0026amp; Cons\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grid-2\"\u003e\n\u003cdiv class=\"pc pros\"\u003e\n\u003ch3\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"\u003e\u003c\/circle\u003e\u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Pros\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eReal runtime context, with the DOM, computed CSS, component boundaries, routes, source maps and logs handed to the model, where file-only agents work blind to the rendering\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eUsable by non-developers: designers, product managers and marketers work from the page they can see, and the FAQ answers No to Do I need to know how to code\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eDeveloper control is preserved, because every change lands as an ordinary git diff the team reviews before anything ships\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eSource-available from day one, with code and prompts inspectable on GitHub and self-hosting possible\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eBring your own key means no AI markup: you pick the model and control the budget yourself\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eOne simple price with no tiers: EUR 15 per seat per month, or EUR 150 per seat per year\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eEU hosting on Hetzner and an unusually complete legal stack for a company this size: DPA, technical and organisational measures, subprocessor list, impressum, and no training on customer content\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pc cons\"\u003e\n\u003ch3\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"\u003e\u003c\/circle\u003e\u003cline x1=\"4.93\" y1=\"4.93\" x2=\"19.07\" y2=\"19.07\"\u003e\u003c\/line\u003e\u003c\/svg\u003e Cons\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\u003e\u003c\/line\u003e\u003cline x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\u003e\u003c\/line\u003e\u003c\/svg\u003e \u003cspan\u003eDeliberately narrow scope: no inline suggestions or tab completion, no shell commands, no test runs and no git operations performed by the agent\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\u003e\u003c\/line\u003e\u003cline x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\u003e\u003c\/line\u003e\u003c\/svg\u003e \u003cspan\u003eIt does not generate new projects, and Angular, Remix and standalone SvelteKit are not covered frameworks\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\u003e\u003c\/line\u003e\u003cline x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\u003e\u003c\/line\u003e\u003c\/svg\u003e \u003cspan\u003eA local dev server is mandatory, so StackBlitz, CodeSandbox and other cloud environments are out of reach\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\u003e\u003c\/line\u003e\u003cline x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\u003e\u003c\/line\u003e\u003c\/svg\u003e \u003cspan\u003eInstallation is not zero-trace: the installer modifies your project's dev configuration, unlike a browser extension\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\u003e\u003c\/line\u003e\u003cline x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\u003e\u003c\/line\u003e\u003c\/svg\u003e \u003cspan\u003eThe WordPress plugin is in beta and described by the publisher itself as experimental software; on Next.js, the generated middleware has no automatic development-only guard and can remain active in a deployment\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\u003e\u003c\/line\u003e\u003cline x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\u003e\u003c\/line\u003e\u003c\/svg\u003e \u003cspan\u003eAI cost sits on top of the subscription and is billed separately by the model provider, and a payment card is required to start the trial\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\u003e\u003c\/line\u003e\u003cline x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\u003e\u003c\/line\u003e\u003c\/svg\u003e \u003cspan\u003eThe hosted service is closed to consumers and sold to professionals only, accounts are personal to the user with team features described as maybe later, and the company is very young and very small\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"block soft\" id=\"pricing\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003ePricing\u003c\/span\u003e\u003ch2\u003ePricing \u0026amp; Plans\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cp class=\"rich justify\" style=\"color:var(--gv3-ink-2);margin:0 0 18px;max-width:80ch\"\u003eFrontman is offered on a freemium basis. Self-hosting is free of charge, but the publisher describes it as free currently and free while available, and it comes with no hosted support, no uptime commitment and no onboarding; the pricing FAQ answers No to the question of a free hosted plan. The lowest paid entry point is Frontman Pro at EUR 15.00 per seat per month, billed monthly, or EUR 150.00 per seat per year, advertised as a 17% saving against a EUR 180 reference price. A 14-day free trial is available on Frontman Pro, with a payment card required up front and a reminder sent before the first charge. Prices are quoted excluding VAT and other taxes, which are calculated at checkout, and payment runs through Stripe Managed Payments, where Stripe or an affiliate may act as merchant of record and the transaction may appear as sold via Link. Fees are non-refundable except where the law requires otherwise. AI usage is not included: the model provider bills the customer directly under their own API key. Readers should note an internal inconsistency: the terms of service, last updated 5 May 2026, state a 7-day trial and EUR 20 per month, which contradicts the pricing page figures used here.\u003c\/p\u003e\n\u003cdiv class=\"plan-grid\"\u003e\n\u003cdiv class=\"plan\"\u003e\n\u003cdiv class=\"pname\"\u003eFrontman Pro (hosted) at EUR 15 per seat per month or EUR 150 per seat per year\u003c\/div\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eAI visual editing in the browser\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003ereal source file changes\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eDOM\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eCSS\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003escreenshot\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003ecomponent and log context\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003ereviewable diffs\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eunlimited projects within an organisation\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"plan featured\"\u003e\n\u003cspan class=\"pill\"\u003eMost popular\u003c\/span\u003e\u003cdiv class=\"pname\"\u003eFrontman Pro free trial\u003c\/div\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003e14 days at no charge\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003epayment card required\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003econverting into the paid subscription unless cancelled before day 14.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"plan\"\u003e\n\u003cdiv class=\"pname\"\u003eSelf-hosting, currently free of charge\u003c\/div\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eyou provide the infrastructure\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003ehandle updates and bring your own AI provider key\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003ewhile hosted support\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003euptime commitment and onboarding are not included.\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pricing-extras\"\u003e\n\u003cdiv class=\"offer\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 1 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m9 14 6-6\"\u003e\u003c\/path\u003e\u003ccircle cx=\"9.5\" cy=\"9.5\" r=\".5\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"14.5\" cy=\"14.5\" r=\".5\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003cdiv\u003e\n\u003cb\u003eSpecial offers\u003c\/b\u003e — 14-day free trial on Frontman Pro, with a payment card required to start · Annual commitment at EUR 150 per seat per year instead of EUR 15 per seat per month, advertised as a 17% saving against a EUR 180 reference price · Self-hosting currently free of charge, with the customer providing infrastructure and their own AI provider key\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"affiliate-note\"\u003ePrices and plans listed above may evolve. Always check the official pricing page before subscribing.\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"block\" id=\"trust\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eTrust \u0026amp; Privacy\u003c\/span\u003e\u003ch2\u003eData, GDPR \u0026amp; hosting\u003c\/h2\u003e\n\u003cp class=\"lead\"\u003eA consolidated view of how Frontman handles your data.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"trust-grid\"\u003e\n\u003cdiv class=\"col\"\u003e\n\u003cdiv class=\"trust-card\"\u003e\n\u003ch3\u003eGDPR overview\u003c\/h3\u003e\n\u003cp class=\"justify\" style=\"color:var(--gv3-ink-2);margin:0\"\u003eGDPR implementation is concrete and documented. The publisher is established in Berlin, Germany, so the regulation applies directly and no Article 27 representative is required. The privacy policy and the terms are both dated 5 May 2026. An Article 28 data processing agreement is published, along with technical and organisational measures and a subprocessor list. Legal bases are named: contract, legal obligation, legitimate interest, and consent for marketing analytics. Data subject rights are listed in full: access, rectification, erasure, restriction, portability, objection and withdrawal of consent. The competent supervisory authority is named as the Berliner Beauftragte für Datenschutz und Informationsfreiheit. Transfers outside the EEA are acknowledged for analytics, payment, monitoring and customer-chosen AI providers, with adequacy decisions, standard contractual clauses and supplementary measures cited as safeguards. GDPR requests go to support@frontman.sh; no data protection officer is named.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"trust-card\"\u003e\n\u003ch3\u003eWho owns the data?\u003c\/h3\u003e\n\u003cp class=\"justify\" style=\"color:var(--gv3-ink-2);margin:0 0 12px\"\u003eThe terms state that the customer keeps ownership of Customer Content: code, prompts, screenshots, logs, project data, files and generated output. Boilerplate Ventures UG takes only a non-exclusive, worldwide, royalty-free licence, expressly limited to providing, securing, maintaining, troubleshooting and improving the hosted service, complying with the law and enforcing the terms. Feedback and suggestions are the exception: anything you send in that form is covered by a perpetual, worldwide, royalty-free licence to the publisher. Under the GDPR, a business customer processing personal data through Frontman is generally the controller and Boilerplate Ventures the processor, in which case the published data processing agreement applies.\u003c\/p\u003e\n\u003ch3\u003eReuse rights\u003c\/h3\u003e\n\u003cp class=\"justify\" style=\"color:var(--gv3-ink-2);margin:0\"\u003eBecause ownership of Customer Content stays with the customer, the code, diffs and generated output can be reused freely, without asking the publisher for permission. The publisher states in both the terms and the privacy policy that it does not use Customer Content to train or fine-tune AI models. Data is processed to operate the service: account data, billing through Stripe and Link, support exchanges, website and product usage, encrypted API credentials and security data. The legal bases cited are contract (Art. 6(1)(b)), legal obligation (Art. 6(1)(c)), legitimate interest (Art. 6(1)(f)) and consent (Art. 6(1)(a)) for marketing analytics. Google Analytics runs on the marketing site after consent, Heap Analytics inside the authenticated product, and Sentry handles error monitoring. One caveat matters under the bring-your-own-key model: your content is sent to the AI provider you choose, with your own credentials and under that provider's own terms, which the publisher does not control. API keys are stored encrypted server-side, and authorised staff can decrypt them when necessary.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"trust-card\"\u003e\n\u003ch3\u003eData retention \u0026amp; training\u003c\/h3\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eRetention summary\u003c\/div\u003e\n\u003cdiv class=\"v justify\"\u003eConversation and task history is kept until you delete it. Once deleted, it is removed from active systems, but backup copies may retain it for up to three months before the backups expire automatically. Account data is kept for the life of the account. Billing and tax records are kept for the statutory retention periods. Support messages are kept as long as needed to handle the request and maintain business records. Security logs and diagnostics are kept for the limited period required for security, debugging and abuse prevention. Analytics data follows the retention settings of the provider concerned. The publisher reserves the right to keep data longer where required for billing, tax, security, legal compliance, dispute resolution or the defence of legal claims.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eTrains on customer data\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e\u003cspan class=\"badge ok\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e No\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eSubprocessors disclosed\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e\u003cspan class=\"badge ok\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e Yes\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eDPA available\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e\u003cspan class=\"badge ok\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003cpath d=\"m9 15 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Yes\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eGDPR contact\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e\u003ca href=\"mailto:support@frontman.sh\"\u003esupport@frontman.sh\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"col\"\u003e\u003cdiv class=\"trust-card\"\u003e\n\u003ch3\u003eHosting summary\u003c\/h3\u003e\n\u003cp class=\"justify\" style=\"color:var(--gv3-ink-2);margin:0 0 14px\"\u003eThe hosted Frontman service runs in the European Union on Hetzner infrastructure, a statement repeated on the privacy policy, the data processing agreement and the technical and organisational measures page. Only the region is named, never a specific country. The published subprocessor list gives locations: Hetzner in the European Union; Stripe and Link, worldwide depending on customer location; Sentry, worldwide or the configured region; Heap Analytics, worldwide or the configured region; and Google Analytics, worldwide or the configured region. AI providers are not the publisher's subprocessors, since the customer chooses and connects them. Transfers outside the EEA are acknowledged for analytics, payment, monitoring and customer-chosen AI providers, with adequacy decisions, standard contractual clauses and supplementary measures cited as safeguards. Data is encrypted in transit with TLS, and API keys and sensitive credentials are encrypted server-side at application level. One architectural point matters: file system tools run on the customer's own machine, so the server has no direct access to the project files on disk.\u003c\/p\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eHosting regions\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e\u003cdiv class=\"flag-row\"\u003e\u003cspan class=\"flag\"\u003eEU\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"block watch\" id=\"watch\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eWatch-outs\u003c\/span\u003e\u003ch2\u003eThings to keep in mind\u003c\/h2\u003e\n\u003cp class=\"lead\"\u003eRisks and trade-offs to weigh before adopting Frontman.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cul class=\"brand-list\" style=\"grid-template-columns:repeat(2,1fr);display:grid;gap:12px 24px\"\u003e\n\u003cli\u003eThe site publishes two different prices: the terms of service, updated 5 May 2026, state a 7-day trial and EUR 20 per month, while the pricing page states a 14-day trial and EUR 15 per seat per month. Check the figures at checkout before subscribing.\u003c\/li\u003e\n\u003cli\u003eThe free trial requires a payment card from the start and converts automatically into a paid subscription unless you cancel before day 14.\u003c\/li\u003e\n\u003cli\u003eSelf-hosting is described as currently free and free while available, so the free route is not guaranteed over time; the pricing FAQ separately answers No to the existence of a free hosted plan.\u003c\/li\u003e\n\u003cli\u003eAI cost is extra and not capped by the publisher: it depends entirely on the key and the model you connect, and Anthropic, OpenAI or OpenRouter bills you directly.\u003c\/li\u003e\n\u003cli\u003eThe WordPress plugin is in beta and labelled experimental software, with staging and backups recommended by the publisher. On Next.js, the installer-generated middleware has no automatic development-only guard and can stay active in a deployment, so check your production build and whether the \/frontman route is exposed.\u003c\/li\u003e\n\u003cli\u003eTreat secrets carefully: authorised staff can decrypt the API keys stored in the hosted service, diagnostic filtering is imperfect, so avoid putting secrets in prompts, file names, logs or URLs, and remember that bring-your-own-key sends your content to a provider governed by its own terms, outside the publisher's control.\u003c\/li\u003e\n\u003cli\u003eThe safety of the model rests on humans actually reading the diffs, which is easy to skip once changes look right on screen. Note too that the hosted service is closed to consumers under §13 BGB, accounts are personal with team features not yet available, the Popular with engineers from logos are presented as individual engineers rather than company endorsements, and the .sh domain registered on 7 November 2025 and expiring on 7 November 2026 shows Israel as the registrant country while the operating company is German.\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/section\u003e\n\u003csection class=\"block\" id=\"setup\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eSetup\u003c\/span\u003e\u003ch2\u003eSetup \u0026amp; Integrations\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"setup-grid\"\u003e\n\u003cdiv class=\"setup-card\"\u003e\n\u003ch3 style=\"font-size:15px;margin-bottom:10px\"\u003eTechnical difficulty\u003c\/h3\u003e\n\u003cp class=\"justify\" style=\"color:var(--gv3-ink-2);margin:0 0 14px\"\u003eLow for daily use, moderate to install, high to self-host. On a JavaScript framework, one command (npx or astro add) takes about 60 seconds, but it modifies your dev configuration and requires a local dev server, which rules out StackBlitz or CodeSandbox. WordPress needs 6.0+, PHP 7.4+ and administrator access. In both cases you must connect an AI provider key or sign in by OAuth. Self-hosting is far more demanding: an HTTPS endpoint with WebSocket, a database, outbound access to WorkOS and LLM providers, plus updates and network controls. No coding skill is needed for everyday use.\u003c\/p\u003e\n\u003ch3 style=\"font-size:15px;margin:14px 0 10px\"\u003eDeployment\u003c\/h3\u003e\n\u003cdiv class=\"flag-row\"\u003e\n\u003cspan class=\"flag\"\u003eWeb app\u003c\/span\u003e\u003cspan class=\"flag\"\u003ePlugin\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"setup-card\"\u003e\n\u003ch3 style=\"font-size:15px;margin-bottom:10px\"\u003eIntegrations\u003c\/h3\u003e\n\u003cdiv class=\"integrations\"\u003e\n\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Next.js\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Astro\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Vite\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e WordPress\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e React\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Vue\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Svelte\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e SolidJS\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Gutenberg\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Elementor\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e WooCommerce\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Turbopack\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Anthropic\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e OpenAI\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e OpenRouter\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Google\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e XAI\u003c\/span\u003e\u003cspan class=\"integration\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z\"\u003e\u003c\/path\u003e\u003cpath d=\"m2 22 3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M7.5 13.5 10 11\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 16.5 13 14\"\u003e\u003c\/path\u003e\u003cpath d=\"m18 3-4 4h6l-4 4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e GitHub\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"block soft\" id=\"company\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eCompany\u003c\/span\u003e\u003ch2\u003eBehind Frontman\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"company-grid\"\u003e\n\u003cdiv class=\"company-card\"\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eCompany name\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e\u003cb\u003eBoilerplate Ventures UG (haftungsbeschränkt)\u003c\/b\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eFounded\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e16\/02\/2026\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eCountry of origin\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e🇩🇩 Germany\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eHeadquarters\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eGalenusstraße 63D, 13187 Berlin, Germany\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eUBO\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003eFridland Dimitri\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eUBO country\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e🇩🇩 Germany\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eDomain registrar country\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e🇺🇸 United States\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eLegal contact\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e\u003ca href=\"mailto:support@frontman.sh\"\u003esupport@frontman.sh\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kv\"\u003e\n\u003cdiv class=\"k\"\u003eSupport contact\u003c\/div\u003e\n\u003cdiv class=\"v\"\u003e\u003ca href=\"mailto:support@frontman.sh\"\u003esupport@frontman.sh\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"display:grid;gap:14px\"\u003e\u003cdiv class=\"company-card\"\u003e\n\u003ch3 style=\"font-size:15px;margin-bottom:10px\"\u003eFundraising\u003c\/h3\u003e\n\u003cdiv class=\"timeline\"\u003e\n\u003cdiv class=\"ev\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z\"\u003e\u003c\/path\u003e\u003cpath d=\"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e No fundraising round is announced on any of Frontman's published pages, and a targeted search of the German company register returned no financing information.\u003c\/div\u003e\n\u003cdiv class=\"ev\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z\"\u003e\u003c\/path\u003e\u003cpath d=\"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e The operating company, Boilerplate Ventures UG (haftungsbeschränkt), is registered with a share capital of EUR 500; co-founder Danni Friedland is presented as a former founder of the sales technology company Walnut Inc.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"block\" id=\"resources\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eOfficial links\u003c\/span\u003e\u003ch2\u003eResources\u003c\/h2\u003e\n\u003cp class=\"lead\"\u003eAll the official URLs gathered for verification and reference.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"res-grid\"\u003e\n\u003ca class=\"res\" href=\"https:\/\/frontman.sh\/\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"\u003e\u003c\/circle\u003e\u003cpath d=\"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\"\u003e\u003c\/path\u003e\u003cpath d=\"M2 12h20\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cdiv class=\"res-text\"\u003e\n\u003cdiv\u003eHomepage\u003c\/div\u003e\n\u003cdiv class=\"url\"\u003efrontman.sh\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/a\u003e\u003ca class=\"res\" href=\"https:\/\/frontman.sh\/pricing\/\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"12\" y1=\"2\" x2=\"12\" y2=\"22\"\u003e\u003c\/line\u003e\u003cpath d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cdiv class=\"res-text\"\u003e\n\u003cdiv\u003ePricing\u003c\/div\u003e\n\u003cdiv class=\"url\"\u003efrontman.sh\/pricing\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/a\u003e\u003ca class=\"res\" href=\"https:\/\/frontman.sh\/features\/\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolygon points=\"12 2 2 7 12 12 22 7 12 2\"\u003e\u003c\/polygon\u003e\u003cpolyline points=\"2 17 12 22 22 17\"\u003e\u003c\/polyline\u003e\u003cpolyline points=\"2 12 12 17 22 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003cdiv class=\"res-text\"\u003e\n\u003cdiv\u003eFeatures\u003c\/div\u003e\n\u003cdiv class=\"url\"\u003efrontman.sh\/features\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/a\u003e\u003ca class=\"res\" href=\"https:\/\/frontman.sh\/about\/\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"\u003e\u003c\/circle\u003e\u003cline x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"\u003e\u003c\/line\u003e\u003cline x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003cdiv class=\"res-text\"\u003e\n\u003cdiv\u003eAbout\u003c\/div\u003e\n\u003cdiv class=\"url\"\u003efrontman.sh\/about\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/a\u003e\u003ca class=\"res\" href=\"https:\/\/frontman.sh\/contact\/\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003crect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"m22 7-10 5L2 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cdiv class=\"res-text\"\u003e\n\u003cdiv\u003eContact\u003c\/div\u003e\n\u003cdiv class=\"url\"\u003efrontman.sh\/contact\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/a\u003e\u003ca class=\"res\" href=\"https:\/\/playground.wordpress.net\/?networking=yes\u0026amp;blueprint-url=https%3A%2F%2Ffrontman.sh%2Fwordpress-playground%2Fblueprint.json\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolygon points=\"6 3 20 12 6 21 6 3\"\u003e\u003c\/polygon\u003e\u003c\/svg\u003e\u003cdiv class=\"res-text\"\u003e\n\u003cdiv\u003eDemo\u003c\/div\u003e\n\u003cdiv class=\"url\"\u003eplayground.wordpress.net\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/a\u003e\u003ca class=\"res\" href=\"https:\/\/frontman.sh\/terms\/\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003cline x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\u003e\u003c\/line\u003e\u003cline x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\u003e\u003c\/line\u003e\u003cpolyline points=\"10 9 9 9 8 9\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003cdiv class=\"res-text\"\u003e\n\u003cdiv\u003eTerms\u003c\/div\u003e\n\u003cdiv class=\"url\"\u003efrontman.sh\/terms\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/a\u003e\u003ca class=\"res\" href=\"https:\/\/frontman.sh\/privacy\/\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cdiv class=\"res-text\"\u003e\n\u003cdiv\u003ePrivacy policy\u003c\/div\u003e\n\u003cdiv class=\"url\"\u003efrontman.sh\/privacy\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/a\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"block soft\" id=\"alternatives\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eCompare\u003c\/span\u003e\u003ch2\u003eAlternatives\u003c\/h2\u003e\n\u003cp class=\"lead\"\u003eTools that compete with or complement Frontman.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"alts\"\u003e\n\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eC\u003c\/span\u003e Cursor\u003c\/span\u003e\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eG\u003c\/span\u003e GitHub Copilot\u003c\/span\u003e\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eC\u003c\/span\u003e Claude Desktop\u003c\/span\u003e\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eC\u003c\/span\u003e Claude Code\u003c\/span\u003e\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eS\u003c\/span\u003e Stagewise\u003c\/span\u003e\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eV\u003c\/span\u003e v0\u003c\/span\u003e\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eB\u003c\/span\u003e Bolt.new\u003c\/span\u003e\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eL\u003c\/span\u003e Lovable\u003c\/span\u003e\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eO\u003c\/span\u003e Onlook\u003c\/span\u003e\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eO\u003c\/span\u003e OpenClaw\u003c\/span\u003e\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eK\u003c\/span\u003e Kombai\u003c\/span\u003e\u003cspan class=\"alt\"\u003e\u003cspan class=\"av\"\u003eW\u003c\/span\u003e Windsurf\u003c\/span\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"block\" id=\"faq\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eFAQ\u003c\/span\u003e\u003ch2\u003eFrequently asked questions\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"faq\"\u003e\n\u003cdetails\u003e\u003csummary\u003eWhat is Frontman? \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\u003e\u003c\/line\u003e\u003cline x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/summary\u003e\u003cdiv class=\"ans justify\"\u003eFrontman is an AI website editor for sites that already exist. It runs inside WordPress or inside your framework dev server, presents a chat next to a live view of the page you are working on, reads the live page plus the CMS or source context, and turns visual requests into reviewable website updates.\u003c\/div\u003e\u003c\/details\u003e\u003cdetails\u003e\u003csummary\u003eHow is it different from Cursor or Claude Code? \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\u003e\u003c\/line\u003e\u003cline x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/summary\u003e\u003cdiv class=\"ans justify\"\u003eThose tools start from files or from the terminal. Frontman starts from the site itself: the live page, the elements you select, the computed CSS, the CMS or component context, the routes and the dev server logs. It is a visual frontend editor with runtime context, not a general-purpose AI coding tool.\u003c\/div\u003e\u003c\/details\u003e\u003cdetails\u003e\u003csummary\u003eWhich frameworks and CMS platforms are supported? \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\u003e\u003c\/line\u003e\u003cline x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/summary\u003e\u003cdiv class=\"ans justify\"\u003eNext.js with both App Router and Pages Router, Webpack and Turbopack; Astro in SSR, SSG and hybrid modes with Islands architecture; Vite with React, Vue, Svelte and SolidJS; and WordPress through a native plugin. Angular, Remix and standalone SvelteKit are not supported.\u003c\/div\u003e\u003c\/details\u003e\u003cdetails\u003e\u003csummary\u003eHow much does it cost, and are AI costs included? \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\u003e\u003c\/line\u003e\u003cline x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/summary\u003e\u003cdiv class=\"ans justify\"\u003eFrontman Pro costs EUR 15 per seat per month or EUR 150 per seat per year, with a 14-day trial that requires a payment card. Self-hosting is currently free. AI costs are not included: you connect your own provider key and Anthropic, OpenAI or OpenRouter bills you separately.\u003c\/div\u003e\u003c\/details\u003e\u003cdetails\u003e\u003csummary\u003eWhich AI providers can I connect? \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\u003e\u003c\/line\u003e\u003cline x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/summary\u003e\u003cdiv class=\"ans justify\"\u003eAnthropic, OpenAI, OpenRouter, Google, xAI and any OpenAI-compatible API. You can also sign in with OAuth if you already have a Claude or ChatGPT subscription. The model is bring-your-own-key, so you choose the provider and control the spend.\u003c\/div\u003e\u003c\/details\u003e\u003cdetails\u003e\u003csummary\u003eIs Frontman open source? \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\u003e\u003c\/line\u003e\u003cline x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/summary\u003e\u003cdiv class=\"ans justify\"\u003eIt is source-available on GitHub rather than open source under a single licence. The browser client and the JavaScript integrations are Apache-2.0, the WordPress plugin is GPL-2.0-or-later, and the server is AGPL-3.0-only with AI Supplementary Terms. Code and prompts can be inspected.\u003c\/div\u003e\u003c\/details\u003e\u003cdetails\u003e\u003csummary\u003eIs it risky to let non-engineers change the code? \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\u003e\u003c\/line\u003e\u003cline x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/summary\u003e\u003cdiv class=\"ans justify\"\u003eThe JavaScript integrations are for development only and never for production, and every change produces a diff that a developer reviews before it ships. The WordPress plugin is the exception: it can run in production, but the publisher calls it experimental software and recommends starting in staging and keeping backups.\u003c\/div\u003e\u003c\/details\u003e\u003cdetails\u003e\u003csummary\u003eIs my data used to train AI models, and where is it hosted? \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\u003e\u003c\/line\u003e\u003cline x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/summary\u003e\u003cdiv class=\"ans justify\"\u003eThe publisher states in both the terms and the privacy policy that Customer Content is not used to train or fine-tune AI models. The hosted service runs in the European Union on Hetzner infrastructure. Under bring-your-own-key, your content also reaches the AI provider you chose, under that provider's own terms.\u003c\/div\u003e\u003c\/details\u003e\u003cdetails\u003e\u003csummary\u003eWhat can Frontman not do? \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cline x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\u003e\u003c\/line\u003e\u003cline x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/summary\u003e\u003cdiv class=\"ans justify\"\u003eIt offers no inline suggestions or tab completion, runs no shell commands, executes no tests, performs no git operations by itself and does not generate new projects. It also cannot work in cloud environments such as StackBlitz or CodeSandbox, since a local dev server is required.\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"block conclusion\" id=\"conclusion\"\u003e\u003cdiv class=\"head\"\u003e\n\u003cspan class=\"eyebrow\"\u003eConclusion\u003c\/span\u003e\u003ch2\u003eShould you pick Frontman?\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rich justify\" style=\"max-width:80ch\"\u003e\n\u003cp\u003eFrontman occupies a narrow position and owns it. It is not a general-purpose coding agent, and the publisher says so in its own documentation: no inline completion, no shell, no test runs, no git operations by the agent, no new project generation. Instead it edits websites that already exist, starting from the page itself.\u003c\/p\u003e\n\u003cp\u003eThe real differentiator is runtime context. Where file-reading agents work blind to the rendering, Frontman feeds the model the actual DOM, computed CSS, component boundaries, source maps, routes and dev server logs. That explains why designers, product managers and marketers can drive it while developers keep control: every change comes back as a git diff someone reviews.\u003c\/p\u003e\n\u003cp\u003eThe market coverage is unusual: WordPress on one side, modern JavaScript frameworks on the other. Few tools serve both, and the paths differ, since the framework middleware is development-only by design while the WordPress plugin can run in production.\u003c\/p\u003e\n\u003cp\u003eLegal and privacy hygiene sits well above average for a company this size, with an Article 28 DPA, published technical and organisational measures, a subprocessor list, a German impressum, EU hosting on Hetzner and an explicit commitment not to train on customer content.\u003c\/p\u003e\n\u003cp\u003eThe reservations are equally real. Boilerplate Ventures UG is a very young, very small company with EUR 500 of share capital, and its own security page frames its measures as appropriate for a small B2B startup. The WordPress plugin is in beta and labelled experimental. The site contradicts itself on price, with 7 days and EUR 20 per month in the terms against 14 days and EUR 15 per seat on the pricing page. And free self-hosting is presented as free \u003ci\u003ecurrently\u003c\/i\u003e. Check the figures at checkout, start on staging, and keep the diff review discipline that makes the whole model safe.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"cta-row\"\u003e\n\u003ca class=\"btn btn-primary\" href=\"https:\/\/frontman.sh\/\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M15 3h6v6\"\u003e\u003c\/path\u003e\u003cpath d=\"M10 14 21 3\"\u003e\u003c\/path\u003e\u003cpath d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e Visit Frontman\u003c\/a\u003e\u003ca class=\"btn btn-secondary\" href=\"https:\/\/playground.wordpress.net\/?networking=yes\u0026amp;blueprint-url=https%3A%2F%2Ffrontman.sh%2Fwordpress-playground%2Fblueprint.json\" target=\"_blank\" rel=\"noopener\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\"\u003e\u003cpolygon points=\"6 3 20 12 6 21 6 3\"\u003e\u003c\/polygon\u003e\u003c\/svg\u003e Watch the demo\u003c\/a\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003c\/div\u003e","brand":"Boilerplate Ventures UG (haftungsbeschränkt)","offers":[{"title":"Default Title","offer_id":58253631422795,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1038\/0905\/7099\/files\/official-frontman-by-guidaio_cfff4463-e68f-46a5-844d-72b6884d395c.png?v=1787694891","url":"https:\/\/guidaio.com\/products\/frontman","provider":"Guidaio","version":"1.0","type":"link"}