mirror of
https://github.com/Dokploy/website.git
synced 2026-06-15 20:25:25 +02:00
feat: restructure pricing section and create dedicated pricing page
- Removed the Pricing component from the homepage and created a new dedicated Pricing page. - Updated navigation links to point to the new Pricing page instead of the homepage section. - Enhanced the Pricing component with an animated grid pattern for improved visual appeal.
This commit is contained in:
@@ -13,7 +13,7 @@ UI is installed, which can be a challenge if you don't have the resources to do
|
||||
|
||||
Dokploy cloud starts from $4.50 per month per server, the next is 3.50$, and you can deploy as many applications you want to your remote server connected to a dokploy cloud, multi server feature is recommended for HA and scalability projects.
|
||||
|
||||
You can start by registering on the [Dokploy Cloud](https://app.dokploy.com) website and follow the steps to deploy your apps, see the [Pricing](https://dokploy.com#pricing) page for more information.
|
||||
You can start by registering on the [Dokploy Cloud](https://app.dokploy.com) website and follow the steps to deploy your apps, see the [Pricing](https://dokploy.com/pricing) page for more information.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ import { Faqs } from "@/components/Faqs";
|
||||
import { Hero } from "@/components/Hero";
|
||||
import { Testimonials } from "@/components/Testimonials";
|
||||
import { FirstFeaturesSection } from "@/components/first-features";
|
||||
import { Pricing } from "@/components/pricing";
|
||||
import { SecondaryFeaturesSections } from "@/components/secondary-features";
|
||||
import { Sponsors } from "@/components/sponsors";
|
||||
import { StatsSection } from "@/components/stats";
|
||||
@@ -26,9 +25,6 @@ export default function Home() {
|
||||
<SecondaryFeaturesSections />
|
||||
<StatsSection />
|
||||
<Testimonials />
|
||||
<div className="relative w-full">
|
||||
<Pricing />
|
||||
</div>
|
||||
<Faqs />
|
||||
{/* <Sponsors /> */}
|
||||
<CallToAction />
|
||||
|
||||
16
apps/website/app/pricing/page.tsx
Normal file
16
apps/website/app/pricing/page.tsx
Normal file
@@ -0,0 +1,16 @@
|
||||
import { Pricing } from "@/components/pricing";
|
||||
import type { Metadata } from "next";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Pricing",
|
||||
description:
|
||||
"Simple, affordable pricing for Dokploy. Choose the plan that fits your needs.",
|
||||
};
|
||||
|
||||
export default function PricingPage() {
|
||||
return (
|
||||
<div className="relative w-full">
|
||||
<Pricing />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -12,7 +12,7 @@ const footerSections = [
|
||||
links: [
|
||||
{ href: "/", label: "Home" },
|
||||
{ href: "/#features", label: "Features" },
|
||||
{ href: "/#pricing", label: "Pricing" },
|
||||
{ href: "/pricing", label: "Pricing" },
|
||||
{
|
||||
href: "/features/application-deployment-platform",
|
||||
label: "Application Deployment Platform",
|
||||
|
||||
@@ -118,7 +118,7 @@ function MobileNavigation() {
|
||||
as="div"
|
||||
className="absolute inset-x-0 top-full mt-4 flex origin-top flex-col rounded-2xl border border-border bg-background p-4 text-lg tracking-tight text-primary shadow-xl ring-1 ring-border/5"
|
||||
>
|
||||
<MobileNavLink href="/#pricing">Pricing</MobileNavLink>
|
||||
<MobileNavLink href="/pricing">Pricing</MobileNavLink>
|
||||
<MobileNavLink href="/#faqs">FAQ</MobileNavLink>
|
||||
<MobileNavLink
|
||||
href="https://docs.dokploy.com/docs/core"
|
||||
@@ -162,7 +162,7 @@ export function Header() {
|
||||
<Logo className="h-10 w-auto" />
|
||||
</Link>
|
||||
<div className="hidden md:flex md:gap-x-6">
|
||||
<NavLink href="/#pricing">Pricing</NavLink>
|
||||
<NavLink href="/pricing">Pricing</NavLink>
|
||||
<NavLink href="/#faqs">FAQ</NavLink>
|
||||
<NavLink
|
||||
href="https://docs.dokploy.com/docs/core"
|
||||
|
||||
@@ -10,6 +10,8 @@ import { Badge } from "./ui/badge";
|
||||
import { Button, buttonVariants } from "./ui/button";
|
||||
import { Tabs, TabsList, TabsTrigger } from "./ui/tabs";
|
||||
import { PricingFeatureTable } from "./pricing/PricingFeatureTable";
|
||||
import AnimatedGridPattern from "./ui/animated-grid-pattern";
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
const CLOUD_APP_URL = "https://app.dokploy.com";
|
||||
|
||||
@@ -86,25 +88,20 @@ export function Pricing() {
|
||||
<section
|
||||
id="pricing"
|
||||
aria-label="Pricing"
|
||||
className="border-t border-border/30 bg-black py-20 sm:py-32"
|
||||
className="relative border-t border-border/30 bg-black py-20 sm:py-32 overflow-hidden"
|
||||
>
|
||||
<div className="absolute inset-0 pointer-events-none">
|
||||
<svg viewBox="0 0 2000 1000" xmlns="http://www.w3.org/2000/svg">
|
||||
<mask id="b" x="0" y="0" width="2000" height="1000">
|
||||
<path fill="url(#a)" d="M0 0h2000v1000H0z" />
|
||||
</mask>
|
||||
<path d="M0 0h2000v1000H0z" />
|
||||
<g stroke="#22222233" strokeWidth=".4" fill="none" mask="url(#b)">
|
||||
<path d="M0 0h50v50H0z" />
|
||||
</g>
|
||||
<defs>
|
||||
<radialGradient id="a">
|
||||
<stop offset="50%" stopColor="#fff" stopOpacity="0" />
|
||||
<stop offset="1" stopColor="#fff" stopOpacity="1" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
</div>
|
||||
<AnimatedGridPattern
|
||||
numSquares={30}
|
||||
maxOpacity={0.1}
|
||||
height={40}
|
||||
width={40}
|
||||
duration={3}
|
||||
repeatDelay={1}
|
||||
className={cn(
|
||||
"[mask-image:radial-gradient(800px_circle_at_center,white,transparent)]",
|
||||
"absolute inset-x-0 inset-y-[-30%] h-[200%] skew-y-12",
|
||||
)}
|
||||
/>
|
||||
<Container className="relative">
|
||||
<div className="text-center">
|
||||
<h2 className="font-display text-3xl tracking-tight text-white sm:text-4xl">
|
||||
|
||||
Reference in New Issue
Block a user