page.tsx 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import Link from "next/link";
  2. import Image from "next/image";
  3. import { getKindeServerSession } from "@kinde-oss/kinde-auth-nextjs/server";
  4. import { ArrowRight, Zap, BarChart3 } from "lucide-react";
  5. import { Button } from "@/components/ui/button";
  6. import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
  7. export default async function Home() {
  8. const { getUser } = getKindeServerSession();
  9. const user = await getUser();
  10. return (
  11. <div className="min-h-screen bg-gradient-to-br from-slate-50 to-slate-100 dark:from-slate-900 dark:to-slate-800">
  12. {/* Hero Section */}
  13. <section className="relative overflow-hidden py-24 sm:py-32">
  14. <div className="container mx-auto px-4 sm:px-6 lg:px-8">
  15. <div className="mx-auto max-w-2xl text-center">
  16. <h1 className="text-4xl font-bold tracking-tight text-foreground sm:text-6xl">
  17. Welcome to{" "}
  18. <span className="inline-block h-12 w-auto sm:h-16">
  19. <Image
  20. src="/vtorio.svg"
  21. alt="VTOR.IO"
  22. width={96}
  23. height={24}
  24. className="h-full w-auto dark:hidden"
  25. priority
  26. />
  27. <Image
  28. src="/vtorio-dark.svg"
  29. alt="VTOR.IO"
  30. width={96}
  31. height={24}
  32. className="h-full w-auto hidden dark:block"
  33. priority
  34. />
  35. </span>
  36. </h1>
  37. <p className="mt-6 text-lg leading-8 text-muted-foreground">
  38. Streamline your workflow with powerful file management, intelligent imports,
  39. and comprehensive analytics. Automate your data workflows with ease.
  40. </p>
  41. <div className="mt-10 flex items-center justify-center gap-x-6">
  42. {user ? (
  43. <Link href="/dashboard">
  44. <Button size="lg" className="group">
  45. Go to Dashboard
  46. <ArrowRight className="ml-2 h-4 w-4 transition-transform group-hover:translate-x-1" />
  47. </Button>
  48. </Link>
  49. ) : (
  50. <>
  51. <Link href="/api/auth/login">
  52. <Button size="lg" className="group">
  53. Get Started
  54. <ArrowRight className="ml-2 h-4 w-4 transition-transform group-hover:translate-x-1" />
  55. </Button>
  56. </Link>
  57. </>
  58. )}
  59. </div>
  60. </div>
  61. </div>
  62. {/* Background decoration */}
  63. <div className="absolute inset-0 -z-10 overflow-hidden">
  64. <div className="absolute left-1/2 top-0 -translate-x-1/2 blur-3xl">
  65. <div className="aspect-[1155/678] w-[72.1875rem] bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-20"></div>
  66. </div>
  67. </div>
  68. </section>
  69. {/* Features Section */}
  70. <section className="py-24 sm:py-32">
  71. <div className="container mx-auto px-4 sm:px-6 lg:px-8">
  72. <div className="mx-auto max-w-2xl text-center mb-16">
  73. <h2 className="text-3xl font-bold tracking-tight text-foreground sm:text-4xl">
  74. Everything you need to manage your data
  75. </h2>
  76. <p className="mt-4 text-lg text-muted-foreground">
  77. Powerful features designed to help you work smarter, not harder.
  78. </p>
  79. </div>
  80. <div className="grid grid-cols-1 md:grid-cols-3 gap-8 max-w-5xl mx-auto">
  81. <Card className="relative overflow-hidden">
  82. <CardHeader>
  83. <div className="w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center mb-4">
  84. <Zap className="w-6 h-6 text-primary" />
  85. </div>
  86. <CardTitle>Smart Imports</CardTitle>
  87. <CardDescription>
  88. Process Excel files with intelligent mapping and validation
  89. </CardDescription>
  90. </CardHeader>
  91. <CardContent>
  92. <p className="text-sm text-muted-foreground">
  93. Upload your Excel files and let our system intelligently map columns,
  94. validate data, and create structured imports with ease.
  95. </p>
  96. </CardContent>
  97. </Card>
  98. <Card className="relative overflow-hidden">
  99. <CardHeader>
  100. <div className="w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center mb-4">
  101. <svg className="w-6 h-6 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
  102. <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z" />
  103. </svg>
  104. </div>
  105. <CardTitle>Automated Workflows</CardTitle>
  106. <CardDescription>
  107. Streamline repetitive tasks with intelligent automation and scheduled processing
  108. </CardDescription>
  109. </CardHeader>
  110. <CardContent>
  111. <p className="text-sm text-muted-foreground">
  112. Create powerful automation rules that trigger file processing, data validation,
  113. and report generation based on schedules or events. Save hours of manual work.
  114. </p>
  115. </CardContent>
  116. </Card>
  117. <Card className="relative overflow-hidden">
  118. <CardHeader>
  119. <div className="w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center mb-4">
  120. <BarChart3 className="w-6 h-6 text-primary" />
  121. </div>
  122. <CardTitle>Analytics & Insights</CardTitle>
  123. <CardDescription>
  124. Get detailed reports and actionable insights from your data
  125. </CardDescription>
  126. </CardHeader>
  127. <CardContent>
  128. <p className="text-sm text-muted-foreground">
  129. Transform your raw data into meaningful insights with
  130. comprehensive analytics and customizable reporting dashboards.
  131. </p>
  132. </CardContent>
  133. </Card>
  134. </div>
  135. </div>
  136. </section>
  137. </div>
  138. );
  139. }