diff --git a/apps/web/app/(pages)/case-study/dodo-payments/page.tsx b/apps/web/app/(pages)/case-study/dodo-payments/page.tsx new file mode 100644 index 0000000..ed2bd41 --- /dev/null +++ b/apps/web/app/(pages)/case-study/dodo-payments/page.tsx @@ -0,0 +1,487 @@ +import Navbar from "@/components/homepage/navbar" +import Footer from "@/components/homepage/footer" +import Link from "next/link" +import type { Metadata } from "next" + +export const metadata: Metadata = { + title: "How Supercode Migrated 100% of Customers to Dodo Payments in 72 Hours — With Zero Downtime", + description: + "A complete payment migration for 100+ paying customers — zero downtime, zero lost revenue. Learn how Supercode switched from Polar to Dodo Payments.", + openGraph: { + title: "How Supercode Migrated 100% of Customers to Dodo Payments in 72 Hours", + description: + "A complete payment migration for 100+ paying customers — zero downtime, zero lost revenue.", + images: [ + { + url: "/supercode-ddp.png", + width: 1200, + height: 630, + alt: "Supercode x Dodo Payments case study", + }, + ], + type: "article", + }, + twitter: { + card: "summary_large_image", + images: ["/supercode-ddp.png"], + }, +} + +const metrics = [ + { value: "100%", label: "Customers migrated", color: "text-emerald-500" }, + { value: "0", label: "Downtime", color: "text-blue-500" }, + { value: "0", label: "Lost revenue", color: "text-purple-500" }, + { value: "72h", label: "Total migration time", color: "text-amber-500" }, +] + +const moreCaseStudies = [ + { company: "Mole", icon: "M", color: "bg-orange-100 dark:bg-orange-900/30" }, + { company: "Wisp CMS", icon: "W", color: "bg-blue-100 dark:bg-blue-900/30" }, + { company: "Supercode", icon: "S", color: "bg-emerald-100 dark:bg-emerald-900/30" }, +] + +export default function DodoPaymentsCaseStudy() { + return ( +
+
+
+ + + +
+
+ + ← All case studies + + +
+
+
+

+ How Supercode Migrated 100% of Customers to Dodo Payments in 72 Hours — With Zero Downtime +

+ +

+ A complete payment migration for 100+ paying customers — zero + downtime, zero lost revenue. Here's how we did it and why Dodo + Payments was the right choice. +

+ +
+ Supercode x Dodo Payments case study banner +
+
+ +
+
+

+ The Company +

+

+ Supercode is the open-source SWE agent that works directly in + your codebase. We build, debug, and ship from your terminal, IDE, + Slack, or the web. Our users describe what they need, and Supercode + handles the rest. +

+

+ As our user base grew, so did the complexity of our payment + infrastructure. What started as a simple billing setup became a + bottleneck that was slowing us down. +

+
+ +
+

+ Why We Migrated +

+

+ We originally chose Polar as our payment provider. It worked for + our early days, but as we scaled, several pain points emerged: +

+
    +
  • + + + Limited payment methods: Our users are global. + We needed to support local payment methods across regions, not + just credit cards. Polar's coverage was too narrow. + +
  • +
  • + + + Tax compliance complexity: Managing VAT, GST, + and sales tax across multiple jurisdictions was eating into our + engineering time. We needed a Merchant of Record that handled + this automatically. + +
  • +
  • + + + Licensing infrastructure: We needed a robust + license key system that could handle subscription validation, + device limits, and real-time activation without building it + from scratch. + +
  • +
  • + + + Developer experience: The integration + overhead was too high. Every billing change required + significant backend work, slowing our product velocity. + +
  • +
+
+ +
+

+ The Challenges +

+

+ Migrating payment providers while maintaining live customers is + one of the riskiest operations a SaaS company can undertake. We + faced several specific challenges: +

+
    +
  • + + + No downtime tolerance: Our customers are + developers who depend on Supercode daily. Any payment + interruption would mean lost trust and lost revenue. + +
  • +
  • + + + Existing subscription continuity: Customers + with active subscriptions needed to continue uninterrupted. + Recurring billing, renewal dates, and payment history had to + transfer cleanly. + +
  • +
  • + + + License key migration: We had an existing + license system tied to Polar. Migrating licenses while + maintaining validation for existing users required careful + coordination. + +
  • +
  • + + + Webhook and integration updates: Our billing + webhooks, email notifications, and internal dashboards all + needed to be rewired without breaking. + +
  • +
+
+ +
+

+ Why Dodo Payments +

+

+ After evaluating several payment providers, Dodo Payments stood + out for specific reasons that directly addressed our challenges: +

+
    +
  • + + + Merchant of Record model: Dodo handles tax + collection, compliance, and remittance across 220+ countries. + This eliminated our tax compliance headache entirely. + +
  • +
  • + + + Global payment methods: 40+ local payment + methods including Apple Pay, Google Pay, and regional options. + Our customers can pay however they prefer. + +
  • +
  • + + + Built-in license key management: Dodo's + native license key infrastructure meant we didn't need to + build or maintain a separate licensing system. + +
  • +
  • + + + Developer-first documentation: The + documentation was clean, comprehensive, and AI-friendly. Our + team could work with it efficiently using tools like Claude. + +
  • +
  • + + + Fast onboarding: Account approval happened + within hours. Integration was measured in days, not weeks. + +
  • +
+
+ +
+

+ The Implementation +

+

+ We approached the migration in three phases to minimize risk: +

+ +
+
+

+ Phase 1: Parallel Setup (Days 1-2) +

+

+ We set up Dodo Payments alongside Polar. Both systems ran + simultaneously, allowing us to test the new integration without + affecting existing customers. We created test products, + validated checkout flows, and confirmed webhook delivery. +

+
+ +
+

+ Phase 2: New Customer Migration (Days 3-4) +

+

+ All new signups were routed through Dodo Payments. Existing + customers on Polar continued uninterrupted. This let us + validate the production flow with real transactions before + touching existing subscriptions. +

+
+ +
+

+ Phase 3: Existing Customer Migration (Days 5-7) +

+

+ We migrated existing subscribers in batches. Each customer + received a migration email with a one-click transition link. + License keys were regenerated through Dodo's system and + customers were notified. The entire process was completed + without any service interruption. +

+
+
+
+ +
+

+ The Result +

+

+ The migration was completed in 72 hours with zero downtime and + zero lost revenue. Here's what changed: +

+ +
+
+ + + 100% customer migration: Every paying + customer was successfully transitioned. No one was left behind + or experienced a billing interruption. + +
+
+ + + Zero downtime: The entire migration happened + transparently. Customers noticed nothing except a better + payment experience. + +
+
+ + + Improved payment coverage: Customers can now + pay with 40+ methods. Our international conversion rate + increased immediately. + +
+
+ + + Tax compliance offloaded: VAT, GST, and sales + tax are now handled entirely by Dodo. Our engineering team + reclaimed hours previously spent on compliance work. + +
+
+ + + Faster product velocity: With billing + infrastructure handled by Dodo, we ship product improvements + faster. Payment-related feature requests dropped to near zero. + +
+
+
+ +
+

+ What We'd Tell Others +

+

+ If you're considering a payment migration, here's what we learned: +

+
    +
  • + + + Run parallel systems first. Don't cut over + blindly. Run both providers simultaneously to validate + everything works before switching traffic. + +
  • +
  • + + + Migrate new customers first. Use new signups + as your canary. If the new provider works for fresh + transactions, it'll work for migrations. + +
  • +
  • + + + Communicate early and often. Tell your + customers what's happening. A simple "we're upgrading our + payments" email builds trust, not fear. + +
  • +
  • + + + Choose a provider that supports your growth. + Dodo's Merchant of Record model means we never have to think + about tax compliance again. That's worth more than any feature + comparison. + +
  • +
+
+ +
+
+ "The migration was one of the smoothest infrastructure changes + we've ever made. Dodo Payments didn't just replace Polar — it + gave us the foundation to scale without worrying about payments, + taxes, or compliance. We can focus entirely on building Supercode." +
+

+ — Yash Dewasthale, Founder, Supercode +

+
+
+
+ + +
+ + {/*
+

+ More Case Studies +

+
+ {moreCaseStudies.map((study) => ( +
+
+ + {study.icon} + +
+

+ {study.company} +

+
+ ))} +
+
*/} +
+
+ +
+ ) +} diff --git a/apps/web/app/(pages)/case-study/page.tsx b/apps/web/app/(pages)/case-study/page.tsx new file mode 100644 index 0000000..5b19f97 --- /dev/null +++ b/apps/web/app/(pages)/case-study/page.tsx @@ -0,0 +1,84 @@ +import Navbar from "@/components/homepage/navbar" +import Footer from "@/components/homepage/footer" +import Link from "next/link" + +const caseStudies = [ + { + slug: "dodo-payments", + company: "Supercode", + title: "How Supercode migrated from Polar to Dodo Payments", + description: + "A complete payment migration for 3200+ customers — zero downtime, zero lost revenue.", + date: "Aug 02, 2026", + tag: "Payments", + color: "bg-emerald-100 dark:bg-emerald-900/30", + }, +] + +export default function CaseStudyPage() { + return ( +
+
+
+ + + +
+
+

+ Case Studies, +

+

+ Learn how companies around the world are transforming with Supercode AI + Payments. +

+
+ +
+ {caseStudies.map((study) => ( + +
+
+ {`${study.company} +
+ +
+
+ + {study.tag} + + + {study.date} + +
+ +

+ {study.title} +

+ +

+ {study.description} +

+ + + Read more → + +
+
+ + ))} +
+
+ +
+ ) +} diff --git a/apps/web/components/homepage/footer.tsx b/apps/web/components/homepage/footer.tsx index 7b018c5..e7a1ed5 100644 --- a/apps/web/components/homepage/footer.tsx +++ b/apps/web/components/homepage/footer.tsx @@ -288,6 +288,7 @@ const Footer = () => { { label: "Brand", href: "/brand" }, { label: "Contact", href: "/contact" }, { label: "Blog", href: "/blog" }, + { label: "Case Studies", href: "/case-study" }, { label: "Privacy", href: "/#privacy" }, { label: "Terms", href: "/#terms" }, ]} diff --git a/apps/web/public/supercode-ddp2.png b/apps/web/public/supercode-ddp2.png new file mode 100644 index 0000000..c6ce16b Binary files /dev/null and b/apps/web/public/supercode-ddp2.png differ diff --git a/apps/web/public/supercode-grayscale.png b/apps/web/public/supercode-grayscale.png new file mode 100644 index 0000000..1a56b64 Binary files /dev/null and b/apps/web/public/supercode-grayscale.png differ