+175
-12
@@ -1,5 +1,6 @@
|
||||
import { Head, Link, usePage } from '@inertiajs/react';
|
||||
import { Cloud, Network, Server, ShieldCheck } from 'lucide-react';
|
||||
import { BookOpen, Cloud, Network, Server, ShieldCheck } from 'lucide-react';
|
||||
import PublicThemeToggle from '@/components/public-theme-toggle';
|
||||
import { dashboard, login } from '@/routes';
|
||||
|
||||
export default function Welcome() {
|
||||
@@ -30,7 +31,7 @@ export default function Welcome() {
|
||||
return (
|
||||
<>
|
||||
<Head title="Network Device Management" />
|
||||
<main className="min-h-screen bg-slate-950 text-white">
|
||||
<main className="min-h-screen bg-background text-foreground transition-colors">
|
||||
<div className="mx-auto flex min-h-screen max-w-6xl flex-col px-6">
|
||||
<header className="flex items-center justify-between py-6">
|
||||
<div className="flex items-center gap-3">
|
||||
@@ -43,17 +44,34 @@ export default function Welcome() {
|
||||
<div className="font-semibold tracking-wide">
|
||||
RADIQ NDM
|
||||
</div>
|
||||
<div className="text-xs text-sky-300">
|
||||
<div className="text-xs text-sky-600 dark:text-sky-300">
|
||||
Network Device Management
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Link
|
||||
href={auth.user ? dashboard() : login()}
|
||||
className="rounded-lg bg-sky-500 px-5 py-2.5 text-sm font-semibold text-slate-950 hover:bg-sky-400"
|
||||
>
|
||||
{auth.user ? 'Dashboard' : 'Login'}
|
||||
</Link>
|
||||
<nav className="flex items-center gap-3">
|
||||
<PublicThemeToggle />
|
||||
<Link
|
||||
href="/documentation/deployment"
|
||||
className="hidden text-sm text-muted-foreground hover:text-foreground sm:inline"
|
||||
>
|
||||
Dokumentasi
|
||||
</Link>
|
||||
{!auth.user && (
|
||||
<Link
|
||||
href="/register"
|
||||
className="rounded-lg border border-sky-500/40 px-4 py-2.5 text-sm font-semibold text-sky-600 hover:bg-sky-400/10 dark:text-sky-300"
|
||||
>
|
||||
Daftar Tenant
|
||||
</Link>
|
||||
)}
|
||||
<Link
|
||||
href={auth.user ? dashboard() : login()}
|
||||
className="rounded-lg bg-sky-500 px-5 py-2.5 text-sm font-semibold text-slate-950 hover:bg-sky-400"
|
||||
>
|
||||
{auth.user ? 'Dashboard' : 'Login'}
|
||||
</Link>
|
||||
</nav>
|
||||
</header>
|
||||
<section className="grid flex-1 items-center gap-12 py-16 lg:grid-cols-2">
|
||||
<div>
|
||||
@@ -63,12 +81,27 @@ export default function Welcome() {
|
||||
<h1 className="text-4xl font-bold tracking-tight sm:text-6xl">
|
||||
Kelola akses perangkat jaringan dengan aman.
|
||||
</h1>
|
||||
<p className="mt-6 max-w-xl text-lg leading-8 text-slate-300">
|
||||
<p className="mt-6 max-w-xl text-lg leading-8 text-muted-foreground">
|
||||
Saat karyawan berpindah tugas atau keluar, akun
|
||||
perangkat dapat dinonaktifkan secara terpusat
|
||||
tanpa membuka setiap router, OLT, switch, atau
|
||||
access point satu per satu.
|
||||
</p>
|
||||
<div className="mt-8 flex flex-wrap gap-3">
|
||||
<Link
|
||||
href="/register"
|
||||
className="rounded-lg bg-sky-500 px-5 py-3 font-semibold text-slate-950 hover:bg-sky-400"
|
||||
>
|
||||
Mulai & Pilih Deployment
|
||||
</Link>
|
||||
<Link
|
||||
href="/documentation/deployment"
|
||||
className="inline-flex items-center gap-2 rounded-lg border border-border px-5 py-3 font-semibold hover:bg-muted"
|
||||
>
|
||||
<BookOpen className="size-4" /> Panduan
|
||||
Instalasi & Migrasi
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex justify-center">
|
||||
<img
|
||||
@@ -82,20 +115,150 @@ export default function Welcome() {
|
||||
{features.map((feature) => (
|
||||
<article
|
||||
key={feature.title}
|
||||
className="rounded-2xl border border-white/10 bg-white/5 p-5"
|
||||
className="rounded-2xl border border-border bg-card p-5"
|
||||
>
|
||||
<feature.icon className="mb-4 size-6 text-sky-400" />
|
||||
<h2 className="font-semibold">
|
||||
{feature.title}
|
||||
</h2>
|
||||
<p className="mt-2 text-sm leading-6 text-slate-400">
|
||||
<p className="mt-2 text-sm leading-6 text-muted-foreground">
|
||||
{feature.text}
|
||||
</p>
|
||||
</article>
|
||||
))}
|
||||
</section>
|
||||
<Pricing />
|
||||
<Roadmap />
|
||||
</div>
|
||||
</main>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
const plans = [
|
||||
{
|
||||
name: 'Cloud Free',
|
||||
price: 'Gratis',
|
||||
deployment: 'Cloud RADIQ',
|
||||
devices: '5 perangkat',
|
||||
users: '2 user aplikasi',
|
||||
featured: false,
|
||||
},
|
||||
{
|
||||
name: 'Cloud Micro',
|
||||
price: 'Rp99.000',
|
||||
deployment: 'Cloud RADIQ',
|
||||
devices: '25 perangkat',
|
||||
users: '5 user aplikasi',
|
||||
featured: false,
|
||||
},
|
||||
{
|
||||
name: 'Cloud ISP',
|
||||
price: 'Rp249.000',
|
||||
deployment: 'Cloud RADIQ',
|
||||
devices: '100 perangkat',
|
||||
users: '15 user aplikasi',
|
||||
featured: true,
|
||||
},
|
||||
{
|
||||
name: 'Local Micro',
|
||||
price: 'Rp69.000',
|
||||
deployment: 'Self-hosted',
|
||||
devices: '50 perangkat',
|
||||
users: '5 user aplikasi',
|
||||
featured: false,
|
||||
},
|
||||
{
|
||||
name: 'Local ISP',
|
||||
price: 'Rp149.000',
|
||||
deployment: 'Self-hosted',
|
||||
devices: '250 perangkat',
|
||||
users: '20 user aplikasi',
|
||||
featured: false,
|
||||
},
|
||||
];
|
||||
|
||||
function Pricing() {
|
||||
return (
|
||||
<section id="harga" className="py-16">
|
||||
<div className="mx-auto max-w-3xl text-center">
|
||||
<p className="text-sm font-semibold text-sky-600 dark:text-sky-400">
|
||||
HARGA EARLY ACCESS
|
||||
</p>
|
||||
<h2 className="mt-3 text-3xl font-bold">
|
||||
Lisensi bulanan yang ramah untuk ISP lokal
|
||||
</h2>
|
||||
<p className="mt-3 text-muted-foreground">
|
||||
Tidak ada kontrak tahunan wajib. User perangkat tidak
|
||||
dihitung sebagai user aplikasi.
|
||||
</p>
|
||||
</div>
|
||||
<div className="mt-9 grid gap-4 md:grid-cols-2 xl:grid-cols-5">
|
||||
{plans.map((plan) => (
|
||||
<article
|
||||
key={plan.name}
|
||||
className={`relative rounded-2xl border p-5 ${plan.featured ? 'border-sky-500 bg-sky-500/5 shadow-lg shadow-sky-500/10' : 'border-border bg-card'}`}
|
||||
>
|
||||
{plan.featured && (
|
||||
<span className="absolute -top-3 left-4 rounded-full bg-sky-500 px-3 py-1 text-xs font-semibold text-slate-950">
|
||||
Paling sesuai ISP
|
||||
</span>
|
||||
)}
|
||||
<p className="text-sm font-semibold text-sky-600 dark:text-sky-400">
|
||||
{plan.deployment}
|
||||
</p>
|
||||
<h3 className="mt-2 text-xl font-bold">{plan.name}</h3>
|
||||
<p className="mt-4 text-2xl font-bold">
|
||||
{plan.price}
|
||||
{plan.price !== 'Gratis' && (
|
||||
<span className="text-sm font-normal text-muted-foreground">
|
||||
/bulan
|
||||
</span>
|
||||
)}
|
||||
</p>
|
||||
<ul className="mt-5 space-y-2 text-sm text-muted-foreground">
|
||||
<li>✓ Hingga {plan.devices}</li>
|
||||
<li>✓ Hingga {plan.users}</li>
|
||||
<li>✓ Users Perangkat tanpa batas</li>
|
||||
<li>✓ Update aplikasi</li>
|
||||
<li>✓ Dukungan dasar</li>
|
||||
</ul>
|
||||
<Link
|
||||
href="/register"
|
||||
className="mt-6 block rounded-lg bg-sky-500 px-4 py-2.5 text-center text-sm font-semibold text-slate-950 hover:bg-sky-400"
|
||||
>
|
||||
Pilih paket
|
||||
</Link>
|
||||
</article>
|
||||
))}
|
||||
</div>
|
||||
<p className="mt-5 text-center text-xs leading-5 text-muted-foreground">
|
||||
Harga belum termasuk PPN, VPS/server tenant, instalasi khusus,
|
||||
atau migrasi manual. Harga dapat dievaluasi seiring penambahan
|
||||
fitur dengan pemberitahuan sebelumnya.
|
||||
</p>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
function Roadmap() {
|
||||
return (
|
||||
<section className="pb-16">
|
||||
<div className="rounded-2xl border border-border bg-muted/40 p-7">
|
||||
<p className="text-sm font-semibold text-sky-600 dark:text-sky-400">
|
||||
ROADMAP · BELUM TERMASUK FITUR AKTIF
|
||||
</p>
|
||||
<h2 className="mt-2 text-2xl font-bold">
|
||||
RADIQ NDM akan tumbuh bersama kebutuhan operator jaringan.
|
||||
</h2>
|
||||
<p className="mt-3 max-w-3xl text-sm leading-6 text-muted-foreground">
|
||||
Harga early-access saat ini mencerminkan aplikasi yang masih
|
||||
sekitar 30% dari visi produk. Tahap berikutnya direncanakan
|
||||
mencakup monitoring terpusat, topologi perangkat, dashboard
|
||||
NOC, alert status perangkat, histori performa, backup
|
||||
konfigurasi, dan dukungan vendor tambahan.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user