diff --git a/apps/website/app/[locale]/page.tsx b/apps/website/app/[locale]/page.tsx index 3faac8b..37c0216 100644 --- a/apps/website/app/[locale]/page.tsx +++ b/apps/website/app/[locale]/page.tsx @@ -1,11 +1,11 @@ import { CallToAction } from "@/components/CallToAction"; import { Faqs } from "@/components/Faqs"; import { Hero } from "@/components/Hero"; -import { PrimaryFeatures } from "@/components/PrimaryFeatures"; import { Testimonials } from "@/components/Testimonials"; -import { FeaturesSectionDemo } from "@/components/features"; +import { FirstFeaturesSection } from "@/components/first-features"; import { Pricing } from "@/components/pricing"; -import { RippleDemo } from "@/components/sponsors"; +import { SecondaryFeaturesSections } from "@/components/secondary-features"; +import { Sponsors } from "@/components/sponsors"; import { StatsSection } from "@/components/stats"; export default function Home() { @@ -13,15 +13,15 @@ export default function Home() {
- - + +
- +
diff --git a/apps/website/components/CallToAction.tsx b/apps/website/components/CallToAction.tsx index 4f95f63..232fa74 100644 --- a/apps/website/components/CallToAction.tsx +++ b/apps/website/components/CallToAction.tsx @@ -5,7 +5,6 @@ import { Button } from "./ui/button"; export function CallToAction() { const t = useTranslations("HomePage"); - const linkT = useTranslations("Link"); return (
{ - return ( - - - - - - - - - - ); -}; +// const ProductHunt = () => { +// return ( +// +// +// +// +// +// +// +// +// +// ); +// }; export function Hero() { const t = useTranslations("HomePage"); @@ -64,23 +54,6 @@ export function Hero() { }, [isCopied]); return (
- {/*
- - - - - - - - - - - - - - - -
*/}
@@ -232,183 +205,6 @@ export function Hero() { )} />
- - {/* */}
); } - -export const ShowSponsors = () => { - const t = useTranslations("HomePage"); - return ( -
-
-

- {t("hero.sponsors.title")} -

-

- {t("hero.sponsors.description")} -

-
-
-

- {t("hero.sponsors.level.hero")} 🎖 -

- -
-
-

- {t("hero.sponsors.level.premium")} 🥇 -

-
- - Supafort.com - -
-
-
-

- {t("hero.sponsors.level.supporting")} 🥉 -

- -
-
-

- {t("hero.sponsors.level.community")} 🤝 -

- -
-
-

- {t("hero.sponsors.level.organizations")} -

-
- - Organization Sponsors - -
-
-
-

- {t("hero.sponsors.level.individuals")} -

-
- - Individual Sponsors - -
-
-
- ); -}; diff --git a/apps/website/components/Testimonials.tsx b/apps/website/components/Testimonials.tsx index 153928e..444f4aa 100644 --- a/apps/website/components/Testimonials.tsx +++ b/apps/website/components/Testimonials.tsx @@ -1,78 +1,77 @@ "use client"; import { cn } from "@/lib/utils"; -import { Container } from "./Container"; import { Marquee } from "./ui/marquee"; -const testimonials = [ - [ - { - content: - "This application has revolutionized the way we handle deployments. The integration of Docker and Traefik through such a user-friendly interface has saved us countless hours.", - author: { - name: "Emily R.", - role: "Full Stack Developer", - image: "/avatars/avatar-1.png", - }, - }, - { - content: - "As a fast-paced startup, efficiency and reliability are paramount. This software delivered on both, allowing us to focus more on development and less on operations.", - author: { - name: "Mark T.", - role: "CTO, Tech Innovations Inc.", - image: "/avatars/avatar-2.png", - }, - }, - ], - [ - { - content: - "The comprehensive monitoring and robust backup solutions have given us the peace of mind we need to operate at our best 24/7. Highly recommended!", - author: { - name: "Sarah L.", - role: "IT Director, Creative Solutions Agency", - image: "/avatars/avatar-3.png", - }, - }, - { - content: - "Upgrading to this platform was a game-changer for our agency. The user permission controls and real-time updates have greatly enhanced our team's efficiency.", - author: { - name: "James P.", - role: "Lead Developer, Dynamic Web Solutions", - image: "/avatars/avatar-4.png", - }, - }, - ], - [ - { - content: - "Fantastic tool! The direct container access and dynamic Traefik configuration features have made it so easy to manage our services. It's like having a DevOps team in a box!", - author: { - name: "Ana D.", - role: "Full Stack Developer, Independent Contractor", - image: "/avatars/avatar-7.png", - }, - }, - { - content: - "his tool has been indispensable for managing my client projects. It has streamlined my workflow and dramatically increased my productivity, allowing me to take on more clients without sacrificing quality.", - author: { - name: "Carlos M.", - role: "Freelance Full Stack Developer", - image: "/avatars/avatar-6.png", - }, - }, - ], -]; +// const testimonials = [ +// [ +// { +// content: +// "This application has revolutionized the way we handle deployments. The integration of Docker and Traefik through such a user-friendly interface has saved us countless hours.", +// author: { +// name: "Emily R.", +// role: "Full Stack Developer", +// image: "/avatars/avatar-1.png", +// }, +// }, +// { +// content: +// "As a fast-paced startup, efficiency and reliability are paramount. This software delivered on both, allowing us to focus more on development and less on operations.", +// author: { +// name: "Mark T.", +// role: "CTO, Tech Innovations Inc.", +// image: "/avatars/avatar-2.png", +// }, +// }, +// ], +// [ +// { +// content: +// "The comprehensive monitoring and robust backup solutions have given us the peace of mind we need to operate at our best 24/7. Highly recommended!", +// author: { +// name: "Sarah L.", +// role: "IT Director, Creative Solutions Agency", +// image: "/avatars/avatar-3.png", +// }, +// }, +// { +// content: +// "Upgrading to this platform was a game-changer for our agency. The user permission controls and real-time updates have greatly enhanced our team's efficiency.", +// author: { +// name: "James P.", +// role: "Lead Developer, Dynamic Web Solutions", +// image: "/avatars/avatar-4.png", +// }, +// }, +// ], +// [ +// { +// content: +// "Fantastic tool! The direct container access and dynamic Traefik configuration features have made it so easy to manage our services. It's like having a DevOps team in a box!", +// author: { +// name: "Ana D.", +// role: "Full Stack Developer, Independent Contractor", +// image: "/avatars/avatar-7.png", +// }, +// }, +// { +// content: +// "his tool has been indispensable for managing my client projects. It has streamlined my workflow and dramatically increased my productivity, allowing me to take on more clients without sacrificing quality.", +// author: { +// name: "Carlos M.", +// role: "Freelance Full Stack Developer", +// image: "/avatars/avatar-6.png", +// }, +// }, +// ], +// ]; -function QuoteIcon(props: React.ComponentPropsWithoutRef<"svg">) { - return ( - - ); -} +// function QuoteIcon(props: React.ComponentPropsWithoutRef<"svg">) { +// return ( +// +// ); +// } const reviews = [ { diff --git a/apps/website/components/features-second.tsx b/apps/website/components/features-second.tsx index 4528e7c..2da102e 100644 --- a/apps/website/components/features-second.tsx +++ b/apps/website/components/features-second.tsx @@ -4,7 +4,6 @@ import { motion } from "framer-motion"; import Image from "next/image"; import Link from "next/link"; import type React from "react"; -import { useEffect, useRef } from "react"; export function FeaturesSectionDemo() { const features = [ diff --git a/apps/website/components/features.tsx b/apps/website/components/first-features.tsx similarity index 99% rename from apps/website/components/features.tsx rename to apps/website/components/first-features.tsx index 09f0850..1451383 100644 --- a/apps/website/components/features.tsx +++ b/apps/website/components/first-features.tsx @@ -13,7 +13,7 @@ import { } from "@tabler/icons-react"; import { Layers, Lock, UnlockIcon } from "lucide-react"; -export function FeaturesSectionDemo() { +export function FirstFeaturesSection() { const features = [ { title: "Flexible Application Deployment", diff --git a/apps/website/components/pricing.tsx b/apps/website/components/pricing.tsx index cd2aa14..51b7f55 100644 --- a/apps/website/components/pricing.tsx +++ b/apps/website/components/pricing.tsx @@ -327,95 +327,6 @@ export function Pricing() {
- - {/* */} -
- ); -} - -const faqs = [ - [ - { - question: "faq.q1", - answer: "faq.a1", - }, - { - question: "faq.q2", - answer: "faq.a2", - }, - { - question: "faq.q3", - answer: "faq.a3", - }, - ], - [ - { - question: "faq.q4", - answer: "faq.a4", - }, - { - question: "faq.q5", - answer: "faq.a5", - }, - { - question: "faq.q6", - answer: "faq.a6", - }, - ], - [ - { - question: "faq.q7", - answer: "faq.a7", - }, - { - question: "faq.q8", - answer: "faq.a8", - }, - ], -]; - -export function Faqs() { - const t = useTranslations("Pricing"); - return ( -
- -
-

- {t("faq.title")} -

-

- {t("faq.description")}:{" "} - - support@dokploy.com - -

-
- -
); } diff --git a/apps/website/components/PrimaryFeatures.tsx b/apps/website/components/secondary-features.tsx similarity index 99% rename from apps/website/components/PrimaryFeatures.tsx rename to apps/website/components/secondary-features.tsx index 8d63be6..879334b 100644 --- a/apps/website/components/PrimaryFeatures.tsx +++ b/apps/website/components/secondary-features.tsx @@ -42,7 +42,7 @@ const features = [ }, ]; -export function PrimaryFeatures() { +export function SecondaryFeaturesSections() { const t = useTranslations("HomePage"); const [tabOrientation, setTabOrientation] = useState< "horizontal" | "vertical" diff --git a/apps/website/components/sponsors.tsx b/apps/website/components/sponsors.tsx index 8f2e7aa..5ba6c24 100644 --- a/apps/website/components/sponsors.tsx +++ b/apps/website/components/sponsors.tsx @@ -11,7 +11,7 @@ import { TooltipTrigger, } from "./ui/tooltip"; -export const RippleDemo = () => { +export const Sponsors = () => { const t = useTranslations("HomePage"); return (
diff --git a/apps/website/components/stats.tsx b/apps/website/components/stats.tsx index e3a6f2f..bb868f1 100644 --- a/apps/website/components/stats.tsx +++ b/apps/website/components/stats.tsx @@ -1,4 +1,4 @@ -import { GithubIcon, HandCoins, Users } from "lucide-react"; +import { HandCoins, Users } from "lucide-react"; import React from "react"; import { useId } from "react"; import NumberTicker from "./ui/number-ticker"; diff --git a/apps/website/components/ui/ripple.tsx b/apps/website/components/ui/ripple.tsx index 0e69681..0bc33ec 100644 --- a/apps/website/components/ui/ripple.tsx +++ b/apps/website/components/ui/ripple.tsx @@ -199,7 +199,7 @@ const Ripple = React.memo(function Ripple({
{premiumSponsors.map((item, index) => { const angle = (360 / premiumSponsors.length) * index; - const radius = mainCircleSize / 2 + 70; // Radio mayor para el segundo aro + const radius = mainCircleSize / 2 + 70; const x = radius * Math.cos((angle * Math.PI) / 180); const y = radius * Math.sin((angle * Math.PI) / 180); const initials = item.name