Base app architecture:

    Route groups for customer, staff and owner.
* Reusable design system with around 20 UI components.
* Complete Prisma schema.
* Authentication with email/password and Google.
* Role and permission model.
* Protected routes.
* Clean separation between features, services, components and shared utilities.
This commit is contained in:
Stefan Lazic committed 2026-08-02 17:47:23 +01:00
1 parent 468d163299
commit 090646fdfd
201 files changed
+31984

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
import { Scissors } from "lucide-react";
import Link from "next/link";
import { redirect } from "next/navigation";
import { auth } from "@/auth";
import { Button } from "@/components/ui/button";
export default async function WelcomePage() {
const session = await auth();
if (session?.user) {
redirect("/home");
}
return (
<div className="flex min-h-screen flex-col justify-end bg-ink px-8 pb-16 text-white">
<div className="mb-8 flex h-16 w-16 items-center justify-center rounded-2xl bg-white text-ink">
<Scissors className="h-7 w-7" aria-hidden="true" />
</div>
<h1 className="mb-4 text-5xl font-bold tracking-tight">NextChair</h1>
<p className="mb-12 max-w-xs text-lg text-white/70">
Precision grooming at your fingertips. Book your next visit in seconds.
</p>
<div className="space-y-4">
<Button asChild variant="secondary" size="lg" className="w-full bg-white">
<Link href="/register">Create Account</Link>
</Button>
<Button
asChild
variant="secondary"
size="lg"
className="w-full border-2 border-white/20 bg-transparent text-white hover:bg-white/10"
>
<Link href="/sign-in">Sign In</Link>
</Button>
</div>
{/*
The templates' "Continue as Guest" goes straight to the business
home/booking flow (template 20 → 15). That flow isn't built yet
(Phase 1: Customer Booking), so this button isn't shown rather than
linking somewhere that doesn't work yet — see
docs/implementation-plan.md §16 for the phase it belongs to.
*/}
</div>
);
}