<div class="min-h-screen">
<!-- Hero Section -->
<section class="relative overflow-hidden">
<div class="absolute inset-0 bg-gradient-to-br from-primary-900/20 via-background to-background"></div>
<div class="relative max-w-6xl mx-auto px-6 py-24 lg:py-32">
<div class="text-center">
<div class="flex flex-wrap gap-2 justify-center mb-8">
<div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-primary-500/10 text-primary-400 text-sm font-medium">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
<path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"/>
</svg>
Built for Rust • Inspired by Prisma
</div>
<div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-success-500/10 text-success-400 text-sm font-medium">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/>
</svg>
3x faster than Diesel for simple filters
</div>
</div>
<h1 class="text-5xl lg:text-7xl font-bold mb-6 bg-gradient-to-r from-primary-400 via-primary-300 to-accent-400 bg-clip-text text-transparent">
Prax ORM
</h1>
<p class="text-xl lg:text-2xl text-muted max-w-3xl mx-auto mb-12">
A next-generation, type-safe ORM for Rust with a beautiful schema language,
powerful query builder, and first-class async support.
</p>
<div class="flex flex-col sm:flex-row gap-4 justify-center">
<a routerLink="/quickstart"
class="inline-flex items-center gap-2 px-8 py-4 bg-primary-600 hover:bg-primary-500 text-white font-semibold rounded-xl transition-colors">
Get Started
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"/>
</svg>
</a>
<a href="https://github.com/pegasusheavy/prax-orm" target="_blank"
class="inline-flex items-center gap-2 px-8 py-4 bg-surface-elevated hover:bg-surface border border-border text-foreground font-semibold rounded-xl transition-colors">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
</svg>
View on GitHub
</a>
</div>
</div>
</div>
</section>
<!-- Code Preview -->
<section class="max-w-6xl mx-auto px-6 -mt-8">
<div class="grid lg:grid-cols-2 gap-6">
<div>
<h3 class="text-sm font-semibold text-muted uppercase tracking-wider mb-3">Schema Definition</h3>
<app-code-block
[code]="schemaCode"
language="prax"
filename="prax/schema.prax"
/>
</div>
<div>
<h3 class="text-sm font-semibold text-muted uppercase tracking-wider mb-3">Type-Safe Queries</h3>
<app-code-block
[code]="queryCode"
language="rust"
filename="main.rs"
/>
</div>
</div>
</section>
<!-- Features -->
<section class="max-w-6xl mx-auto px-6 py-24">
<div class="text-center mb-16">
<h2 class="text-3xl lg:text-4xl font-bold mb-4">Why Prax?</h2>
<p class="text-lg text-muted max-w-2xl mx-auto">
Everything you need to build robust, scalable database applications in Rust.
</p>
</div>
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
<!-- Feature 1 -->
<div class="p-6 rounded-2xl bg-surface border border-border hover:border-primary-500/50 transition-colors">
<div class="w-12 h-12 rounded-xl bg-primary-500/10 flex items-center justify-center mb-4">
<svg class="w-6 h-6 text-primary-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/>
</svg>
</div>
<h3 class="text-xl font-semibold mb-2">Type Safety</h3>
<p class="text-muted">
Catch errors at compile time with fully typed queries. No runtime surprises.
</p>
</div>
<!-- Feature 2 -->
<div class="p-6 rounded-2xl bg-surface border border-border hover:border-primary-500/50 transition-colors">
<div class="w-12 h-12 rounded-xl bg-success-500/10 flex items-center justify-center mb-4">
<svg class="w-6 h-6 text-success-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/>
</svg>
</div>
<h3 class="text-xl font-semibold mb-2">Blazing Fast</h3>
<p class="text-muted">
1.7ns filter creation, 64-byte cache-friendly layout. 6x faster than Diesel for SQL building.
</p>
</div>
<!-- Feature 3 -->
<div class="p-6 rounded-2xl bg-surface border border-border hover:border-primary-500/50 transition-colors">
<div class="w-12 h-12 rounded-xl bg-accent-500/10 flex items-center justify-center mb-4">
<svg class="w-6 h-6 text-accent-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4"/>
</svg>
</div>
<h3 class="text-xl font-semibold mb-2">Multi-Database</h3>
<p class="text-muted">
PostgreSQL, MySQL, SQLite, MongoDB, MSSQL, and DuckDB support.
</p>
</div>
<!-- Feature 4 -->
<div class="p-6 rounded-2xl bg-surface border border-border hover:border-primary-500/50 transition-colors">
<div class="w-12 h-12 rounded-xl bg-warning-500/10 flex items-center justify-center mb-4">
<svg class="w-6 h-6 text-warning-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
</svg>
</div>
<h3 class="text-xl font-semibold mb-2">Beautiful Schema</h3>
<p class="text-muted">
Intuitive schema language inspired by Prisma. Easy to read and write.
</p>
</div>
<!-- Feature 5 -->
<div class="p-6 rounded-2xl bg-surface border border-border hover:border-primary-500/50 transition-colors">
<div class="w-12 h-12 rounded-xl bg-error-500/10 flex items-center justify-center mb-4">
<svg class="w-6 h-6 text-error-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"/>
</svg>
</div>
<h3 class="text-xl font-semibold mb-2">Migrations</h3>
<p class="text-muted">
Automatic schema diffing and migration generation. No manual SQL required.
</p>
</div>
<!-- Feature 6 -->
<div class="p-6 rounded-2xl bg-surface border border-border hover:border-primary-500/50 transition-colors">
<div class="w-12 h-12 rounded-xl bg-info-500/10 flex items-center justify-center mb-4">
<svg class="w-6 h-6 text-info-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"/>
</svg>
</div>
<h3 class="text-xl font-semibold mb-2">Raw SQL Escape</h3>
<p class="text-muted">
Full control when you need it with type-safe raw SQL queries.
</p>
</div>
<!-- Feature 7 -->
<div class="p-6 rounded-2xl bg-surface border border-border hover:border-primary-500/50 transition-colors">
<div class="w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center mb-4">
<svg class="w-6 h-6 text-purple-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"/>
</svg>
</div>
<h3 class="text-xl font-semibold mb-2">Multi-Tenancy</h3>
<p class="text-muted">
Zero-allocation tenant context, RLS integration, and sharded caching.
</p>
</div>
<!-- Feature 8 -->
<div class="p-6 rounded-2xl bg-surface border border-border hover:border-primary-500/50 transition-colors">
<div class="w-12 h-12 rounded-xl bg-cyan-500/10 flex items-center justify-center mb-4">
<svg class="w-6 h-6 text-cyan-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4"/>
</svg>
</div>
<h3 class="text-xl font-semibold mb-2">Data Caching</h3>
<p class="text-muted">
In-memory LRU cache, Redis support, and tiered L1/L2 caching.
</p>
</div>
<!-- Feature 9 -->
<div class="p-6 rounded-2xl bg-surface border border-border hover:border-primary-500/50 transition-colors">
<div class="w-12 h-12 rounded-xl bg-orange-500/10 flex items-center justify-center mb-4">
<svg class="w-6 h-6 text-orange-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
</svg>
</div>
<h3 class="text-xl font-semibold mb-2">Memory Profiling</h3>
<p class="text-muted">
Allocation tracking, leak detection, and CI integration.
</p>
</div>
</div>
</section>
<!-- Quick Example -->
<section class="bg-surface border-y border-border">
<div class="max-w-6xl mx-auto px-6 py-24">
<div class="text-center mb-16">
<h2 class="text-3xl lg:text-4xl font-bold mb-4">Simple Yet Powerful</h2>
<p class="text-lg text-muted max-w-2xl mx-auto">
From simple CRUD to complex queries with relations, Prax has you covered.
</p>
</div>
<div class="space-y-8">
<div>
<h3 class="text-lg font-semibold mb-4">Create with Relations</h3>
<app-code-block [code]="createExample" language="rust" />
</div>
<div>
<h3 class="text-lg font-semibold mb-4">Query with Filters</h3>
<app-code-block [code]="filterExample" language="rust" />
</div>
</div>
</div>
</section>
<!-- CTA -->
<section class="max-w-6xl mx-auto px-6 py-24 text-center">
<h2 class="text-3xl lg:text-4xl font-bold mb-4">Ready to Get Started?</h2>
<p class="text-lg text-muted max-w-2xl mx-auto mb-8">
Add Prax to your Rust project and start building type-safe database applications today.
</p>
<app-code-block [code]="installCode" language="toml" filename="Cargo.toml" />
<div class="mt-8">
<a routerLink="/quickstart"
class="inline-flex items-center gap-2 px-8 py-4 bg-primary-600 hover:bg-primary-500 text-white font-semibold rounded-xl transition-colors">
Read the Docs
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"/>
</svg>
</a>
</div>
</section>
<!-- Footer -->
<footer class="border-t border-border bg-surface">
<div class="max-w-6xl mx-auto px-6 py-12">
<div class="flex flex-col md:flex-row justify-between items-center gap-4">
<div class="flex items-center gap-3">
<div class="w-8 h-8 bg-gradient-to-br from-primary-500 to-primary-700 rounded-lg flex items-center justify-center">
<span class="text-white font-bold">P</span>
</div>
<span class="font-semibold">Prax ORM</span>
</div>
<p class="text-sm text-muted">
Built with 🦀 by <a href="https://pegasusheavy.com" class="text-primary-400 hover:underline">Pegasus Heavy Industries</a>
</p>
<div class="flex items-center gap-4">
<a href="https://github.com/pegasusheavy/prax-orm" target="_blank" class="text-muted hover:text-foreground transition-colors">
<svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24">
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
</svg>
</a>
</div>
</div>
</div>
</footer>
</div>