restore landing page 202604111758

This commit is contained in:
Mambo
2026-04-11 17:58:02 +02:00
parent 270e7bcfad
commit 6965089a15

View File

@@ -1 +1,248 @@
<html><body><h1>LLM Bench Test - Sat Apr 11 17:57:24 CEST 2026</h1><p>Webhook deploy working!</p></body></html>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DriftDB — La base de datos que piensa por ti</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
<style>
*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#0a0a0f;--surface:#13131f;--border:#1e1e32;--primary:#6c5ce7;--primary-light:#a29bfe;--accent:#00cec9;--text:#e0e0e8;--muted:#6b6b80}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
a{color:var(--primary-light);text-decoration:none}
a:hover{text-decoration:underline}
.container{MAX-WIDTH:1100px;margin:0 auto;padding:0 24px}
/* Hero */
.hero{padding:100px 0 80px;text-align:center;background:radial-gradient(ellipse at 50% 0%,rgba(108,92,231,.15) 0%,transparent 70%)}
.hero .badge{display:inline-block;background:rgba(108,92,231,.2);border:1px solid var(--primary);color:var(--primary-light);padding:4px 14px;border-radius:99px;font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:24px}
.hero h1{font-size:clamp(2.2rem,6vw,4rem);font-weight:800;line-height:1.1;margin-bottom:20px;background:linear-gradient(135deg,#fff 30%,var(--primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero .sub{font-size:1.15rem;color:var(--muted);max-width:560px;margin:0 auto 36px}
.hero .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:10px;font-weight:600;font-size:.95rem;transition:all .2s;cursor:pointer;border:none}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:#5b4bc4;transform:translateY(-1px)}
.btn-outline{border:1px solid var(--border);color:var(--text);background:transparent}.btn-outline:hover{border-color:var(--primary);color:var(--primary-light)}
/* Stats */
.stats{padding:48px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:24px;text-align:center}
.stat .num{font-size:2.2rem;font-weight:800;color:var(--accent)}
.stat .label{color:var(--muted);font-size:.85rem;margin-top:4px}
/* Chart section */
.chart-section{padding:60px 0;background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.chart-section h2{text-align:center;font-size:1.5rem;margin-bottom:32px}
.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:24px}
.chart-card{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:24px}
.chart-card h3{font-size:.9rem;color:var(--muted);margin-bottom:16px;text-transform:uppercase;letter-spacing:1px}
/* Features */
.features{padding:80px 0}
.features h2{text-align:center;font-size:1.8rem;margin-bottom:48px}
.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.feature-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px;transition:border-color .2s}
.feature-card:hover{border-color:var(--primary)}
.feature-card .icon{width:48px;height:48px;margin-bottom:16px;display:flex;align-items:center;justify-content:center;background:rgba(108,92,231,.15);border-radius:12px}
.feature-card h3{font-size:1.05rem;margin-bottom:10px}
.feature-card p{color:var(--muted);font-size:.88rem}
/* Testimonials */
.testimonials{padding:80px 0;background:var(--surface);border-top:1px solid var(--border)}
.testimonials h2{text-align:center;font-size:1.8rem;margin-bottom:48px}
.testimonials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.tcard{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:28px}
.tcard .stars{color:#f9ca24;margin-bottom:12px;font-size:.9rem;letter-spacing:2px}
.tcard blockquote{font-size:.95rem;margin-bottom:16px;color:var(--text)}
.tcard .author{display:flex;align-items:center;gap:12px}
.tcard .avatar{width:36px;height:36px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}
.tcard .name{font-weight:600;font-size:.88rem}
.tcard .role{color:var(--muted);font-size:.78rem}
/* Footer */
footer{padding:48px 0;border-top:1px solid var(--border);text-align:center}
footer .links{display:flex;gap:24px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}
footer .links a{color:var(--muted);font-size:.85rem}
footer .links a:hover{color:var(--text)}
footer .copy{color:var(--muted);font-size:.78rem}
@media(max-width:640px){.hero{padding:70px 0 60px}.chart-card{padding:16px}.features h2,.testimonials h2{font-size:1.4rem}}
</style>
</head>
<body>
<section class="hero">
<div class="container">
<div class="badge">NOW IN BETA</div>
<h1>La base de datos que aprende,<br>se adapta y evoluciona</h1>
<p class="sub">DriftDB observa cómo trabajas y reescribe su propio esquema para que cada query sea más rápida. Sin configuración. Sin tunear índices. Sin estrés.</p>
<div class="ctas">
<button class="btn btn-primary">Probar免费 en beta →</button>
<button class="btn btn-outline">Leer documentación</button>
</div>
</div>
</section>
<section class="stats">
<div class="container" style="display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:24px">
<div class="stat"><div class="num">73%</div><div class="label">menos queries lentas</div></div>
<div class="stat"><div class="num">0</div><div class="label">índices manuales</div></div>
<div class="stat"><div class="num">11ms</div><div class="label">latencia promedio</div></div>
<div class="stat"><div class="num"></div><div class="label">esquemAS auto-adaptables</div></div>
</div>
</section>
<section class="chart-section">
<div class="container">
<h2>Rendimiento real en producción</h2>
<div class="charts">
<div class="chart-card">
<h3>Latencia de queries (ms)</h3>
<canvas id="latencyChart" height="200"></canvas>
</div>
<div class="chart-card">
<h3>Queries por hora (miles)</h3>
<canvas id="queryChart" height="200"></canvas>
</div>
</div>
</div>
</section>
<section class="features">
<div class="container">
<h2>Built-in intelligence</h2>
<div class="features-grid">
<div class="feature-card">
<div class="icon">
<svg width="24" height="24" fill="none" stroke="#6c5ce7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
</div>
<h3>Auto-Indexing</h3>
<p>DriftDB detecta queries frecuentes y crea índices temporales que desaparecen cuando el patrón cambia.</p>
</div>
<div class="feature-card">
<div class="icon">
<svg width="24" height="24" fill="none" stroke="#6c5ce7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
</div>
<h3>Pre-computed queries</h3>
<p>Las queries que ejecutas 1000 veces al día se pre-computan en background. La primera ya no es lenta nunca más.</p>
</div>
<div class="feature-card">
<div class="icon">
<svg width="24" height="24" fill="none" stroke="#6c5ce7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M9 21V9"/></svg>
</div>
<h3>Schema Drift</h3>
<p>El esquema evoluciona con tu aplicación. Añades campos, cambias tipos, añades relaciones — DriftDB se adapta solito.</p>
</div>
<div class="feature-card">
<div class="icon">
<svg width="24" height="24" fill="none" stroke="#6c5ce7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
</div>
<h3>Zero-ops</h3>
<p>No hay DBA de guardia. No hay scripts de migración. No hay reuniones sobre index strategy. Solo datos.</p>
</div>
</div>
</div>
</section>
<section class="testimonials">
<div class="container">
<h2>Lo que dicen los early adopters</h2>
<div class="testimonials-grid">
<div class="tcard">
<div class="stars">★★★★★</div>
<blockquote>"Pasamos de 45 minutos de tuning semanal a cero. DriftDB simplemente funciona. Nuestra noche de deploy nunca fue tan tranquila."</blockquote>
<div class="author">
<div class="avatar">MR</div>
<div><div class="name">Marta Roca</div><div class="role">Backend Lead, FinReach GmbH</div></div>
</div>
</div>
<div class="tcard">
<div class="stars">★★★★★</div>
<blockquote>"Teníamos un servicio con 200k queries/día que se degradaba cada vez que crecía el tráfico. Desde DriftDB, ni un solo alert."</blockquote>
<div class="author">
<div class="avatar">AP</div>
<div><div class="name">Aleix Pasqual</div><div class="role">CTO, Nimbus Analytics</div></div>
</div>
</div>
<div class="tcard">
<div class="stars">★★★★★</div>
<blockquote>"El schema drift de Postgres era nuestro peor enemigo. Ahora el que se adapta somos nosotros — porque podemos."</blockquote>
<div class="author">
<div class="avatar">JL</div>
<div><div class="name">Jordi Llongueras</div><div class="role">Principal Engineer, Cloud tribal</div></div>
</div>
</div>
</div>
</div>
</section>
<footer>
<div class="container">
<div class="links">
<a href="#">Documentación</a>
<a href="#">API Reference</a>
<a href="#">GitHub</a>
<a href="#">Discord</a>
<a href="#">Blog</a>
<a href="#">Status</a>
</div>
<div class="copy">© 2026 DriftDB, Inc. — Barcelona, Spain</div>
</div>
</footer>
<script>
const latencyCtx = document.getElementById('latencyChart').getContext('2d');
new Chart(latencyCtx, {
type: 'line',
data: {
labels: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun'],
datasets: [{
label: 'PostgreSQL (tuned)',
data: [28, 31, 25, 33, 29, 30],
borderColor: '#6b6b80',
backgroundColor: 'rgba(107,107,128,.1)',
tension: .4,
fill: false
}, {
label: 'DriftDB',
data: [22, 18, 14, 11, 10, 9],
borderColor: '#00cec9',
backgroundColor: 'rgba(0,206,201,.1)',
tension: .4,
fill: true
}]
},
options: {
responsive: true,
plugins: { legend: { labels: { color: '#e0e0e8', font: { family: 'Inter' } } } },
scales: {
x: { ticks: { color: '#6b6b80' }, grid: { color: '#1e1e32' } },
y: { ticks: { color: '#6b6b80' }, grid: { color: '#1e1e32' } }
}
}
});
const queryCtx = document.getElementById('queryChart').getContext('2d');
new Chart(queryCtx, {
type: 'bar',
data: {
labels: ['Semana 1', 'Semana 2', 'Semana 3', 'Semana 4'],
datasets: [{
label: 'Queries (miles)',
data: [48, 62, 79, 103],
backgroundColor: 'rgba(108,92,231,.7)',
borderColor: '#6c5ce7',
borderWidth: 1
}]
},
options: {
responsive: true,
plugins: { legend: { labels: { color: '#e0e0e8', font: { family: 'Inter' } } } },
scales: {
x: { ticks: { color: '#6b6b80' }, grid: { color: '#1e1e32' } },
y: { ticks: { color: '#6b6b80' }, grid: { color: '#1e1e32' } }
}
}
});
</script>
</body>
</html>