pricing: .50/mo with .00 startup discount

This commit is contained in:
Oliver
2026-06-06 08:01:07 -03:00
parent 58744de7ef
commit da40ccf934
+420 -25
View File
@@ -6,7 +6,7 @@
<!-- ── SEO: Primary ────────────────────────────────────────────── -->
<title>Derez.ai — Create Your AI Agent in 5 Minutes | Agent Hosting</title>
<meta name="description" content="Deploy your own AI agent in under 5 minutes. From signup to a working agent — $7.50/mo. Choose Hermes or OpenClaw. Full SSH access, automatic backups, and a powerful dashboard included." />
<meta name="description" content="Deploy your own AI agent in under 5 minutes. From signup to a working agent — $9.50/mo ($2 startup discount). Choose Hermes or OpenClaw. Full SSH access, automatic backups, and a powerful dashboard included." />
<meta name="keywords" content="create AI agent, AI agent hosting, deploy AI agent, hermes agent, openclaw agent, managed agent hosting, AI agent dashboard" />
<meta name="robots" content="index, follow" />
<link rel="canonical" href="https://derez.ai" />
@@ -15,14 +15,14 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://derez.ai" />
<meta property="og:title" content="Derez.ai — Create Your AI Agent in 5 Minutes" />
<meta property="og:description" content="Deploy your own AI agent in under 5 minutes. $7.50/mo. Full SSH access, backups, dashboard. Choose Hermes or OpenClaw." />
<meta property="og:description" content="Deploy your own AI agent in under 5 minutes. $9.50/mo ($2 startup discount). Full SSH access, backups, dashboard. Choose Hermes or OpenClaw." />
<meta property="og:image" content="https://derez.ai/og-image.png" />
<meta property="og:site_name" content="Derez.ai" />
<!-- ── SEO: Twitter ────────────────────────────────────────────── -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Derez.ai — Create Your AI Agent in 5 Minutes" />
<meta name="twitter:description" content="Deploy your own AI agent in under 5 minutes. $7.50/mo. Full SSH access, backups, dashboard." />
<meta name="twitter:description" content="Deploy your own AI agent in under 5 minutes. $9.50/mo ($2 startup discount). Full SSH access, backups, dashboard." />
<!-- ── Structured Data (JSON-LD) ────────────────────────────────── -->
<script type="application/ld+json">
@@ -35,7 +35,7 @@
"description": "Managed AI agent hosting platform. Deploy Hermes or OpenClaw agents in under 5 minutes with full SSH access, automatic backups, and a management dashboard.",
"offers": {
"@type": "Offer",
"price": "7.50",
"price": "9.50",
"priceCurrency": "USD",
"priceValidUntil": "2027-12-31"
},
@@ -94,7 +94,7 @@
"name": "How much does it cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Each agent instance costs $7.50 USD per month with monthly termination. Coupon codes are available for $5 OpenRouter credits."
"text": "Each agent instance is $9.50 USD per month with a $2.00 startup discount (you pay $7.50/mo). Monthly termination. Coupon codes are available for $5 OpenRouter credits."
}
}
]
@@ -757,6 +757,181 @@
gap: 20px;
}
/* ── Pricing discount (strikethrough + badge) ─────────── */
.pricing-original {
font-size: 1.2rem;
text-decoration: line-through;
color: var(--text-muted);
font-weight: 500;
margin-right: 6px;
opacity: 0.6;
}
.pricing-discounted {
font-size: inherit;
color: var(--success);
}
.pricing-discount-badge {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 4px 12px;
background: rgba(63, 201, 126, 0.12);
border: 1px solid rgba(63, 201, 126, 0.3);
border-radius: 20px;
font-size: 12px;
font-weight: 600;
color: var(--success);
margin: 6px 0 8px;
}
.pricing-amount {
display: flex;
align-items: baseline;
justify-content: center;
gap: 2px;
flex-wrap: wrap;
}
.pricing-amount .pricing-original {
font-size: 1.5rem;
}
.pricing-amount .pricing-discounted {
font-size: 3rem;
font-weight: 800;
}
.signup-pricing-amount {
display: flex;
align-items: baseline;
justify-content: center;
gap: 2px;
flex-wrap: wrap;
}
.signup-pricing-amount .pricing-original {
font-size: 1.1rem;
}
.signup-pricing-amount .pricing-discounted {
font-size: 24px;
font-weight: 800;
}
.signup-pricing-badge .pricing-discount-badge {
margin: 2px 0 6px;
}
/* ══════════════════════════════════════════════════════════
SIGNUP SECTION (inline form)
══════════════════════════════════════════════════════════ */
.signup-section {
padding: 80px 0 100px;
}
.signup-card {
max-width: 560px;
margin: 0 auto;
background: var(--bg-card);
border: 1px solid var(--border-hi);
border-radius: var(--radius-card);
padding: 36px 32px;
box-shadow: var(--shadow);
}
.signup-pricing-badge {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
gap: 6px;
margin-bottom: 20px;
padding: 16px 20px;
background: var(--accent-dim);
border: 1px solid rgba(79, 142, 247, 0.35);
border-radius: 12px;
}
.signup-pricing-amount {
font-size: 24px;
font-weight: 800;
color: var(--text);
letter-spacing: -0.3px;
line-height: 1;
}
.signup-pricing-amount span {
font-size: 13px;
font-weight: 500;
color: var(--text-muted);
}
.signup-pricing-term {
font-size: 11px;
color: var(--text-muted);
letter-spacing: 0.2px;
}
.signup-coupon-box { margin-bottom: 18px; }
.signup-coupon-input-wrap {
position: relative;
display: flex;
align-items: center;
}
.signup-coupon-input {
width: 100%;
padding: 8px 36px 8px 12px;
background: var(--bg-input);
border: 1px solid var(--border);
border-radius: var(--radius);
color: var(--text);
font-size: 13px;
outline: none;
transition: border-color 0.15s;
box-sizing: border-box;
}
.signup-coupon-input::placeholder { color: var(--text-muted); }
.signup-coupon-input:focus { border-color: var(--accent); }
.signup-coupon-input.signup-coupon-input-error { border-color: var(--danger); }
.signup-coupon-spinner {
position: absolute;
right: 10px;
display: flex;
align-items: center;
}
.signup-coupon-error {
margin-top: 5px;
font-size: 11px;
color: var(--danger);
}
.signup-coupon-success {
display: flex;
align-items: center;
gap: 6px;
margin-top: 8px;
padding: 8px 12px;
background: rgba(63, 201, 126, 0.1);
border: 1px solid rgba(63, 201, 126, 0.3);
border-radius: var(--radius);
font-size: 12px;
font-weight: 500;
color: var(--success);
}
.signup-form {
display: flex;
flex-direction: column;
gap: 12px;
}
.signup-form-row {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.signup-form-row .form-group {
flex: 1;
min-width: 130px;
}
.signup-form .auth-error,
.signup-form .auth-success {
display: none;
}
@media (max-width: 500px) {
.signup-card { padding: 24px 18px; }
.signup-form-row { flex-direction: column; }
}
/* ══════════════════════════════════════════════════════════
RESPONSIVE
══════════════════════════════════════════════════════════ */
@@ -881,7 +1056,7 @@
</div>
<div class="hero-stat">
<div class="hero-stat-num">$7.50/mo</div>
<div class="hero-stat-label">Per agent instance</div>
<div class="hero-stat-label">After startup discount</div>
</div>
<div class="hero-stat">
<div class="hero-stat-num">2</div>
@@ -1113,9 +1288,14 @@
<div class="pricing-card">
<div class="pricing-amount">
$7.50 <span>USD / month</span>
<span class="pricing-original">$9.50</span>
<span class="pricing-discounted">$7.50</span> <span>USD / month</span>
</div>
<p class="pricing-term">Per agent instance &middot; Monthly termination</p>
<div class="pricing-discount-badge">
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Startup Discount &minus;$2.00
</div>
<p class="pricing-term">Per agent instance &middot; Monthly termination &middot; Limited time</p>
<ul class="pricing-perks">
<li>
@@ -1191,7 +1371,7 @@
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</button>
<div class="faq-answer">
Each agent instance costs <strong>$7.50 USD per month</strong> with monthly termination. You can cancel anytime. Coupon codes are available for $5 OpenRouter credits to help you get started.
Each agent instance is <strong>$9.50 USD per month</strong> with a <strong>$2.00 startup discount</strong> (you pay <strong>$7.50/mo</strong>). Monthly termination. Cancel anytime. Coupon codes are available for $5 OpenRouter credits to help you get started.
</div>
</div>
@@ -1229,25 +1409,91 @@
</section>
<!-- ═══════════════════════════════════════════════════════════════
CTA
SIGNUP SECTION (inline)
═══════════════════════════════════════════════════════════════ -->
<section class="cta-section">
<section id="signup" class="signup-section">
<div class="container">
<h2>Ready to Create Your AI Agent?</h2>
<p>
Join others who have deployed their agents in minutes.
From signup to working agent in under 5.
</p>
<a href="https://app.derez.ai" class="btn btn-primary btn-lg">
Create Your Agent
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
<line x1="5" y1="12" x2="19" y2="12"/>
<polyline points="12 5 19 12 12 19"/>
</svg>
</a>
<p class="pricing-extra" style="margin-top: 20px;">
$7.50/mo &middot; Monthly cancellation &middot; &#127467;&#127479; France
<div class="section-label">Hire Your Agent</div>
<h2 class="section-title">Create Your AI Agent Now</h2>
<p class="section-sub">
Sign up, pick your agent, and get a dedicated instance with full access. Billed monthly.
</p>
<div class="signup-card">
<!-- Pricing badge -->
<div class="signup-pricing-badge">
<div class="signup-pricing-amount">
<span class="pricing-original">$9.50</span>
<span class="pricing-discounted">$7.50</span> <span>USD / month</span>
</div>
<div class="pricing-discount-badge">
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
Startup Discount &minus;$2.00
</div>
<div class="signup-pricing-term">Per agent instance &middot; Monthly termination &middot; Limited time</div>
</div>
<!-- Coupon -->
<div class="signup-coupon-box" id="signup-coupon-box">
<div class="signup-coupon-input-wrap">
<input
type="text"
id="signup-coupon-input"
class="signup-coupon-input"
placeholder="Coupon code"
onkeydown="handleCouponKey(event)"
autocomplete="off"
spellcheck="false"
/>
<span id="signup-coupon-spinner" class="signup-coupon-spinner" style="display: none">
<div class="spinner spinner-sm"></div>
</span>
</div>
<div id="signup-coupon-error" class="signup-coupon-error" style="display: none">
Invalid coupon code.
</div>
<div id="signup-coupon-success" class="signup-coupon-success" style="display: none">
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
<polyline points="20 6 9 17 4 12" />
</svg>
5 USD OpenRouter credits added &mdash; Order now below
</div>
</div>
<!-- Signup form -->
<form id="inline-signup-form" class="signup-form" onsubmit="event.preventDefault(); doInlineSignUp();">
<div class="signup-form-row">
<div class="form-group">
<label for="inline-signup-email">Email address</label>
<input type="email" id="inline-signup-email" placeholder="you@example.com" autocomplete="email" required />
</div>
<div class="form-group">
<label for="inline-signup-password">Password</label>
<input type="password" id="inline-signup-password" placeholder="Min. 8 characters" autocomplete="new-password" required />
</div>
</div>
<div class="signup-form-row">
<div class="form-group">
<label for="inline-signup-agent">Agent</label>
<select id="inline-signup-agent">
<option value="hermes">Hermes</option>
<option value="openclaw">OpenClaw</option>
</select>
</div>
<div class="form-group">
<label for="inline-signup-location">Agent Location</label>
<select id="inline-signup-location">
<option value="france">&#127467;&#127479; France</option>
</select>
</div>
</div>
<div id="inline-signup-error" class="auth-error" style="display: none"></div>
<div id="inline-signup-success" class="auth-success" style="display: none"></div>
<button type="submit" id="inline-signup-btn" class="btn btn-primary btn-block btn-lg">
Hire Agent &mdash; $9.50/mo
</button>
</form>
</div>
</div>
</section>
@@ -1261,6 +1507,7 @@
<a href="https://app.derez.ai">Dashboard</a>
<a href="#faq">FAQ</a>
<a href="https://hermes-agent.nousresearch.com" target="_blank" rel="noopener">Hermes Agent</a>
<a href="https://ODOO4projects.com" target="_blank" rel="noopener">Powered by ODOO4projects LLC</a>
</div>
</div>
</footer>
@@ -1288,6 +1535,154 @@
}
}
// ── Signup Webhook URLs (matching app.derez.ai) ──────────
const SIGNUP_URL = "https://n8n.derez.ai/webhook/4de196b7-2ad2-4f9a-9b4d-dc8d3b30865b";
const AUTH_URL = "https://n8n.derez.ai/webhook/aca1b27f-c18e-4424-b7a0-de01007a3fe6";
const COUPON_URL = "https://n8n.derez.ai/webhook/fd6375cb-6d73-4482-bfa3-ef8365f43a67";
let inlineCouponApplied = false;
// ── Helper: show/hide auth messages ──────────────────────
function showAuthError(id, msg) {
const el = document.getElementById(id);
el.textContent = msg;
el.style.display = "flex";
}
function hideAuthError(id) {
document.getElementById(id).style.display = "none";
}
// ── Helper: btn loading state ────────────────────────────
function btnLoad(btn, text) {
btn.disabled = true;
btn.textContent = text;
}
function btnReset(btn) {
btn.disabled = false;
btn.textContent = "Hire Agent — $9.50/mo";
}
function isValidEmail(e) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e);
}
// ── Coupon ──────────────────────────────────────────────
function handleCouponKey(e) {
if (e.key === "Enter") {
e.preventDefault();
applyInlineCoupon();
}
}
async function applyInlineCoupon() {
const input = document.getElementById("signup-coupon-input");
const spinner = document.getElementById("signup-coupon-spinner");
const errorEl = document.getElementById("signup-coupon-error");
const successEl = document.getElementById("signup-coupon-success");
const code = input.value.trim();
if (!code) return;
spinner.style.display = "flex";
errorEl.style.display = "none";
successEl.style.display = "none";
input.classList.remove("signup-coupon-input-error");
try {
const res = await fetch(COUPON_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ code })
});
if (!res.ok) throw new Error("Invalid");
const data = await res.json();
const raw = Array.isArray(data) ? data[0] : data;
const item = raw && typeof raw === "object" && "json" in raw ? raw.json : raw;
if (item?.valid === true || item?.status === "ok") {
inlineCouponApplied = true;
successEl.style.display = "flex";
input.style.display = "none";
} else {
throw new Error("Invalid");
}
} catch {
input.classList.add("signup-coupon-input-error");
errorEl.style.display = "block";
} finally {
spinner.style.display = "none";
}
}
// ── Sign Up (inline on landing page) ────────────────────
async function doInlineSignUp() {
const email = document.getElementById("inline-signup-email").value.trim();
const password = document.getElementById("inline-signup-password").value;
const agent = document.getElementById("inline-signup-agent").value;
const location = document.getElementById("inline-signup-location").value;
hideAuthError("inline-signup-error");
document.getElementById("inline-signup-success").style.display = "none";
if (!isValidEmail(email)) {
showAuthError("inline-signup-error", "Please enter a valid email address.");
return;
}
if (password.length < 8) {
showAuthError("inline-signup-error", "Password must be at least 8 characters.");
return;
}
const btn = document.getElementById("inline-signup-btn");
btnLoad(btn, "Hiring agent\u2026");
// Open blank tab synchronously for Stripe redirect
const stripeTab = window.open("", "_blank");
try {
// Step 1: authenticate
const authRes = await fetch(AUTH_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ email, password }),
});
if (!authRes.ok)
throw new Error("Account creation failed. Please try again later.");
// Step 2: create agent
const createRes = await fetch(SIGNUP_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ email, password, agent, location }),
});
if (!createRes.ok) {
throw new Error("Agent provisioning failed. Please contact support.");
}
const createData = await createRes.json();
const createRaw = Array.isArray(createData) ? createData[0] : createData;
const createItem = createRaw && typeof createRaw === "object" && "json" in createRaw ? createRaw.json : createRaw;
// Navigate the pre-opened tab to Stripe checkout
const checkoutUrl = createItem?.checkout_url || createItem?.checkoutUrl || createItem?.url;
if (checkoutUrl && checkoutUrl.startsWith("http")) {
stripeTab.location.href = checkoutUrl;
} else {
stripeTab.close();
}
// Show success message
document.getElementById("inline-signup-success").textContent =
"Agent created! \u2713 Redirecting to checkout\u2026";
document.getElementById("inline-signup-success").style.display = "flex";
} catch (err) {
stripeTab?.close();
showAuthError("inline-signup-error", err.message);
} finally {
btnReset(btn);
}
}
// ── Close mobile menu on link click ──────────────────────
document.querySelectorAll('.nav-links a').forEach(link => {
link.addEventListener('click', () => {