import { PlusIcon } from "@/components/icons"; import { Button } from "@/components/ui/button"; import { GitHubLogoIcon } from "@radix-ui/react-icons"; import { type Metadata } from "next"; import Link from "next/link"; import { CopyToClipboard } from "./_components/copy-to-clipboard"; import { Drizzle, LuciaAuth, NextjsDark, NextjsLight, ReactEmail, ReactJs, ShadcnUi, StripeLogo, TRPC, TailwindCss, } from "./_components/feature-icons"; import CardSpotlight from "./_components/hover-card"; export const metadata: Metadata = { title: "Next.js Lucia Auth Starter Template", description: "A Next.js starter template with nextjs and Lucia auth. Includes drizzle, trpc, react-email, tailwindcss and shadcn-ui", }; const githubUrl = "https://github.com/iamtouha/next-lucia-auth"; const features = [ { name: "Next.js", description: "The React Framework for Production", logo: NextjsIcon, }, { name: "React.js", description: "Server and client components.", logo: ReactJs, }, { name: "Authentication", description: "Credential authentication with password reset and email validation", logo: LuciaAuth, }, { name: "Database", description: "Drizzle with postgres database", logo: Drizzle, }, { name: "TypeSafe Backend", description: "Preserve type safety from backend to frontend with tRPC", logo: TRPC, }, { name: "Subscription", description: "Subscription with stripe", logo: StripeLogo, }, { name: "Tailwindcss", description: "Simple and elegant UI components built with Tailwind CSS", logo: TailwindCss, }, { name: "Shadcn UI", description: "A set of beautifully designed UI components for React", logo: ShadcnUi, }, { name: "React Email", description: "Write emails in React with ease.", logo: ReactEmail, }, ]; const HomePage = () => { return ( <>

Next.js Lucia Auth Starter Template

A Next.js Authentication starter template (password reset, email validation and oAuth). Includes Lucia, Drizzle, tRPC, Stripe, tailwindcss, shadcn-ui and react-email.

Features

This starter template is a guide to help you get started with Next.js for large scale applications. Feel free to add or remove features to suit your needs.

{features.map((feature, i) => ( } /> ))}
); }; export default HomePage; function NextjsIcon({ className }: { className?: string }) { return ( <>