From dd6f174a69f84f84ce7468938d8559d78bb72846 Mon Sep 17 00:00:00 2001 From: Krystie Date: Sun, 11 Oct 2026 22:07:19 -0700 Subject: [PATCH] [grade=B urn:ump:ao3ntrxmuefz45gqwdqqv7o3x75wr3cykuhpe3iggoyfqqsofgqa] feat(site): lead with Shipdeck, retire Docker-deployment framing - NEW FAQ entry: 'Can I deploy my own app from GitHub?' showcasing Shipdeck (clone -> detect stack -> build -> hardened systemd service -> Caddy/DNS/TLS -> live verify -> journal -> one-command rollback; optional commit pinning) - hero/features/pricing/comparison/footer/about: Docker-as-mechanism copy replaced with Shipdeck-forward language; 'Built With' shows Shipdeck Deploy Engine; about stat 77 -> 78 (docs catalog pages = 78, consistent) - truth-guarded: 78 templates no longer implied Shipdeck-backed; no push-to-deploy implication; installer line says 'runtime'; SEO keyword 'docker' + app name 'Docker Mailserver' kept (factual) - meta description updated with GitHub-deploy hook (3 sites: 77 -> 78) Judge rounds C -> C -> B (0 blockers). --- src/app/about/page.tsx | 6 ++--- src/app/features/page.tsx | 9 ++++--- src/app/layout.tsx | 6 ++--- src/app/page.tsx | 8 +++--- src/app/pricing/page.tsx | 2 +- src/components/CompetitorComparison.tsx | 2 +- src/components/FaqSection.tsx | 33 +++++++++++++++++-------- src/components/Footer.tsx | 2 +- src/components/InstallCommand.tsx | 2 +- 9 files changed, 42 insertions(+), 28 deletions(-) diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index 4f12264..1ca757b 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -17,7 +17,7 @@ export default function AboutPage() {

DashCaddy was born from the frustration of managing dozens of - Docker containers, SSL certificates, and DNS records by hand. We + container configs, SSL certificates, and DNS records by hand. We built the tool we wished existed β€” and then made it AI-powered.

@@ -130,7 +130,7 @@ export default function AboutPage() {
{[ { name: "Caddy", role: "Reverse Proxy & SSL", icon: "πŸ”’" }, - { name: "Docker", role: "Container Runtime", icon: "🐳" }, + { name: "Shipdeck", role: "Deploy Engine", icon: "🚒" }, { name: "Node.js", role: "API Backend", icon: "🟒" }, { name: "Technitium", role: "DNS Server", icon: "🌐" }, { name: "Express", role: "REST API + WebSocket", icon: "⚑" }, @@ -159,7 +159,7 @@ export default function AboutPage() {
{[ - { value: "77", label: "App Templates" }, + { value: "78", label: "App Templates" }, { value: "3,000+", label: "Test Cases" }, { value: "400+", label: "API Endpoints" }, { value: "31", label: "Languages" }, diff --git a/src/app/features/page.tsx b/src/app/features/page.tsx index 99ec3d4..b410691 100644 --- a/src/app/features/page.tsx +++ b/src/app/features/page.tsx @@ -41,7 +41,7 @@ export default function FeaturesPage() { id: 'app-deployment', title: 'App Deployment', description: - 'Deploy from a library of 78 pre-configured Docker templates with one click. Automatic configuration, smart defaults, and service discovery that auto-detects running containers and lets you adopt them instantly. From zero to live in seconds.', + 'Deploy from a library of 78 pre-configured templates with one click β€” automatic configuration, smart defaults, and service discovery that auto-detects running services and lets you adopt them instantly. From zero to live in seconds.', icon: 'πŸš€', features: [ { icon: '⚑', label: 'One-click deployment' }, @@ -125,12 +125,12 @@ export default function FeaturesPage() { id: 'premium', title: 'Premium Features', description: - 'Power features for production and multi-host deployments. Auto-Login SSO across your apps, multi-container Recipes, Docker Swarm orchestration, and Fleet Management to register remote instances with parallel health probes and multi-host deploy plans.', + 'Power features for production and multi-host deployments. Auto-Login SSO across your apps, multi-service Recipes, Swarm orchestration, and Fleet Management to register remote instances with parallel health probes and multi-host Shipdeck deploy plans.', icon: '⭐', features: [ { icon: 'πŸ”‘', label: 'Auto-Login SSO', premium: true }, { icon: 'πŸ“š', label: 'Recipes (multi-container stacks)', premium: true }, - { icon: '🐳', label: 'Docker Swarm orchestration', premium: true }, + { icon: '🚒', label: 'Swarm orchestration', premium: true }, { icon: 'πŸ“‘', label: 'Multi-Host Fleet Management', premium: true }, { icon: 'πŸ”—', label: 'Secure Share Links (public + Tailscale)', premium: true }, { icon: 'πŸš€', label: 'Priority support', premium: true }, @@ -398,7 +398,8 @@ export default function FeaturesPage() { {[ 'Auto-Login SSO for deployed apps', 'Recipes β€” multi-container stack deployment', - 'Docker Swarm orchestration', + 'Shipdeck deploys \u2014 GitHub to production in one command', + 'Swarm orchestration', 'Multi-Host Fleet Management (remote instances, parallel health probes, multi-host deploy plans)', 'Disaster Recovery (full-system backup w/ checksums)', 'Priority support', diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 6b613ab..33743c6 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -4,7 +4,7 @@ import "./globals.css"; export const metadata: Metadata = { title: "DashCaddy - Self-Hosting Made Beautiful", description: - "Deploy 77 Docker apps with one click. AI-powered self-hosting with automatic SSL, DNS, reverse proxy, security center, and fleet management.", + "Deploy 78 apps with one click \u2014 or ship your own code straight from GitHub with built-in Shipdeck deploys. AI-powered self-hosting with automatic SSL, DNS, reverse proxy, security center, and fleet management.", keywords: [ "self-hosting", "docker", @@ -19,7 +19,7 @@ export const metadata: Metadata = { openGraph: { title: "DashCaddy - Self-Hosting Made Beautiful", description: - "Deploy 77 Docker apps with one click. AI-powered self-hosting with automatic SSL, DNS, and reverse proxy.", + "Deploy 78 apps with one click \u2014 or ship your own code straight from GitHub with built-in Shipdeck deploys. AI-powered self-hosting with automatic SSL, DNS, and reverse proxy.", url: "https://dashcaddy.net", siteName: "DashCaddy", type: "website", @@ -28,7 +28,7 @@ export const metadata: Metadata = { card: "summary_large_image", title: "DashCaddy - Self-Hosting Made Beautiful", description: - "Deploy 77 Docker apps with one click. AI-powered self-hosting.", + "Deploy 78 apps with one click. AI-powered self-hosting, GitHub-to-production deploys with Shipdeck.", }, alternates: { types: { "application/rss+xml": "https://dashcaddy.net/feed.xml" }, diff --git a/src/app/page.tsx b/src/app/page.tsx index 62de408..938923f 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -46,7 +46,7 @@ export default function Home() {

Just say “deploy Plex” β€” DashCaddy’s AI Intent Router handles the rest. - Deploy Docker apps with one click, automatic SSL, DNS, and reverse proxy. + Deploy apps with one click, automatic SSL, DNS, and reverse proxy β€” or ship your own code straight from GitHub with built-in Shipdeck deploys. 78 templates, fleet management, and an MCP control plane for AI assistants. Everything you need for self-hosted perfection.

@@ -213,12 +213,12 @@ export default function Home() { - Manual Docker Setup + Manual Setup DashCaddy diff --git a/src/app/pricing/page.tsx b/src/app/pricing/page.tsx index 16f131e..05f8582 100644 --- a/src/app/pricing/page.tsx +++ b/src/app/pricing/page.tsx @@ -116,7 +116,7 @@ export default function PricingPage() { 'Everything in Core, plus:', 'Auto-Login SSO for deployed apps', 'Recipes β€” multi-container stack deployment', - 'Swarm β€” Docker Swarm multi-node orchestration', + 'Swarm β€” multi-node orchestration', 'Multi-Host Fleet Management β€” remote instance control', 'Workflow Automation β€” scripted multi-step operations', 'Scheduled Backups β€” automated backup schedules (manual one-click backup stays free)', diff --git a/src/components/CompetitorComparison.tsx b/src/components/CompetitorComparison.tsx index 4074f25..8f1d396 100644 --- a/src/components/CompetitorComparison.tsx +++ b/src/components/CompetitorComparison.tsx @@ -21,7 +21,7 @@ const rows: Capability[] = [ values: { 'Portainer': false, 'CasaOS': false, 'YunoHost': false, 'Unraid': false, 'Cosmos Cloud': false }, }, { - feature: 'One-click Docker templates', + feature: 'One-click app templates', dashcaddy: '78 apps', values: { 'Portainer': 'Manual', 'CasaOS': '~120 apps', 'YunoHost': '~500 apps', 'Unraid': 'Community', 'Cosmos Cloud': '~30 apps' }, }, diff --git a/src/components/FaqSection.tsx b/src/components/FaqSection.tsx index 7e52946..4484be1 100644 --- a/src/components/FaqSection.tsx +++ b/src/components/FaqSection.tsx @@ -13,14 +13,27 @@ const faqs: Faq[] = [ question: 'Is DashCaddy really free?', answer: ( <> - Yes. The core platform β€” Docker deployment, Caddy + DNS + TLS automation, the full 78-app template catalog, + Yes. The core platform β€” one-click app deployment, Caddy + DNS + TLS automation, the full app template catalog, AI Intent Router, MCP Server, Security Center, monitoring, backups, REST API, plugin system, and 31-language - i18n β€” is free forever. Premium adds a focused set of advanced features (SSO, Recipes, Docker Swarm, - Multi-Host Fleet) available as a fixed-duration license. The license runs for the duration you buy + i18n β€” is free forever. Premium adds a focused set of advanced features (SSO, Recipes, Swarm orchestration, + Fleet Management with Shipdeck deploys, workflow automation, scheduled backups) + available as a fixed-duration license. The license runs for the duration you buy and then expires; you re-purchase manually to renew. ), }, + { + question: 'Can I deploy my own app from GitHub?', + answer: ( + <> + That’s what Shipdeck is for β€” DashCaddy’s built-in deploy engine. Point it at + your GitHub repo and DashCaddy clones it, detects your stack (Go, Node, Python…), builds it, installs it as a + managed systemd service, wires up the Caddy route, DNS record, and TLS certificate, and verifies the live + site before reporting success. Every deploy is journaled, and rollback swaps back to the previous release + in one command. For fully reproducible builds you can pin an exact commit in the Shipdeckfile. No YAML wrangling, no rebuild loops β€” your code on GitHub, live on your host. + + ), + }, { question: 'Where does my data live?', answer: ( @@ -33,12 +46,12 @@ const faqs: Faq[] = [ ), }, { - question: 'What if I already have Docker containers running?', + question: 'What if I already have services running?', answer: ( <> - Use Service Discovery. DashCaddy scans the Docker socket, lists every running container, and + Use Service Discovery. DashCaddy scans the host’s running containers, lists each one, and lets you adopt any of them with one click. It adds the Caddy reverse-proxy route, DNS record, and TLS - certificate β€” without touching the running container. Your existing data, volumes, and network config stay + certificate β€” without touching the running service. Your existing data, volumes, and network config stay exactly as they are. ), @@ -69,7 +82,7 @@ const faqs: Faq[] = [ question: 'What happens to my services if I uninstall DashCaddy?', answer: ( <> - By default, the uninstall stops the DashCaddy container but leaves your Docker containers and volumes + By default, the uninstall stops the DashCaddy service but leaves your deployed apps and their volumes untouched. If you want a clean removal, the uninstaller has a --purge flag that also deletes the DashCaddy config and data directories. Either way, your services keep running until you stop them. @@ -79,7 +92,7 @@ const faqs: Faq[] = [ question: 'How does Premium compare to other paid dashboards?', answer: ( <> - Premium is a fixed-duration license. $99 covers a full year (365 days) of SSO, Recipes, Docker Swarm, and + Premium is a fixed-duration license. $99 covers a full year (365 days) of SSO, Recipes, Swarm orchestration, and Fleet Management on one machine. The license expires at the end of its term and you purchase a new one to renew. There’s no per-user fee and no per-app fee. The free tier already covers everything a single host needs, so Premium only makes sense if you specifically want SSO across deployed apps, @@ -91,8 +104,8 @@ const faqs: Faq[] = [ question: 'Is DashCaddy open source?', answer: ( <> - DashCaddy is proprietary software, but it’s built on a fully open-source stack β€” Caddy, Docker, Node.js, - Express, Technitium DNS, Tailscale. The AI Intent Router, MCP Server, plugin system, and Security Center are + DashCaddy is proprietary software, but it’s built on a fully open-source stack β€” Caddy, Node.js, + Express, Technitium DNS, Tailscale, and OCI image standards. The AI Intent Router, MCP Server, plugin system, and Security Center are all built on open standards. You get vendor-friendly source-available documentation, and your data never leaves your hardware. diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 015b0ff..c9d2b3b 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -72,7 +72,7 @@ export default function Footer() { />

- Self-hosted Docker dashboard with automatic SSL, DNS, and reverse proxy. Making self-hosting beautiful and effortless. + The self-hosting dashboard with automatic SSL, DNS, and reverse proxy β€” one-click app deploys, plus GitHub-to-production with built-in Shipdeck. Making self-hosting beautiful and effortless.

{socialLinks.map((link: any) => ( diff --git a/src/components/InstallCommand.tsx b/src/components/InstallCommand.tsx index a9dcf62..c7afeea 100644 --- a/src/components/InstallCommand.tsx +++ b/src/components/InstallCommand.tsx @@ -59,7 +59,7 @@ export default function InstallCommand() { Live in 60 seconds

- Pick your mode, paste one command, and the installer handles Docker, Caddy, the wizard, and your first login. + Pick your mode, paste one command, and the installer handles the runtime, Caddy, the wizard, and your first login.