From 3cfe6a1b8015d023323f9abb3573d5fb9272e7d4 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Sun, 30 Nov 2025 22:26:54 -0600 Subject: [PATCH] feat: add Dokploy vs. Coolify comparison page and update sitemap - Introduced a new comparison page for Dokploy vs. Coolify, detailing features, benefits, and integrations. - Added a corresponding layout component for the new page. - Updated the sitemap to include the new comparison page URL for better SEO. --- .../website/app/dokploy-vs-coolify/layout.tsx | 16 + apps/website/app/dokploy-vs-coolify/page.tsx | 465 ++++++++++++++++++ apps/website/app/sitemap.ts | 6 + apps/website/components/Footer.tsx | 27 +- 4 files changed, 502 insertions(+), 12 deletions(-) create mode 100644 apps/website/app/dokploy-vs-coolify/layout.tsx create mode 100644 apps/website/app/dokploy-vs-coolify/page.tsx diff --git a/apps/website/app/dokploy-vs-coolify/layout.tsx b/apps/website/app/dokploy-vs-coolify/layout.tsx new file mode 100644 index 0000000..323576e --- /dev/null +++ b/apps/website/app/dokploy-vs-coolify/layout.tsx @@ -0,0 +1,16 @@ +import type { Metadata } from 'next' + +export const metadata: Metadata = { + title: 'Dokploy Vs. Coolify Comparison', + description: + 'Dokploy vs. Coolify at a glance: How to choose the right self-hosted open deployment option for your applications.', +} + +export default function DokployVsCoolifyLayout({ + children, +}: { + children: React.ReactNode +}) { + return <>{children} +} + diff --git a/apps/website/app/dokploy-vs-coolify/page.tsx b/apps/website/app/dokploy-vs-coolify/page.tsx new file mode 100644 index 0000000..d5adce4 --- /dev/null +++ b/apps/website/app/dokploy-vs-coolify/page.tsx @@ -0,0 +1,465 @@ +'use client' + +import { CallToAction } from '@/components/CallToAction' +import { Container } from '@/components/Container' +import { StatsSection } from '@/components/stats' +import { Testimonials } from '@/components/Testimonials' +import { Check, X } from 'lucide-react' +import Link from 'next/link' +import { Button } from '@/components/ui/button' +import { cn } from '@/lib/utils' +import AnimatedGridPattern from '@/components/ui/animated-grid-pattern' + +export default function DokployVsCoolifyPage() { + return ( +
+
+ {/* Hero Section */} +
+
+
+ +
+

+ Dokploy vs. Coolify +

+

+ If you're looking for a self-hosted, open deployment + solution that lets you run applications on your own VPS + or hardware, Dokploy and Coolify are the two leading + options. But which should you choose? +

+
+ + {/* Quick Comparison */} +
+
+

+ Dokploy +

+

+ For a polished, intuitive, open deployment solution + with powerful automation, AI, monitoring and + integration features – designed for developers who + want control without complexity – choose Dokploy. +

+
+
+

+ Coolify +

+

+ For an open source deployment tool that's geared + toward indie devs and OSS hobbyists, with an + accessible, less polished approach that suits + individuals over businesses, choose Coolify. +

+
+
+ + {/* CTA */} +
+

+ Unlock seamless deployments with Dokploy today +

+ +
+
+
+ +
+
+ + {/* Feature Comparison Table */} +
+ +
+
+

+ Dokploy vs. Coolify at a glance +

+

+ Read our comprehensive Coolify vs. Dokploy + features comparison before you make your decision. +

+
+ + {/* Comparison Table */} +
+ + + + + + + + + + {comparisonFeatures.map((feature, index) => ( + + + + + + ))} + +
+ Feature + + Dokploy + + Coolify +
+ {feature.name} + + {feature.dokploy ? ( + + ) : ( + + )} + + {typeof feature.coolify === 'string' ? ( + + {feature.coolify} + + ) : feature.coolify ? ( + + ) : ( + + )} +
+
+
+
+
+ + {/* Why Choose Dokploy Section */} +
+ +
+

+ Why you should choose Dokploy +

+ +
+ {benefits.map((benefit, index) => ( +
+
+

+ {benefit.title} +

+

+ {benefit.description} +

+
+
+
+ {benefit.icon} +
+
+
+ ))} +
+
+
+
+ + {/* Integration Comparison */} +
+ +
+

+ Dokploy integrates with the leading solutions +

+ +
+ {integrations.map((integration, index) => ( +
+
+ {integration.category} +
+
+
+ Dokploy +
+ {integration.dokploy} +
+
+
+ Coolify +
+ {integration.coolify} +
+
+ ))} +
+
+
+
+ + {/* Teams Section */} +
+ +
+

+ Why Dokploy is perfect for teams of any size +

+

+ Empower every team, from solo developers to enterprise + engineering squads, with a deployment platform built + for collaboration and control. Dokploy's organizational + and project structuring features make it simple for you + to managing users, permissions, and environments, while + its automation and monitoring tools scale seamlessly as + your team grows. Whether you're running one app or + hundreds, Dokploy adapts to your needs without adding + complexity. +

+
+
+
+ + {/* Stats Section */} +
+ + + +
+ + {/* Testimonials */} + + + {/* Final CTA */} + +
+
+ ) +} + +// Data +const comparisonFeatures = [ + { name: 'One-command installation', dokploy: true, coolify: true }, + { + name: 'Installation feedback and progress logs', + dokploy: true, + coolify: true, + }, + { + name: 'Works with firewall and TailScale out of the box', + dokploy: true, + coolify: false, + }, + { + name: 'Lightweight CPU usage while idle', + dokploy: true, + coolify: false, + }, + { name: 'Low memory usage', dokploy: true, coolify: true }, + { name: 'Teams and organizations support', dokploy: true, coolify: true }, + { name: 'Projects grouping', dokploy: true, coolify: true }, + { name: 'Consistent, responsive UI', dokploy: true, coolify: false }, + { + name: 'Built with Next.js / TypeScript', + dokploy: true, + coolify: false, + }, + { name: 'AI-assisted deployments', dokploy: true, coolify: false }, + { + name: 'Deploy from custom Docker images', + dokploy: true, + coolify: true, + }, + { + name: 'Database deployment (Postgres, MySQL, Redis, etc.)', + dokploy: true, + coolify: true, + }, + { + name: 'Scheduled database backups (S3)', + dokploy: true, + coolify: true, + }, + { + name: 'Back up arbitrary Docker volumes, not just databases', + dokploy: true, + coolify: false, + }, + { + name: 'Preview deployments (review apps)', + dokploy: true, + coolify: true, + }, + { name: 'API and CLI tools for automation', dokploy: true, coolify: true }, + { name: 'Multi-server deployment', dokploy: true, coolify: true }, + { + name: 'Docker Swarm clustering', + dokploy: true, + coolify: 'Limited', + }, + { name: 'Cron jobs inside containers', dokploy: true, coolify: true }, + { + name: 'Cron jobs on your host machine', + dokploy: true, + coolify: false, + }, + { + name: 'Monitoring metrics (CPU, RAM, Disk)', + dokploy: true, + coolify: 'Limited', + }, + { name: 'Metrics enabled by default', dokploy: true, coolify: false }, + { name: 'Automated alerts from metrics', dokploy: true, coolify: false }, +] + +const benefits = [ + { + title: 'Benefit from a fast, reliable setup', + description: + "Use a single command to deploy with Dokploy, which works seamlessly across firewalls, TailScale, and secure environments. Launch applications faster with Dokploy's optimized build system.", + icon: ( + + + + ), + }, + { + title: 'Do more with less', + description: + "Keep your VPS fast and responsive with Dokploy's lightweight architecture, which uses minimal CPU and memory, even while idle. Automate builds, alerts, and scaling events effortlessly.", + icon: ( + + + + ), + }, + { + title: 'Integrate with your favorite platforms', + description: + 'Connect Dokploy to GitHub, GitLab, and Bitbucket. Dokploy supports Docker, Compose, Nixpacks, and Buildpacks, and even lets you add APIs and use CLI automation.', + icon: ( + + + + ), + }, + { + title: 'Experience an intuitive, polished UX', + description: + 'Enjoy a clean, consistent UI in the cloud, powered by Next.js and TypeScript. Dokploy is the modern deployment dashboard, optimized for productivity and clarity, with smooth navigation and predictable save behavior.', + icon: ( + + + + ), + }, + { + title: "Know what's happening before it's a problem", + description: + 'Built-in metrics, automated alerting, and volume backups make Dokploy ideal for serious deployments. Monitor CPU, memory, and disk usage, automate notifications, and keep data safe with S3-compatible backups.', + icon: ( + + + + ), + }, +] + +const integrations = [ + { + category: 'Git providers', + dokploy: 'GitHub, GitLab, Bitbucket', + coolify: 'GitHub', + }, + { + category: 'Build and deployment systems', + dokploy: + 'Docker, Docker Compose, Nixpacks, Heroku Buildpacks, Paketo Buildpacks', + coolify: 'Docker, Docker Compose, Nixpacks', + }, + { + category: 'Notifications and communication', + dokploy: 'Slack, Discord, Telegram, Email (SMTP), Goify (automation bus)', + coolify: 'Slack, Discord, Telegram, Email (SMTP), Pushover, Resend', + }, +] + diff --git a/apps/website/app/sitemap.ts b/apps/website/app/sitemap.ts index 78a207e..e4131d6 100644 --- a/apps/website/app/sitemap.ts +++ b/apps/website/app/sitemap.ts @@ -16,6 +16,12 @@ export default async function sitemap(): Promise { changeFrequency: 'monthly', priority: 0.8, }, + { + url: 'https://dokploy.com/dokploy-vs-coolify', + lastModified: new Date(), + changeFrequency: 'monthly', + priority: 0.9, + }, ...posts.map((post) => ({ url: `https://dokploy.com/blog/${post.slug}`, lastModified: new Date(post.published_at), diff --git a/apps/website/components/Footer.tsx b/apps/website/components/Footer.tsx index 8663f4b..5145dae 100644 --- a/apps/website/components/Footer.tsx +++ b/apps/website/components/Footer.tsx @@ -37,18 +37,21 @@ export function Footer() { - +