feat: overhaul home page, add Terms/Privacy, fix docs links, expand footer

- home.php: remove fake testimonials; add one-line install block with
  copy button; add NixPanel vs cPanel comparison table; add stack
  table; rewrite feature descriptions to be Rust-accurate
- terms.php: full Terms of Service (14 sections)
- privacy.php: full Privacy Policy (11 sections, GDPR-aware)
- index.php: add /terms and /privacy routes
- footer.php: expand to 4-column layout with Product, Resources,
  Support columns; add Terms/Privacy/Changelog/GitHub/bug report links
- header.php: point Docs to github.com/NixReaper/nixpanel-docs
This commit is contained in:
NixReaper
2026-04-25 05:49:36 -05:00
parent 29c18c5af8
commit 858c7ac56e
6 changed files with 348 additions and 20 deletions
+2
View File
@@ -51,6 +51,8 @@ match (true) {
$method === 'GET' && $uri === '/' => view('home'), $method === 'GET' && $uri === '/' => view('home'),
$method === 'GET' && $uri === '/pricing' => view('pricing'), $method === 'GET' && $uri === '/pricing' => view('pricing'),
$method === 'GET' && $uri === '/install' => view('install'), $method === 'GET' && $uri === '/install' => view('install'),
$method === 'GET' && $uri === '/terms' => view('terms'),
$method === 'GET' && $uri === '/privacy' => view('privacy'),
// ── Auth GET pages ──────────────────────────────────────────────────────── // ── Auth GET pages ────────────────────────────────────────────────────────
$method === 'GET' && $uri === '/login' => (function () { $method === 'GET' && $uri === '/login' => (function () {
+99 -11
View File
@@ -1,26 +1,37 @@
<?php $pageTitle = 'NixPanel — Modern Web Hosting Control Panel'; ?> <?php $pageTitle = 'NixPanel — Modern Web Hosting Control Panel'; ?>
<?php <?php
$features = [ $features = [
['icon' => '⚡', 'title' => 'Lightning Fast', 'body' => 'Built for performance. Nginx support, PHP-FPM pools, and optimized defaults out of the box.'], ['icon' => '⚡', 'title' => 'Lightning Fast', 'body' => 'Built in Rust. Near-zero overhead, instant response times, and a panel that never slows your server down.'],
['icon' => '🔒', 'title' => 'Security First', 'body' => "Hardened defaults, Let's Encrypt SSL automation, Fail2ban, and two-factor auth."], ['icon' => '🔒', 'title' => 'Security First', 'body' => "Argon2id password hashing, Let's Encrypt SSL automation, Fail2ban brute-force protection, and hardened defaults out of the box."],
['icon' => '🌐', 'title' => 'Full DNS Control', 'body' => 'Manage BIND9 zones and records directly from the panel. No third-party DNS required.'], ['icon' => '🌐', 'title' => 'Full DNS Control', 'body' => 'Manage PowerDNS zones and records directly from the panel. No third-party DNS required.'],
['icon' => '📊', 'title' => 'Complete Control', 'body' => 'Manage email, databases, cron jobs, FTP accounts, and subdomains in one clean dashboard.'], ['icon' => '📊', 'title' => 'Complete Control', 'body' => 'Manage email accounts, MariaDB databases, cron jobs, FTP, subdomains, and SSL — all from one clean dashboard.'],
['icon' => '🔄', 'title' => 'Easy Migration', 'body' => 'Moving from cPanel? Import your accounts with a single command using our migration tool.'], ['icon' => '🔄', 'title' => 'Easy Migration', 'body' => 'Moving from cPanel? Import accounts with a single command using the built-in migration tool.'],
['icon' => '💳', 'title' => 'Simple Licensing', 'body' => 'Tied to your server IP. No per-user fees, no surprises. Upgrade or cancel anytime.'], ['icon' => '💳', 'title' => 'Simple Licensing', 'body' => 'Tied to your server IP. No per-user fees, no agent installs, no surprises. Upgrade or cancel any time.'],
];
$stack = [
['label' => 'Web server', 'value' => 'Apache 2 + PHP-FPM 8.2 & 8.3'],
['label' => 'Database', 'value' => 'MariaDB (WordPress-compatible)'],
['label' => 'DNS', 'value' => 'PowerDNS'],
['label' => 'Mail', 'value' => 'Exim 4 + Dovecot + SpamAssassin'],
['label' => 'SSL', 'value' => "Let's Encrypt via Certbot"],
['label' => 'Backend', 'value' => 'Rust · Axum · SQLx · Tokio'],
['label' => 'Protection', 'value' => 'Fail2ban'],
]; ];
?> ?>
{{-- Hero --}}
<section class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-20 text-center"> <section class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 pt-24 pb-20 text-center">
<div class="inline-flex items-center gap-2 bg-brand-900/40 border border-brand-500/30 text-brand-400 text-xs font-medium px-3 py-1.5 rounded-full mb-6"> <div class="inline-flex items-center gap-2 bg-brand-900/40 border border-brand-500/30 text-brand-400 text-xs font-medium px-3 py-1.5 rounded-full mb-6">
Now in public beta Now in public beta · Free plan available
</div> </div>
<h1 class="text-5xl sm:text-6xl font-extrabold text-white leading-tight tracking-tight"> <h1 class="text-5xl sm:text-6xl font-extrabold text-white leading-tight tracking-tight">
The hosting control panel<br> The hosting control panel<br>
<span class="text-brand-500">you actually want to use.</span> <span class="text-brand-500">you actually want to use.</span>
</h1> </h1>
<p class="mt-6 text-lg text-gray-400 max-w-2xl mx-auto"> <p class="mt-6 text-lg text-gray-400 max-w-2xl mx-auto">
NixPanel is a modern, open-source alternative to cPanel. Manage your Linux server, NixPanel is a fast, modern alternative to cPanel and WHM. Manage your Linux server,
host sites, and control everything from a clean, fast dashboard. host websites, and control everything from a clean dashboard — built in Rust.
</p> </p>
<div class="mt-10 flex flex-col sm:flex-row gap-4 justify-center"> <div class="mt-10 flex flex-col sm:flex-row gap-4 justify-center">
<a href="/register" class="btn-primary text-base px-7 py-3">Get started free</a> <a href="/register" class="btn-primary text-base px-7 py-3">Get started free</a>
@@ -29,6 +40,23 @@ $features = [
</div> </div>
</section> </section>
{{-- One-line install --}}
<section class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 pb-20">
<div class="bg-gray-900 border border-gray-800 rounded-xl p-6">
<p class="text-xs text-gray-500 font-mono mb-3">Quick install — Ubuntu 24.04 LTS</p>
<div class="flex items-center gap-3">
<code class="flex-1 text-sm text-brand-400 font-mono bg-gray-950 rounded-lg px-4 py-3 overflow-x-auto whitespace-nowrap">
bash &lt;(curl -fsSL https://raw.githubusercontent.com/NixReaper/nixpanel/main/install.sh)
</code>
<button onclick="navigator.clipboard.writeText('bash <(curl -fsSL https://raw.githubusercontent.com/NixReaper/nixpanel/main/install.sh)')"
class="flex-shrink-0 text-xs text-gray-400 hover:text-white border border-gray-700 hover:border-gray-500 rounded-lg px-3 py-3 transition-colors">
Copy
</button>
</div>
</div>
</section>
{{-- Features --}}
<section class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-20"> <section class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
<h2 class="text-3xl font-bold text-white text-center mb-12">Everything you need to run a server</h2> <h2 class="text-3xl font-bold text-white text-center mb-12">Everything you need to run a server</h2>
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6"> <div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6">
@@ -42,10 +70,70 @@ $features = [
</div> </div>
</section> </section>
{{-- vs cPanel comparison --}}
<section class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
<h2 class="text-3xl font-bold text-white text-center mb-12">NixPanel vs cPanel</h2>
<div class="overflow-x-auto">
<table class="w-full text-sm">
<thead>
<tr class="border-b border-gray-800">
<th class="text-left text-gray-400 font-medium py-3 pr-6 w-1/2"></th>
<th class="text-center text-brand-400 font-semibold py-3 px-4">NixPanel</th>
<th class="text-center text-gray-500 font-medium py-3 px-4">cPanel/WHM</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-800/60">
<?php
$rows = [
['Starting price', '$0/mo', '$45–85/mo'],
['Open source', '✅', '❌'],
['Built in Rust', '✅', '❌ (Perl)'],
['PHP 8.2 & 8.3', '✅', '✅'],
['MariaDB support', '✅', '✅'],
['PowerDNS', '✅', '❌ (BIND)'],
["Let's Encrypt SSL", '✅', '✅'],
['IP-bound licensing', '✅ (no per-user fees)', '❌ (per-account pricing)'],
['Self-hosted', '✅', '✅'],
];
foreach ($rows as [$label, $nix, $cpanel]): ?>
<tr>
<td class="py-3 pr-6 text-gray-400"><?= e($label) ?></td>
<td class="py-3 px-4 text-center text-white font-medium"><?= e($nix) ?></td>
<td class="py-3 px-4 text-center text-gray-500"><?= e($cpanel) ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</div>
</section>
{{-- Stack --}}
<section class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
<div class="grid md:grid-cols-2 gap-12 items-center">
<div>
<h2 class="text-3xl font-bold text-white mb-4">A stack built to last</h2>
<p class="text-gray-400 mb-8">NixPanel installs and configures a complete, production-ready hosting stack — not scripts glued together, but a cohesive system that works out of the box.</p>
<a href="/install" class="btn-outline">Read the install guide →</a>
</div>
<div class="card divide-y divide-gray-800">
<?php foreach ($stack as $item): ?>
<div class="flex justify-between items-center py-3 first:pt-0 last:pb-0">
<span class="text-sm text-gray-400"><?= e($item['label']) ?></span>
<span class="text-sm text-white font-medium text-right"><?= e($item['value']) ?></span>
</div>
<?php endforeach ?>
</div>
</div>
</section>
{{-- CTA --}}
<section class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-20"> <section class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
<div class="bg-brand-900/20 border border-brand-500/20 rounded-2xl p-12 text-center"> <div class="bg-brand-900/20 border border-brand-500/20 rounded-2xl p-12 text-center">
<h2 class="text-3xl font-bold text-white mb-4">Ready to take control?</h2> <h2 class="text-3xl font-bold text-white mb-4">Ready to take control?</h2>
<p class="text-gray-400 mb-8">Start free. Upgrade when you need more.</p> <p class="text-gray-400 mb-8 max-w-lg mx-auto">Start on the free plan. Upgrade when you need more. No credit card required to get started.</p>
<a href="/register" class="btn-primary text-base px-8 py-3">Create your account</a> <div class="flex flex-col sm:flex-row gap-4 justify-center">
<a href="/register" class="btn-primary text-base px-8 py-3">Create your free account</a>
<a href="/pricing" class="btn-secondary text-base px-8 py-3">Compare plans</a>
</div>
</div> </div>
</section> </section>
+32 -8
View File
@@ -1,14 +1,38 @@
</main> </main>
<footer class="border-t border-gray-800 bg-gray-950 py-10 mt-16"> <footer class="border-t border-gray-800 bg-gray-950 py-12 mt-16">
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex flex-col md:flex-row justify-between items-center gap-4 text-sm text-gray-500"> <div class="grid grid-cols-2 md:grid-cols-4 gap-8 mb-10">
<span>&copy; <?= date('Y') ?> NixPanel. All rights reserved.</span> <div class="col-span-2 md:col-span-1">
<div class="flex gap-6"> <a href="/" class="text-lg font-bold text-white">Nix<span class="text-brand-500">Panel</span></a>
<a href="/pricing" class="hover:text-gray-300 transition-colors">Pricing</a> <p class="mt-2 text-sm text-gray-500 leading-relaxed">The hosting control panel<br>you actually want to use.</p>
<a href="/install" class="hover:text-gray-300 transition-colors">Install</a>
<a href="https://docs.nixpanel.io" target="_blank" rel="noreferrer" class="hover:text-gray-300 transition-colors">Docs</a>
<a href="/login" class="hover:text-gray-300 transition-colors">Login</a>
</div> </div>
<div>
<h4 class="text-xs font-semibold text-gray-400 uppercase tracking-wider mb-3">Product</h4>
<ul class="space-y-2 text-sm text-gray-500">
<li><a href="/pricing" class="hover:text-gray-300 transition-colors">Pricing</a></li>
<li><a href="/install" class="hover:text-gray-300 transition-colors">Install</a></li>
<li><a href="https://github.com/NixReaper/nixpanel/releases" target="_blank" rel="noreferrer" class="hover:text-gray-300 transition-colors">Changelog</a></li>
</ul>
</div>
<div>
<h4 class="text-xs font-semibold text-gray-400 uppercase tracking-wider mb-3">Resources</h4>
<ul class="space-y-2 text-sm text-gray-500">
<li><a href="https://github.com/NixReaper/nixpanel-docs" target="_blank" rel="noreferrer" class="hover:text-gray-300 transition-colors">Documentation</a></li>
<li><a href="https://github.com/NixReaper/nixpanel" target="_blank" rel="noreferrer" class="hover:text-gray-300 transition-colors">GitHub</a></li>
<li><a href="https://github.com/NixReaper/nixpanel/issues" target="_blank" rel="noreferrer" class="hover:text-gray-300 transition-colors">Report a bug</a></li>
</ul>
</div>
<div>
<h4 class="text-xs font-semibold text-gray-400 uppercase tracking-wider mb-3">Support</h4>
<ul class="space-y-2 text-sm text-gray-500">
<li><a href="mailto:[email protected]" class="hover:text-gray-300 transition-colors">support@nixpanel.io</a></li>
<li><a href="/terms" class="hover:text-gray-300 transition-colors">Terms of Service</a></li>
<li><a href="/privacy" class="hover:text-gray-300 transition-colors">Privacy Policy</a></li>
</ul>
</div>
</div>
<div class="border-t border-gray-800 pt-6 text-sm text-gray-600">
&copy; <?= date('Y') ?> NixPanel. All rights reserved.
</div> </div>
</div> </div>
</footer> </footer>
+1 -1
View File
@@ -8,7 +8,7 @@
<a href="/" class="hover:text-white transition-colors">Home</a> <a href="/" class="hover:text-white transition-colors">Home</a>
<a href="/pricing" class="hover:text-white transition-colors">Pricing</a> <a href="/pricing" class="hover:text-white transition-colors">Pricing</a>
<a href="/install" class="hover:text-white transition-colors">Install</a> <a href="/install" class="hover:text-white transition-colors">Install</a>
<a href="https://docs.nixpanel.io" target="_blank" rel="noreferrer" class="hover:text-white transition-colors">Docs</a> <a href="https://github.com/NixReaper/nixpanel-docs" target="_blank" rel="noreferrer" class="hover:text-white transition-colors">Docs</a>
</nav> </nav>
<div class="flex items-center gap-3"> <div class="flex items-center gap-3">
+117
View File
@@ -0,0 +1,117 @@
<?php $pageTitle = 'Privacy Policy — NixPanel'; ?>
<div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
<h1 class="text-4xl font-bold text-white mb-2">Privacy Policy</h1>
<p class="text-gray-500 text-sm mb-12">Last updated: April 25, 2025</p>
<div class="space-y-10 text-gray-300 leading-relaxed">
<section>
<h2 class="text-xl font-semibold text-white mb-3">1. Who We Are</h2>
<p>NixPanel operates nixpanel.io and the NixPanel licensing service. When we say "NixPanel", "we", "us", or "our", we mean the NixPanel service. Contact: <a href="mailto:[email protected]" class="text-brand-400 hover:underline">[email protected]</a>.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">2. Information We Collect</h2>
<h3 class="text-base font-medium text-gray-200 mb-2 mt-4">Account information</h3>
<ul class="list-disc list-inside space-y-1 text-gray-400">
<li>Full name and email address (provided at registration)</li>
<li>Password (stored as an Argon2id hash — we never store plaintext passwords)</li>
</ul>
<h3 class="text-base font-medium text-gray-200 mb-2 mt-4">Billing information</h3>
<ul class="list-disc list-inside space-y-1 text-gray-400">
<li>Stripe customer ID and subscription ID</li>
<li>Plan name, billing interval, and subscription status</li>
<li>Card details are handled entirely by Stripe — we never see or store your card number, CVV, or expiry date</li>
</ul>
<h3 class="text-base font-medium text-gray-200 mb-2 mt-4">License information</h3>
<ul class="list-disc list-inside space-y-1 text-gray-400">
<li>Your server's public IP address (required for license binding)</li>
<li>License activation and validation timestamps</li>
<li>IP change history</li>
</ul>
<h3 class="text-base font-medium text-gray-200 mb-2 mt-4">Usage information</h3>
<ul class="list-disc list-inside space-y-1 text-gray-400">
<li>Standard Apache access logs (IP address, user agent, page visited, timestamp) — retained for 30 days</li>
<li>License validation requests from your panel to our licensing server</li>
</ul>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">3. How We Use Your Information</h2>
<ul class="list-disc list-inside space-y-2 text-gray-400">
<li>To create and manage your account</li>
<li>To process payments and manage your subscription via Stripe</li>
<li>To issue, validate, and manage your NixPanel license</li>
<li>To send transactional emails (email verification, password reset, billing receipts)</li>
<li>To respond to support requests</li>
<li>To detect and prevent fraud and abuse</li>
<li>To comply with legal obligations</li>
</ul>
<p class="mt-4">We do <strong class="text-white">not</strong> use your data for advertising, and we do <strong class="text-white">not</strong> sell your data to third parties.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">4. Third-Party Services</h2>
<h3 class="text-base font-medium text-gray-200 mb-2 mt-4">Stripe</h3>
<p class="text-gray-400">Payment processing is handled by <a href="https://stripe.com" target="_blank" rel="noreferrer" class="text-brand-400 hover:underline">Stripe</a>. When you subscribe, you interact directly with Stripe's systems. Stripe's <a href="https://stripe.com/privacy" target="_blank" rel="noreferrer" class="text-brand-400 hover:underline">Privacy Policy</a> governs how they handle your payment data.</p>
<h3 class="text-base font-medium text-gray-200 mb-2 mt-4">Email delivery</h3>
<p class="text-gray-400">Transactional emails (verification, password reset) are sent via an SMTP provider. Your email address is shared with the provider solely for delivery purposes.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">5. Data Retention</h2>
<ul class="list-disc list-inside space-y-2 text-gray-400">
<li>Account and subscription data is retained while your account is active and for 90 days after deletion</li>
<li>Billing records are retained for 7 years as required by law</li>
<li>Web server access logs are purged after 30 days</li>
<li>License validation logs are retained for 90 days</li>
</ul>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">6. Your Rights</h2>
<p class="mb-3">Depending on your location, you may have the right to:</p>
<ul class="list-disc list-inside space-y-1 text-gray-400">
<li>Access the personal data we hold about you</li>
<li>Correct inaccurate data</li>
<li>Request deletion of your account and associated data</li>
<li>Export your data in a portable format</li>
<li>Object to or restrict certain processing</li>
</ul>
<p class="mt-4">To exercise any of these rights, email <a href="mailto:[email protected]" class="text-brand-400 hover:underline">[email protected]</a>. We will respond within 30 days.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">7. Security</h2>
<p>We take security seriously. Passwords are hashed with Argon2id. All data in transit is encrypted via TLS. Access to production databases is restricted to internal systems only. We follow responsible disclosure for any vulnerabilities — see our <a href="https://github.com/NixReaper/nixpanel/blob/master/SECURITY.md" target="_blank" rel="noreferrer" class="text-brand-400 hover:underline">Security Policy</a>.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">8. Cookies</h2>
<p>We use a single session cookie to keep you logged in. We do not use tracking, analytics, or advertising cookies. No third-party cookies are set by nixpanel.io.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">9. Children</h2>
<p>NixPanel is not directed at children under 16. We do not knowingly collect personal data from anyone under 16. If you believe we have done so in error, contact us immediately.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">10. Changes to This Policy</h2>
<p>We may update this Privacy Policy from time to time. Material changes will be communicated via email. Continued use of NixPanel after changes are effective constitutes acceptance of the revised policy.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">11. Contact</h2>
<p>Privacy questions or requests: <a href="mailto:[email protected]" class="text-brand-400 hover:underline">[email protected]</a></p>
</section>
</div>
</div>
+97
View File
@@ -0,0 +1,97 @@
<?php $pageTitle = 'Terms of Service — NixPanel'; ?>
<div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
<h1 class="text-4xl font-bold text-white mb-2">Terms of Service</h1>
<p class="text-gray-500 text-sm mb-12">Last updated: April 25, 2025</p>
<div class="space-y-10 text-gray-300 leading-relaxed">
<section>
<h2 class="text-xl font-semibold text-white mb-3">1. Agreement to Terms</h2>
<p>By accessing nixpanel.io or installing NixPanel software, you agree to be bound by these Terms of Service. If you do not agree, do not use NixPanel.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">2. Description of Service</h2>
<p>NixPanel provides a web hosting control panel ("Software") and a licensing SaaS platform ("Service"). The Software is installed on your servers. The Service manages license validation, billing, and your customer account.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">3. License</h2>
<p class="mb-3">Subject to these Terms and payment of applicable fees, NixPanel grants you a non-exclusive, non-transferable license to install and operate the Software on servers you own or control, up to the limit of your plan.</p>
<p>You may not:</p>
<ul class="list-disc list-inside mt-2 space-y-1 text-gray-400">
<li>Resell, sublicense, or redistribute the Software</li>
<li>Offer the Software as a managed service to third parties</li>
<li>Remove or alter copyright or attribution notices</li>
<li>Reverse-engineer or attempt to extract the source code of compiled binaries</li>
</ul>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">4. Account Registration</h2>
<p>You must provide accurate, complete information when creating an account. You are responsible for maintaining the security of your account credentials. Notify us immediately at <a href="mailto:[email protected]" class="text-brand-400 hover:underline">[email protected]</a> if you believe your account has been compromised.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">5. Billing & Payment</h2>
<p class="mb-3">Paid plans are billed on a recurring basis (monthly or annual) via Stripe. By subscribing, you authorise NixPanel to charge your payment method on each renewal date.</p>
<p class="mb-3">All prices are in USD. Taxes may apply depending on your jurisdiction.</p>
<p>We offer a full refund within <strong>7 days</strong> of your first payment if NixPanel does not work for your use case. After 7 days, payments are non-refundable. Contact <a href="mailto:[email protected]" class="text-brand-400 hover:underline">[email protected]</a> to request a refund.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">6. Cancellation</h2>
<p>You may cancel your subscription at any time from your dashboard. Cancellation takes effect at the end of the current billing period. You will not be charged again after cancellation and your panel will continue to function until the period ends.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">7. Licensing & IP Binding</h2>
<p class="mb-3">Each license is bound to a specific server IP address. You may change your bound IP address from your dashboard, subject to plan limits.</p>
<p>NixPanel periodically validates your license against our licensing server. A grace period of 7 days applies if validation cannot be completed due to network issues.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">8. Acceptable Use</h2>
<p>You must not use NixPanel to host content that:</p>
<ul class="list-disc list-inside mt-2 space-y-1 text-gray-400">
<li>Violates any applicable law or regulation</li>
<li>Infringes third-party intellectual property rights</li>
<li>Constitutes spam, phishing, or malware distribution</li>
<li>Facilitates attacks on other systems (DDoS, credential stuffing, etc.)</li>
</ul>
<p class="mt-3">Violation may result in immediate account termination without refund.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">9. Service Availability</h2>
<p>NixPanel is provided "as is." We do not guarantee uninterrupted access to nixpanel.io or license.nixpanel.io. Scheduled maintenance will be announced where possible. The 7-day grace period protects your panel during outages.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">10. Limitation of Liability</h2>
<p>To the maximum extent permitted by law, NixPanel shall not be liable for any indirect, incidental, special, consequential, or punitive damages, including loss of profits, data, or business, arising out of your use of the Software or Service. Our total liability shall not exceed the amount you paid in the 12 months preceding the claim.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">11. Termination</h2>
<p>We may suspend or terminate your account if you breach these Terms. You may terminate your account at any time by cancelling your subscription and contacting <a href="mailto:[email protected]" class="text-brand-400 hover:underline">[email protected]</a> to request deletion.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">12. Changes to Terms</h2>
<p>We may update these Terms from time to time. Material changes will be communicated via email at least 14 days before they take effect. Continued use after that date constitutes acceptance.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">13. Governing Law</h2>
<p>These Terms are governed by the laws of the United States. Any disputes shall be resolved through binding arbitration under the rules of the American Arbitration Association.</p>
</section>
<section>
<h2 class="text-xl font-semibold text-white mb-3">14. Contact</h2>
<p>Questions about these Terms? Email <a href="mailto:[email protected]" class="text-brand-400 hover:underline">[email protected]</a>.</p>
</section>
</div>
</div>