CINXE.COM

Postgres Hosting Checklist | Crunchy Data

<!DOCTYPE html><html lang="en" class="h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta property="og:url" content="https://www.crunchydata.com/postgres-hosting-checklist"/><meta property="og:site_name" content="Crunchy Data"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@crunchydata"/><meta name="twitter:creator" content="@crunchydata"/><title>Postgres Hosting Checklist | Crunchy Data</title><meta name="description" content="Looking for a new home for your database? We have a list for you!"/><meta property="og:title" content="Postgres Hosting Checklist"/><meta property="og:description" content="Looking for a new home for your database? We have a list for you!"/><meta property="og:type" content="website"/><meta property="og:image:type" content="image/png"/><meta property="og:image" content="https://www.crunchydata.com/build/_assets/postgres-hosting-checklist-og-HVXGI5OA.png"/><meta property="og:image:secure_url" content="https://www.crunchydata.com/build/_assets/postgres-hosting-checklist-og-HVXGI5OA.png"/><meta property="og:image:height" content="1200"/><meta property="og:image:width" content="630"/><meta property="og:image:alt" content="A checklist of considerations when choosing a Postgres hosting vendor."/><link rel="canonical" href="https://www.crunchydata.com/postgres-hosting-checklist"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""/><link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&amp;display=swap" rel="preload" as="style"/><link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&amp;display=swap" rel="stylesheet"/><link rel="stylesheet" href="/build/_assets/app-2QE6ZJWR.css"/></head><body class="h-full text-slate-900"><svg aria-hidden="true" width="0" height="0"><filter id="noise"><feTurbulence baseFrequency="0.60" result="colorNoise"></feTurbulence><feColorMatrix in="colorNoise" type="matrix" values=".33 .33 .33 0 0 .33 .33 .33 0 0 .33 .33 .33 0 0 0 0 0 0.5 0"></feColorMatrix><feComposite operator="in" in2="SourceGraphic" result="monoNoise"></feComposite><feBlend in="SourceGraphic" in2="monoNoise" mode="multiply"></feBlend></filter></svg><svg aria-hidden="true" width="0" height="0"><defs><pattern id="dot-pattern-x" height="1" width="3" patternUnits="userSpaceOnUse"><rect width="1" height="1" class="fill-blue-950/30"></rect></pattern><pattern id="dot-pattern-y" width="1" height="3" patternUnits="userSpaceOnUse"><rect width="1" height="1" class="fill-blue-950/30"></rect></pattern></defs></svg><div class="h-full flex flex-col"><div class="motion-safe:invisible motion-safe:-translate-y-full bg-seafoam text-teal-950 font-medium text-[15px] px-4 py-2.5 flex items-center lg:justify-center gap-4"><div class="lg:ml-auto"><p><strong class="font-semibold">Introducing Crunchy Data Warehouse</strong>: A next-generation Postgres-native data warehouse. <a class="group/link inline-flex items-center font-semibold text-blue-700 hover:text-blue-900 transition-colors" href="/products/warehouse"><span class="sr-only">Crunchy Data Warehouse </span>Learn more<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="ml-0.5 group-hover/link:translate-x-1 transition-transform size-5 opacity-40 mt-0.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6"></path></svg></a></p></div><form method="post" action="/" class="flex items-center ml-auto"><button type="submit" name="closeGlobalBanner" value="on" class="p-1 hover:bg-teal-900/15 transition-colors rounded disabled:opacity-50"><span class="sr-only">Close</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path></svg></button></form></div><nav class="bg-white shadow relative z-40" data-headlessui-state=""><div class="mx-auto flex h-16 max-w-7xl items-center justify-between gap-6 px-4 sm:px-6 lg:px-8"><a class="-mx-2 flex items-center p-2" aria-label="Home" href="/"><svg id="round_svg__Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 213 207.3" style="enable-background:new 0 0 213 207.3" xml:space="preserve" class="hidden lg:block h-8 w-auto xl:hidden"><style>.round_svg__st1{fill:#060606}.round_svg__st2{fill:#fff}</style><path class="round_svg__st1" d="M109.4 207.3c-48.9-.4-91.7-31.9-105.1-77.3C-12.2 74.1 20.1 17.6 77 3.7 120-6.8 156.9 5 186.1 37.6c33.8 37.7 35.4 90.5 6.6 128.6-17.5 23.1-40.9 36.4-69.6 40.1-3.5.5-7.1.7-10.6 1h-3.1zM101.5 5.2c-2.9 0-5.9-.1-8.8 0-1 0-2.8.3-2.1 1.8 1.3 2.5 2.7 5.1 4.8 6.9 1.6 1.3 4.1 0 6.1-.6l14.4-1.6h20.4c-6.7-3.5-13.9-4.7-21.1-5.2-4.6.4-9-1.9-13.7-1.3zM53.2 18.8c-11.6 5.9-20.8 14.8-28.5 25C11.6 61 5.5 80.9 5.9 102.5c.4 20.9 6.8 39.9 19.5 56.7 3.4 4.5 6.9 9 11.5 12.6.8-1.2.5-2.3.5-3.2-.5-5.8 1.5-10.8 4.9-15.3 1.3-1.6 2.5-3.2 3.9-4.8 1.6-1.9 1.8-2.8-1.1-3.7-11.6-3.7-20.9-10.6-26.8-21.6-.2-.5-.6-.9-1.1-1.1-5.3-2.3-6.6-6.7-6.1-12 1-10.3 4.1-20 6.8-29.9.6-2 1.8-3.8 3.5-5 2.9-2.1 4.6-4.9 5.8-8.3 1.6-4.6 4.8-6.7 9.7-6.7 2.4 0 4.8-.1 7.2 0 3.8.1 7.2-.6 9.9-3.6 2.4-.3 3.4-2.5 5.2-3.6 5.1-2.9 7.2-7.3 7.3-13.2.1-5.5 2.3-10.1 7.8-12.7 3-1.5 5.7-3.4 8.2-5.6 1.8-1.6 2.9-3.4 2.6-6-.5-3 .1-6.1 1.7-8.6-12.5 1.8-23.5 5.4-33.6 11.9zm44 63.8c5.7.1 9.9 2.6 13.7 5.9 7 6 8.8 22.6-1.5 28.2-9.2 5-18.7 8.1-29.3 7.2-4.9-.4-9.8-.9-14.7-1.4-12.1-1.2-24.1-3.4-36.3-1.6-2.8.4-3.6 1.1-1.7 3.4 7.5 9.3 17.1 14.5 29.3 13.8 12-.6 24-2.4 36-.2 13.6 2.5 24.1-1.7 31.5-13.5.9-1.5 2.1-3 4.1-1.8 2 1.2 1.3 2.8.2 4.4-6.3 9.9-14 17.6-26.9 17.3-2 0-4.1.4-6.2.6-1.9.2-3.6.8-4.7 2.5-2.4 3.6-5.1 7.1-6.7 11.2L71.4 191c-.9 2.3-.5 3.7 2.1 4.6 11.2 3.9 22.9 6 34.8 6.1 22.6.1 42.9-6.6 61-20.1 1.1-.8 1.7-1.6 1.2-2.8-3-7.8-.9-15.3 1.2-22.9 1.7-6.2 2.9-12.5 1.8-19-1.1-6.5-1-6.5-6.3-3.1-4.5 3-9.6 4.8-14.6 6.7-1.9.7-4.6 1-5.3-.7-1-2.4 2.1-2.4 3.5-3.1 4.1-2 8.8-3 12.4-5.9 9.4-7.6 13.9-18 15.5-29.7.8-5.3 1-10.7 1.5-16.1.1-1 .2-2.1 1.7-2.1s1.4 1.2 1.5 2.2c.1.8-.1 1.6 0 2.4.4 12.6-2.3 24.9-4.3 37.2-2 12.9-.6 25.6 2.2 38.2.4 1.6 1 3.5 2.3 3.9 1.8.6 2.5-1.6 3.4-2.8 9-11.6 14.7-24.7 17.7-39.1 2.3-11.1 2-21.7-3.8-32-4.1-7.3-7.7-14.8-11.7-22.2-8.2-15.3-19.9-28-30.8-41.2-3.3-4-7-7.9-11.8-10.4-.7-.3-1.4-1.1-2.2-.7-1.1.6-.4 1.7-.3 2.5 1.5 6-3.9 12.8-9.7 14.9-1.3.5-2.9 1.1-3.7-.4-.8-1.5 1-2 1.9-2.8 3.9-3.4 6.1-9 5.1-13.3-2.9 1.4-5.3 3.1-6.7 6-.6 1.3-1.5 3.7-3.1 2.8-1.9-1.1-.9-3.3.2-4.9.9-1.5 2.1-2.7 3.6-3.7s3.4-1.1 4.9-2.7c-1.6-.9-3.5-1.3-5.4-1.2-10.8.1-21.6-.1-32.3 2.1-3.4.6-6.8 1.4-9.5 3.8-3.8 3.5-8.1 6.5-12.6 8.8-1.9 1-3.8 2.1-3.1 4.7.6 2.4 2.6 3.6 5 3.9 1 .1 2.3-.2 2.6 1.2.3 1.2-1 1.7-1.7 2.3C72.7 47.8 66 53.3 59.4 59c-4.3 3.7-9.9 5.7-15.5 5.5-2.3-.1-4.6 0-6.9 0-5.4 0-6.6 1.6-5.1 6.8.5 1.9.7 3.9-1 5.4-1.7 1.5-3.5 1.4-5.3-.1-.9-.7-1.6-.4-2.3.5-1.6 1.9-1.3 3.4 1.2 4 4.4 1.2 7.7-1.1 10.8-3.9.6-.6 1.4-1.6 2.3-.9 1 .7.4 1.7-.1 2.5-1.9 3.7-9.4 7.7-13.6 7.2-1.1-.1-1.7 0-2 1.2-1.8 7.2-4.1 14.3-4.7 21.8-.6 7.6 1.2 9.1 8.7 7.4 12.4-2.9 24.6-3.7 37 .2 6.7 2.1 13.8 2.3 20.9 1.5 8.2-.9 16.4-2.3 23.2-7.5 2.7-1.9 4.3-4.8 4.6-8.1.5-4.9-1.8-8.4-5.1-11.5-3.1-3-6-5.5-9.3-8.4zM72.1 142v.1c-1.1-.1-2.3-.2-3.4-.2-5.3-.1-10.7-.5-14.8 3.9-5 5.4-8.9 11.4-10.2 18.7-2.2 11.5-.6 14.7 9.5 20.6l3.2 1.9c8.2 4.7 8.2 4.7 11.1-4.1 1.4-4.1.4-7-3.3-9.4-.9-.6-1.8-.9-2.7-1.4-.9-.5-1.6-1.1-1.5-2.1.1-.9.9-1.7 1.8-1.9 3.2-.4 6.4-1.5 9.5-.3 1.6.6 2.3.1 2.9-1.2 3.3-7.3 6.7-14.5 10.1-21.8.7-1.5.3-2-1.3-2.1-3.5-.2-7.2-.5-10.9-.7zm86.6-119c17.3 17.7 31.8 37.8 43.2 59.8 1.1-16.1-27.4-55.6-43.2-59.8z"></path><path class="round_svg__st2" d="M97.2 82.6c3.3 2.9 6.2 5.4 9.1 8.1 3.3 3.1 5.5 6.6 5.1 11.5-.2 3.2-1.9 6.2-4.6 8.1-6.9 5.2-15 6.7-23.2 7.5-7 .7-14.2.6-20.9-1.5-12.4-3.9-24.7-3.1-37-.2-7.6 1.8-9.3.3-8.7-7.4.6-7.5 2.9-14.6 4.7-21.8.3-1.2.9-1.3 2-1.2 4.2.5 11.6-3.4 13.6-7.2.4-.8 1-1.8.1-2.5s-1.7.3-2.3.9c-3 2.8-6.3 5.1-10.8 3.9-2.5-.6-2.8-2.1-1.2-4 .7-.9 1.4-1.2 2.3-.5 1.8 1.4 3.6 1.6 5.3.1 1.7-1.5 1.6-3.5 1-5.4-1.4-5.2-.3-6.8 5.1-6.8 2.3 0 4.6-.1 6.9 0 5.7.2 11.3-1.7 15.5-5.5 6.6-5.7 13.4-11.2 20.2-16.6.8-.6 2-1.1 1.7-2.3-.3-1.3-1.6-1-2.6-1.2-2.4-.3-4.3-1.5-5-3.9-.7-2.6 1.2-3.7 3.1-4.7 4.6-2.4 8.8-5.4 12.6-8.8 2.7-2.4 6.1-3.1 9.5-3.8 10.6-2.1 21.5-1.9 32.3-2.1 1.9-.1 3.7.3 5.4 1.2-1.5 1.5-3.4 1.7-4.9 2.7-1.4 1-2.6 2.2-3.6 3.7-1 1.6-2.1 3.8-.2 4.9 1.6.9 2.5-1.5 3.1-2.8 1.4-3 3.9-4.7 6.7-6 1 4.3-1.2 9.9-5.1 13.3-.9.8-2.7 1.3-1.9 2.8.8 1.5 2.4.8 3.7.4 5.8-2 11.2-8.8 9.7-14.9-.2-.8-.9-1.9.3-2.5.8-.4 1.5.4 2.2.7 4.8 2.5 8.4 6.4 11.8 10.4 10.9 13.3 22.6 26 30.8 41.2 4 7.4 7.6 14.9 11.7 22.2 5.8 10.3 6.1 20.9 3.8 32-3 14.4-8.7 27.5-17.7 39.1-.9 1.2-1.6 3.4-3.4 2.8-1.3-.4-2-2.3-2.3-3.9-2.8-12.6-4.2-25.3-2.2-38.2 1.9-12.3 4.7-24.6 4.3-37.2 0-.8.1-1.6 0-2.4-.1-1 0-2.2-1.5-2.2-1.6 0-1.6 1.1-1.7 2.1-.5 5.4-.7 10.8-1.5 16.1-1.7 11.7-6.1 22.1-15.5 29.7-3.6 2.9-8.3 3.8-12.4 5.9-1.5.7-4.5.7-3.5 3.1.7 1.8 3.5 1.4 5.3.7 5-1.9 10.1-3.7 14.6-6.7 5.3-3.5 5.2-3.5 6.3 3.1 1.1 6.5 0 12.8-1.8 19-2.1 7.6-4.2 15.1-1.2 22.9.5 1.3-.1 2-1.2 2.8-18 13.5-38.3 20.2-60.9 20.1-11.8-.1-23.6-2.1-34.8-6.1-2.6-.9-3-2.2-2.1-4.6 4.2-10.8 8.3-21.6 12.6-32.4 1.6-4.1 4.3-7.6 6.7-11.2 1.1-1.6 2.8-2.3 4.7-2.5 2.1-.2 4.1-.6 6.2-.6 12.9.3 20.6-7.4 26.9-17.3 1-1.6 1.7-3.2-.2-4.4-2-1.2-3.2.3-4.1 1.8-7.4 11.8-18 16-31.5 13.5-12-2.2-24-.4-36 .2-12.1.6-21.7-4.6-29.3-13.8-1.9-2.3-1.1-3 1.7-3.4 12.2-1.9 24.3.4 36.3 1.6 4.9.5 9.8.9 14.7 1.4 10.6 1 20.1-2.2 29.3-7.2 10.3-5.6 8.5-22.2 1.5-28.2-3.7-3-7.9-5.5-13.6-5.6zm14.6-42.2c-4.8-.1-11 3-13.9 6.7-.7.9-1 1.9-.4 2.8.6 1.1 1.6.5 2.4 0 1.2-.9 1.5.3 2.1.8 4 3.6 9.2 2.6 11.4-2.1.8-1.7.3-4 3-4.8.7-.2.4-1.6-.6-2.1-1.3-.8-2.6-1.2-4-1.3zM59.3 91.9c3-.5 5.7-1.4 7.4-4 .8-1.2.8-2.3-.1-3.4-1-1.1-1.8-1-3-.4-1.6.8-3.4 1.6-5.1 1.9-4.4.5-8.9 1.2-12.2-3-.7-.9-1.3-2.6-2.8-1.7-1.4.9.1 2.3.3 3.4.1.7.9 1.3 1.4 1.9 3.7 4.5 9.3 3.9 14.1 5.3zm-5.4-19.7c-2.2.3-4.5.4-4.8 3.3-.2 2.2 3.5 7.3 5.3 7.4 1.9.1 4.1-2.6 4-5.2-.1-3.1-2-5.5-4.5-5.5z"></path><path class="round_svg__st2" d="M72.1 142c3.7.3 7.3.6 11 .8 1.6.1 2 .6 1.3 2.1-3.4 7.3-6.8 14.5-10.1 21.8-.6 1.3-1.3 1.8-2.9 1.2-3.1-1.1-6.3-.1-9.5.3-.9.2-1.7.9-1.8 1.9-.2 1 .6 1.7 1.5 2.1.8.5 1.9.8 2.7 1.4 3.7 2.4 4.7 5.3 3.3 9.4-3 8.8-3 8.8-11.1 4l-3.2-1.9c-10.1-6-11.7-9.2-9.5-20.6 1.4-7.3 5.3-13.4 10.2-18.7 4-4.4 9.5-4 14.8-3.9 1.1-.1 2.2.1 3.3.1z"></path><path d="M86.6 6.8c-1.6 2.6-2.2 5.6-1.7 8.6.3 2.6-.7 4.4-2.6 6-2.4 2.2-5.2 4.1-8.1 5.6-5.5 2.6-7.6 7.3-7.8 12.7-.1 5.9-2.2 10.3-7.3 13.2-1.9 1-2.9 3.3-5.2 3.6-2.7 2.9-6.1 3.7-9.9 3.6-2.4-.1-4.8 0-7.2 0-4.9 0-8.1 2.2-9.7 6.7-1.2 3.3-2.9 6.1-5.8 8.3-1.7 1.2-2.9 3-3.5 5C15.2 90 12 99.8 11 110c-.5 5.3.8 9.7 6.1 12 .5.2.9.6 1.1 1.1 5.8 11 15.1 17.9 26.8 21.6 2.9.9 2.7 1.8 1.1 3.7l-3.9 4.8c-3.5 4.5-5.4 9.5-4.9 15.3.1 1 .3 2-.5 3.2-4.6-3.7-8.1-8.2-11.5-12.7-12.6-16.8-19-35.8-19.5-56.7-.3-21.5 5.8-41.3 18.9-58.5 7.7-10.2 16.9-19.1 28.5-25 10.1-6.5 21.1-10.1 33.4-12zM158.7 23c17.3 17.7 31.8 37.8 43.2 59.8 1.1-16.1-27.4-55.6-43.2-59.8zM101.5 5.2c-2.9 0-5.9-.1-8.8 0-1 0-2.8.3-2.1 1.8 1.3 2.5 2.7 5.1 4.8 6.9 1.6 1.3 4.1 0 6.1-.6l14.4-1.6h20.4c-6.7-3.5-13.9-4.7-21.1-5.2-4.6.4-9-1.9-13.7-1.3z" style="fill:#0f64f8"></path><path class="round_svg__st1" d="M111.8 40.4c1.4.1 2.7.5 3.9 1.2 1.1.6 1.3 1.9.6 2.1-2.6.7-2.2 3.1-3 4.8-2.2 4.7-7.4 5.7-11.4 2.1-.6-.5-.9-1.7-2.1-.8-.7.5-1.7 1.2-2.4 0-.6-.9-.3-1.9.4-2.8 3-3.7 9.3-6.7 14-6.6zM59.3 91.9c-4.8-1.4-10.5-.9-14.2-5.4-.5-.6-1.3-1.2-1.4-1.9-.2-1.1-1.7-2.5-.3-3.4 1.5-.9 2.1.9 2.8 1.7 3.3 4.2 7.8 3.5 12.2 3 1.8-.2 3.5-1.1 5.1-1.9 1.2-.6 2.1-.7 3 .4.9 1.1.9 2.3.1 3.4-1.6 2.7-4.2 3.6-7.3 4.1z"></path><path class="round_svg__st1" d="M53.9 72.2c2.5 0 4.4 2.4 4.5 5.5 0 2.5-2.1 5.3-4 5.2-1.8-.1-5.5-5.2-5.3-7.4.3-2.9 2.6-3 4.8-3.3z"></path></svg><svg id="logo_svg__Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 995.5 227.7" style="enable-background:new 0 0 995.5 227.7" xml:space="preserve" class="lg:hidden h-10 w-auto xl:block"><style>.logo_svg__st0{fill:#0f64f8}.logo_svg__st1{fill:#060606}.logo_svg__st2{fill:#fff}</style><path class="logo_svg__st0" d="M319.2 110.9h-16.5c-1.5-4.6-5.6-7.5-11.5-7.5-9 0-14.4 7-14.4 17.4 0 9.7 5.4 17.5 14.9 17.5 5.3.2 10.1-3.1 11.7-8.1h16.9c-3.4 12.1-12.3 22.3-28.9 22.3-17.5 0-31.6-12.5-31.6-31.8 0-17.3 12-31.3 31.5-31.3 16.9-.1 26 11.6 27.9 21.5zM370.9 105.6c-2.6-.5-5.3-.7-7.9-.7-9.9 0-14.8 6.2-14.8 16.8v28.8h-16.7V91.3h16.3v9.1h.4c3.2-5.8 9.4-10.9 17.3-10.9 1.8-.1 3.6.1 5.4.5v15.6zM435 150.4h-16.5V143h-.4c-4.8 7-10.9 9.4-17.3 9.4-9.6 0-21.5-5.9-21.5-26v-35H396v32.9c0 8.6 4.1 13.3 10.5 13.3 7.3 0 11.8-5.1 11.8-14.9V91.3H435v59.1zM450.2 91.3h16.4v7.4h.5c4.1-6.5 10.7-9.3 17.5-9.3 13.3 0 22.6 8.9 22.6 27v33.9h-16.6v-32.8c0-8.9-4.2-13.4-11.1-13.4-7.3 0-12.6 5.2-12.6 15.1v31.3h-16.7V91.3zM577.4 110.9h-16.6c-1.5-4.6-5.6-7.5-11.5-7.5-9 0-14.4 7-14.4 17.4 0 9.7 5.4 17.5 14.9 17.5 5.3.2 10.1-3.1 11.7-8.1h16.9c-3.4 12.1-12.3 22.3-28.9 22.3-17.5 0-31.6-12.5-31.6-31.8 0-17.3 12-31.3 31.5-31.3 17-.1 26.1 11.6 28 21.5zM589.7 61.5h16.7v37.2h.5c4.1-6.5 10.7-9.3 17.4-9.3 13.2 0 22.5 8.8 22.5 27v33.9H630v-33c0-8.8-4.2-13.3-11.1-13.3-7.3 0-12.6 5.1-12.6 15.1v31.3h-16.6V61.5zM678.4 179.4h-15.8l10.9-29.5L652 91.2h17.3l8.5 25.7c1.6 4.8 2.9 9.6 4 14.5h.5c1-4.9 2.3-9.8 3.8-14.5l8.3-25.7h16.4l-32.4 88.2z"></path><path d="M789.3 150.4h-9.7v-7.9h-.2c-5.5 6.5-13.6 10.2-22.1 10.1-16 0-29.9-12.5-29.9-31.7 0-17.9 12.7-31.5 29.9-31.5 11.2 0 17 4.5 22.1 10.4h.2V61.5h9.7v88.9zm-30.4-6.6c11.5 0 21.5-9.3 21.5-22.7 0-14.1-9.4-23.3-21.2-23.3-14.4 0-21.7 11.5-21.7 23s7.2 23 21.4 23zM864.2 150.4h-9.7v-7.9h-.2c-5.3 6.4-13.3 10.1-21.6 10.1-16 0-30.4-12.5-30.4-31.7 0-18.3 13.3-31.5 31-31.5 10.7 0 17 5.7 21.1 10.5h.1v-8.5h9.7v59zm-30.3-6.6c11.1 0 21.4-9.4 21.4-22.7 0-14.1-9.5-23.3-21.1-23.3-14.8 0-21.8 11.6-21.8 23s7 23 21.5 23zM874.8 91.3h7.8V72.4h9.7v18.9h15.8v8.1h-15.8v31.3c0 9.6 3 12.2 9.3 12.2 2.4 0 4.8-.3 7.2-1v8c-3 .9-6 1.3-9.1 1.2-14.3 0-17-9.6-17-20.9V99.4h-7.8l-.1-8.1zM977.3 150.4h-9.7v-7.9h-.3c-5.3 6.4-13.3 10.1-21.6 10.1-16 0-30.4-12.5-30.4-31.7 0-18.3 13.3-31.5 31-31.5 10.7 0 17 5.7 21.1 10.5h.1v-8.5h9.8v59zm-30.2-6.6c11.2 0 21.4-9.4 21.4-22.7 0-14.1-9.5-23.3-21.1-23.3-14.8 0-21.8 11.6-21.8 23s6.9 23 21.5 23z"></path><path class="logo_svg__st1" d="M129.8 218.4c-48.8-.3-91.7-31.9-105.1-77.2C8.3 85.3 40.6 28.8 97.5 14.9c42.9-10.5 79.9 1.3 109.1 33.8 33.8 37.7 35.4 90.5 6.6 128.6-17.5 23.1-40.9 36.4-69.6 40.1-3.5.5-7.1.7-10.6 1-1.1.1-2.1 0-3.2 0zm-7.8-202c-2.9 0-5.9-.1-8.8 0-1 0-2.8.3-2.1 1.8 1.3 2.5 2.7 5.1 4.8 6.9 1.6 1.3 4.1 0 6.1-.6l14.4-1.6h20.4c-6.7-3.5-13.9-4.7-21.1-5.2-4.6.3-9-2-13.7-1.3zM73.7 29.9c-11.6 5.9-20.8 14.8-28.5 25C32.2 72.1 26 92 26.4 113.6c.4 20.9 6.8 39.9 19.5 56.7 3.4 4.5 6.9 9 11.5 12.6.8-1.2.5-2.3.5-3.2-.5-5.8 1.5-10.8 4.9-15.3 1.3-1.6 2.5-3.2 3.9-4.8 1.6-1.9 1.8-2.8-1.1-3.7-11.6-3.7-20.9-10.6-26.8-21.6-.2-.5-.6-.9-1.1-1.1-5.3-2.3-6.6-6.7-6.1-12 1-10.3 4.1-20 6.8-29.9.6-2 1.8-3.8 3.5-5 2.9-2.1 4.6-4.9 5.8-8.3 1.6-4.6 4.8-6.7 9.7-6.7 2.4 0 4.8-.1 7.2 0 3.8.1 7.2-.6 9.9-3.6 2.4-.3 3.4-2.5 5.2-3.6 5.1-2.9 7.2-7.3 7.3-13.2.1-5.5 2.3-10.1 7.8-12.7 3-1.5 5.7-3.4 8.2-5.6 1.8-1.6 2.9-3.4 2.6-6-.5-3 .1-6.1 1.7-8.6-12.6 1.8-23.6 5.5-33.6 11.9zm44 63.9c5.7.1 9.9 2.6 13.7 5.9 7 6 8.8 22.6-1.5 28.2-9.2 5-18.7 8.1-29.3 7.2-4.9-.4-9.8-.9-14.7-1.4-12.1-1.2-24.1-3.4-36.3-1.6-2.8.4-3.6 1.1-1.7 3.4 7.5 9.3 17.1 14.5 29.3 13.8 12-.6 24-2.4 36-.2 13.6 2.5 24.1-1.7 31.5-13.5.9-1.5 2.1-3 4.1-1.8 2 1.2 1.3 2.8.2 4.4-6.3 9.9-14 17.6-26.9 17.3-2 0-4.1.4-6.2.6-1.9.2-3.6.8-4.7 2.5-2.4 3.6-5.1 7.1-6.7 11.2l-12.6 32.4c-.9 2.3-.5 3.7 2.1 4.6 11.2 3.9 22.9 6 34.8 6.1 22.6.1 42.9-6.6 61-20.1 1.1-.8 1.7-1.6 1.2-2.8-3-7.8-.9-15.3 1.2-22.9 1.7-6.2 2.9-12.5 1.8-19-1.1-6.5-1-6.5-6.3-3.1-4.5 3-9.6 4.8-14.6 6.7-1.9.7-4.6 1-5.3-.7-1-2.4 2.1-2.4 3.5-3.1 4.1-2 8.8-3 12.4-5.9 9.4-7.6 13.9-18 15.5-29.7.8-5.3 1-10.7 1.5-16.1.1-1 .2-2.1 1.7-2.1s1.4 1.2 1.5 2.2c.1.8-.1 1.6 0 2.4.4 12.6-2.3 24.9-4.3 37.2-2 12.9-.6 25.6 2.2 38.2.4 1.6 1 3.5 2.3 3.9 1.8.6 2.5-1.6 3.4-2.8 9-11.6 14.7-24.7 17.7-39.1 2.3-11.1 2-21.7-3.8-32-4.1-7.3-7.7-14.8-11.7-22.2-8.2-15.3-19.9-28-30.8-41.2-3.3-4-7-7.9-11.8-10.4-.7-.3-1.4-1.1-2.2-.7-1.1.6-.4 1.7-.3 2.5 1.5 6-3.9 12.8-9.7 14.9-1.3.5-2.9 1.1-3.7-.4-.8-1.5 1-2 1.9-2.8 3.9-3.4 6.1-9 5.1-13.3-2.9 1.4-5.3 3.1-6.7 6-.6 1.3-1.5 3.7-3.1 2.8-1.9-1.1-.9-3.3.2-4.9.9-1.5 2.1-2.7 3.6-3.7s3.4-1.1 4.9-2.7c-1.6-.9-3.5-1.3-5.4-1.2-10.8.1-21.6-.1-32.3 2.1-3.4.6-6.8 1.4-9.5 3.8-3.8 3.5-8.1 6.5-12.6 8.8-1.9 1-3.8 2.1-3.1 4.7.6 2.4 2.6 3.6 5 3.9 1 .1 2.3-.2 2.6 1.2.3 1.2-1 1.7-1.7 2.3C93 58.8 86.3 64.3 79.6 70c-4.3 3.7-9.9 5.7-15.5 5.5-2.3-.1-4.6 0-6.9 0-5.4 0-6.6 1.6-5.1 6.8.5 1.9.7 3.9-1 5.4s-3.5 1.4-5.3-.1c-.9-.7-1.6-.4-2.3.5-1.6 1.9-1.3 3.4 1.2 4 4.4 1.2 7.7-1.1 10.8-3.9.6-.6 1.4-1.6 2.3-.9 1 .7.4 1.7-.1 2.5-1.9 3.7-9.4 7.7-13.6 7.2-1.1-.1-1.7 0-2 1.2-1.8 7.2-4.1 14.3-4.7 21.8-.6 7.6 1.2 9.1 8.7 7.4 12.4-2.9 24.6-3.7 37 .2 6.7 2.1 13.8 2.3 20.9 1.5 8.2-.9 16.4-2.3 23.2-7.5 2.7-1.9 4.3-4.8 4.6-8.1.5-4.9-1.8-8.4-5.1-11.5-2.8-2.8-5.7-5.3-9-8.2zm-25.1 59.4v.1c-1.1-.1-2.3-.2-3.4-.2-5.3-.1-10.7-.5-14.8 3.9-5 5.4-8.9 11.4-10.2 18.7-2.2 11.5-.6 14.7 9.5 20.6l3.2 1.9c8.2 4.7 8.2 4.7 11.1-4.1 1.4-4.1.4-7-3.3-9.4-.9-.6-1.8-.9-2.7-1.4-.9-.5-1.6-1.1-1.5-2.1.1-.9.9-1.7 1.8-1.9 3.2-.4 6.4-1.5 9.5-.3 1.6.6 2.3.1 2.9-1.2 3.3-7.3 6.7-14.5 10.1-21.8.7-1.5.3-2-1.3-2.1-3.6-.2-7.2-.5-10.9-.7zm86.6-119.1c17.3 17.7 31.8 37.8 43.2 59.8 1.1-16-27.4-55.5-43.2-59.8z"></path><path class="logo_svg__st2" d="M117.7 93.8c3.3 2.9 6.2 5.4 9.1 8.1 3.3 3.1 5.5 6.6 5.1 11.5-.2 3.2-1.9 6.2-4.6 8.1-6.9 5.2-15 6.7-23.2 7.5-7 .7-14.2.6-20.9-1.5-12.4-3.9-24.7-3.1-37-.2-7.6 1.8-9.3.3-8.7-7.4.6-7.5 2.9-14.6 4.7-21.8.3-1.2.9-1.3 2-1.2 4.2.5 11.6-3.4 13.6-7.2.4-.8 1-1.8.1-2.5s-1.7.3-2.3.9c-3 2.8-6.3 5.1-10.8 3.9-2.5-.6-2.8-2.1-1.2-4 .7-.9 1.4-1.2 2.3-.5 1.8 1.4 3.6 1.6 5.3.1 1.7-1.5 1.6-3.5 1-5.4-1.4-5.2-.3-6.8 5.1-6.8 2.3 0 4.6-.1 6.9 0 5.7.2 11.3-1.7 15.5-5.5 6.6-5.7 13.4-11.2 20.2-16.6.8-.6 2-1.1 1.7-2.3-.3-1.3-1.6-1-2.6-1.2-2.4-.3-4.3-1.5-5-3.9-.7-2.6 1.2-3.7 3.1-4.7 4.6-2.4 8.8-5.4 12.6-8.8 2.7-2.4 6.1-3.1 9.5-3.8 10.6-2.1 21.5-1.9 32.3-2.1 1.9-.1 3.7.3 5.4 1.2-1.5 1.5-3.4 1.7-4.9 2.7-1.4 1-2.6 2.2-3.6 3.7-1 1.6-2.1 3.8-.2 4.9 1.6.9 2.5-1.5 3.1-2.8 1.4-3 3.9-4.7 6.7-6 1 4.3-1.2 9.9-5.1 13.3-.9.8-2.7 1.3-1.9 2.8.8 1.5 2.4.8 3.7.4 5.8-2 11.2-8.8 9.7-14.9-.2-.8-.9-1.9.3-2.5.8-.4 1.5.4 2.2.7 4.8 2.5 8.4 6.4 11.8 10.4 10.9 13.3 22.6 26 30.8 41.2 4 7.4 7.6 14.9 11.7 22.2 5.8 10.3 6.1 20.9 3.8 32-3 14.4-8.7 27.5-17.7 39.1-.9 1.2-1.6 3.4-3.4 2.8-1.3-.4-2-2.3-2.3-3.9-2.8-12.6-4.2-25.3-2.2-38.2 1.9-12.3 4.7-24.6 4.3-37.2 0-.8.1-1.6 0-2.4-.1-1 0-2.2-1.5-2.2s-1.6 1.1-1.7 2.1c-.5 5.4-.7 10.8-1.5 16.1-1.7 11.7-6.1 22.1-15.5 29.7-3.6 2.9-8.3 3.8-12.4 5.9-1.5.7-4.5.7-3.5 3.1.7 1.8 3.5 1.4 5.3.7 5-1.9 10.1-3.7 14.6-6.7 5.3-3.5 5.2-3.5 6.3 3.1s0 12.8-1.8 19c-2.1 7.6-4.2 15.1-1.2 22.9.5 1.3-.1 2-1.2 2.8-18 13.5-38.3 20.2-60.9 20.1-11.8-.1-23.6-2.1-34.8-6.1-2.6-.9-3-2.2-2.1-4.6 4.2-10.8 8.3-21.6 12.6-32.4 1.6-4.1 4.3-7.6 6.7-11.2 1.1-1.6 2.8-2.3 4.7-2.5 2.1-.2 4.1-.6 6.2-.6 12.9.3 20.6-7.4 26.9-17.3 1-1.6 1.7-3.2-.2-4.4s-3.2.3-4.1 1.8c-7.4 11.8-18 16-31.5 13.5-12-2.2-24-.4-36 .2-12.1.6-21.7-4.6-29.3-13.8-1.9-2.3-1.1-3 1.7-3.4 12.2-1.9 24.3.4 36.3 1.6 4.9.5 9.8.9 14.7 1.4 10.6 1 20.1-2.2 29.3-7.2 10.3-5.6 8.5-22.2 1.5-28.2-3.7-3-7.9-5.6-13.6-5.6zm14.6-42.3c-4.8-.1-11 3-13.9 6.7-.7.9-1 1.9-.4 2.8.6 1.1 1.6.5 2.4 0 1.2-.9 1.5.3 2.1.8 4 3.6 9.2 2.6 11.4-2.1.8-1.7.3-4 3-4.8.7-.2.4-1.6-.6-2.1-1.3-.8-2.7-1.2-4-1.3zM79.8 103c3-.5 5.7-1.4 7.4-4 .8-1.2.8-2.3-.1-3.4-1-1.1-1.8-1-3-.4-1.6.8-3.4 1.6-5.1 1.9-4.4.5-8.9 1.2-12.2-3-.7-.9-1.3-2.6-2.8-1.7-1.4.9.1 2.3.3 3.4.1.7.9 1.3 1.4 1.9 3.6 4.5 9.3 4 14.1 5.3zm-5.4-19.7c-2.2.3-4.5.4-4.8 3.3-.2 2.2 3.5 7.3 5.3 7.4 1.9.1 4.1-2.6 4-5.2-.1-3.1-2-5.4-4.5-5.5z"></path><path class="logo_svg__st2" d="M92.6 153.1c3.7.3 7.3.6 11 .8 1.6.1 2 .6 1.3 2.1-3.4 7.3-6.8 14.5-10.1 21.8-.6 1.3-1.3 1.8-2.9 1.2-3.1-1.1-6.3-.1-9.5.3-.9.2-1.7.9-1.8 1.9-.2 1 .6 1.7 1.5 2.1.8.5 1.9.8 2.7 1.4 3.7 2.4 4.7 5.3 3.3 9.4-3 8.8-3 8.8-11.1 4l-3.2-1.9c-10.1-6-11.7-9.2-9.5-20.6 1.4-7.3 5.3-13.4 10.2-18.7 4-4.4 9.5-4 14.8-3.9 1 0 2.2.1 3.3.1z"></path><path class="logo_svg__st0" d="M107.1 17.9c-1.6 2.6-2.2 5.6-1.7 8.6.3 2.6-.7 4.4-2.6 6-2.4 2.2-5.2 4.1-8.1 5.6-5.5 2.6-7.6 7.3-7.8 12.7-.1 5.9-2.2 10.3-7.3 13.2-1.9 1-2.9 3.3-5.2 3.6-2.7 2.9-6.1 3.7-9.9 3.6-2.4-.1-4.8 0-7.2 0-4.9 0-8.1 2.2-9.7 6.7-1.2 3.3-2.9 6.1-5.8 8.3-1.7 1.2-2.9 3-3.5 5-2.6 9.9-5.8 19.7-6.8 29.9-.5 5.3.8 9.7 6.1 12 .5.2.9.6 1.1 1.1 5.8 11 15.1 17.9 26.8 21.6 2.9.9 2.7 1.8 1.1 3.7l-3.9 4.8c-3.5 4.5-5.4 9.5-4.9 15.3.1 1 .3 2-.5 3.2-4.6-3.7-8.1-8.2-11.5-12.7-12.6-16.8-19-35.8-19.5-56.7-.4-21.4 5.8-41.3 18.9-58.5 7.7-10.2 16.9-19.1 28.5-25 10-6.4 21-10.1 33.4-12zm72.1 16.2c17.3 17.7 31.8 37.8 43.2 59.8 1.1-16-27.4-55.5-43.2-59.8zM122 16.4c-2.9 0-5.9-.1-8.8 0-1 0-2.8.3-2.1 1.8 1.3 2.5 2.7 5.1 4.8 6.9 1.6 1.3 4.1 0 6.1-.6l14.4-1.6h20.4c-6.7-3.5-13.9-4.7-21.1-5.2-4.6.3-9-2-13.7-1.3z"></path><path class="logo_svg__st1" d="M132.3 51.5c1.4.1 2.7.5 3.9 1.2 1.1.6 1.3 1.9.6 2.1-2.6.7-2.2 3.1-3 4.8-2.2 4.7-7.4 5.7-11.4 2.1-.6-.5-.9-1.7-2.1-.8-.7.5-1.7 1.2-2.4 0-.6-.9-.3-1.9.4-2.8 3-3.6 9.2-6.6 14-6.6zM79.8 103c-4.8-1.4-10.5-.9-14.2-5.4-.5-.6-1.3-1.2-1.4-1.9-.2-1.1-1.7-2.5-.3-3.4 1.5-.9 2.1.9 2.8 1.7 3.3 4.2 7.8 3.5 12.2 3 1.8-.2 3.5-1.1 5.1-1.9 1.2-.6 2.1-.7 3 .4.9 1.1.9 2.3.1 3.4-1.6 2.7-4.3 3.6-7.3 4.1z"></path><path class="logo_svg__st1" d="M74.4 83.3c2.5 0 4.4 2.4 4.5 5.5 0 2.5-2.1 5.3-4 5.2-1.8-.1-5.5-5.2-5.3-7.4.3-2.9 2.6-3 4.8-3.3z"></path></svg></a><div class="hidden flex-grow justify-between lg:flex"><div class="flex"><div class="flex items-center" data-headlessui-state=""><div class="group relative index-1"><button class="group/btn relative flex h-full font-display items-center gap-1 py-2 px-3 text-sm rounded-md transition-colors font-semibold text-slate-900 dark:text-white" type="button" aria-expanded="false" data-headlessui-state="">Products<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="size-5 -mr-1 relative top-px text-slate-400 dark:text-white/60"><path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg></button><div class="left-0 lg:[.index-1_&amp;]:left-[-57px] xl:[.index-1_&amp;]:left-[-195px] lg:[.index-4_&amp;]:left-[-367px] xl:[.index-4_&amp;]:left-[-505px] origin-top-left absolute top-full mt-6 z-10 w-max lg:max-w-[calc(100vw-60px)] xl:max-w-[1216px] transform overflow-hidden rounded-xl bg-white dark:bg-gray-900 shadow-lg ring-1 ring-black/5 dark:ring-gray-700" hidden="" style="display:none" id="headlessui-popover-panel-:Rib599p:" tabindex="-1" data-headlessui-state=""><div class="flex"></div></div></div></div><div style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></div><div class="flex items-center" data-headlessui-state=""><div class="group relative index-2"><button class="group/btn relative flex h-full font-display items-center gap-1 py-2 px-3 text-sm rounded-md transition-colors font-semibold text-slate-900 dark:text-white" type="button" aria-expanded="false" data-headlessui-state="">Cloud<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="size-5 -mr-1 relative top-px text-slate-400 dark:text-white/60"><path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg></button><div class="left-0 lg:[.index-1_&amp;]:left-[-57px] xl:[.index-1_&amp;]:left-[-195px] lg:[.index-4_&amp;]:left-[-367px] xl:[.index-4_&amp;]:left-[-505px] origin-top-left absolute top-full mt-6 z-10 w-max lg:max-w-[calc(100vw-60px)] xl:max-w-[1216px] transform overflow-hidden rounded-xl bg-white dark:bg-gray-900 shadow-lg ring-1 ring-black/5 dark:ring-gray-700" hidden="" style="display:none" id="headlessui-popover-panel-:Rij599p:" tabindex="-1" data-headlessui-state=""><div class="flex"></div></div></div></div><div style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></div><div class="flex items-center" data-headlessui-state=""><div class="group relative index-3"><button class="group/btn relative flex h-full font-display items-center gap-1 py-2 px-3 text-sm rounded-md transition-colors font-semibold text-slate-900 dark:text-white" type="button" aria-expanded="false" data-headlessui-state="">Solutions<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="size-5 -mr-1 relative top-px text-slate-400 dark:text-white/60"><path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg></button><div class="left-0 lg:[.index-1_&amp;]:left-[-57px] xl:[.index-1_&amp;]:left-[-195px] lg:[.index-4_&amp;]:left-[-367px] xl:[.index-4_&amp;]:left-[-505px] origin-top-left absolute top-full mt-6 z-10 w-max lg:max-w-[calc(100vw-60px)] xl:max-w-[1216px] transform overflow-hidden rounded-xl bg-white dark:bg-gray-900 shadow-lg ring-1 ring-black/5 dark:ring-gray-700" hidden="" style="display:none" id="headlessui-popover-panel-:Rir599p:" tabindex="-1" data-headlessui-state=""><div class="flex"></div></div></div></div><div style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></div><div class="flex items-center" data-headlessui-state=""><div class="group relative index-4"><button class="group/btn relative flex h-full font-display items-center gap-1 py-2 px-3 text-sm rounded-md transition-colors font-semibold text-slate-900 dark:text-white" type="button" aria-expanded="false" data-headlessui-state="">Developer?<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="size-5 -mr-1 relative top-px text-slate-400 dark:text-white/60"><path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg></button><div class="left-0 lg:[.index-1_&amp;]:left-[-57px] xl:[.index-1_&amp;]:left-[-195px] lg:[.index-4_&amp;]:left-[-367px] xl:[.index-4_&amp;]:left-[-505px] origin-top-left absolute top-full mt-6 z-10 w-max lg:max-w-[calc(100vw-60px)] xl:max-w-[1216px] transform overflow-hidden rounded-xl bg-white dark:bg-gray-900 shadow-lg ring-1 ring-black/5 dark:ring-gray-700" hidden="" style="display:none" id="headlessui-popover-panel-:Rj3599p:" tabindex="-1" data-headlessui-state=""><div class="flex"></div></div></div></div><div style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></div><a class="flex h-full items-center py-2 px-3 transition ease-in-out duration-150 text-base lg:text-sm group-hover/link:text-blue-600 font-display font-semibold dark:!text-white text-slate-900 dark:text-white" href="/customers">Customers</a><a class="flex h-full items-center py-2 px-3 transition ease-in-out duration-150 text-base lg:text-sm group-hover/link:text-blue-600 font-display font-semibold dark:!text-white text-slate-900 dark:text-white" href="/pricing">Pricing</a></div><div class="flex"><a class="flex h-full items-center py-2 px-3 transition ease-in-out duration-150 text-base lg:text-sm group-hover/link:text-blue-600 font-display font-semibold dark:!text-white text-slate-900 dark:text-white" href="/blog">Blog</a><a class="flex h-full items-center py-2 px-3 transition ease-in-out duration-150 text-base lg:text-sm group-hover/link:text-blue-600 font-display font-semibold dark:!text-white text-slate-900 dark:text-white" href="/contact">Contact</a><div class="ml-3 flex items-center gap-3"><div class="flex items-center" data-headlessui-state=""><div class="group relative index-1"><button class="group/btn relative flex h-full font-display items-center gap-1 py-2 px-3 text-sm rounded-md transition-colors btn border border-blue-600/50 hover:border-blue-700 hover:bg-blue-700 text-blue-600 hover:text-white" type="button" aria-expanded="false" data-headlessui-state="">Login<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="size-5 -mr-1 relative top-px text-blue-600/50 group-hover/btn:text-white/60"><path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg></button><div class="right-0 origin-top-right absolute top-full mt-6 z-10 w-max lg:max-w-[calc(100vw-60px)] xl:max-w-[1216px] transform overflow-hidden rounded-xl bg-white dark:bg-gray-900 shadow-lg ring-1 ring-black/5 dark:ring-gray-700" hidden="" style="display:none" id="headlessui-popover-panel-:R15t599p:" tabindex="-1" data-headlessui-state=""><div class="flex"><div class="flex flex-col justify-between gap-4 lg:gap-x-7 lg:gap-y-0"><div class="flex-1 flex flex-col lg:max-w-80 gap-y-0.5"><div class="px-7 py-3.5"><div class="group/link flex flex-col space-y-1 relative -mx-3 px-3 lg: py-2 after:z-[-1] after:absolute after:inset-0 after:bg-gradient-to-br after:from-blue-50 after:to-blue-100 after:rounded-lg after:opacity-0 hover:after:opacity-100 after:scale-90 hover:after:scale-100 after:transition-all after:duration-150 dark:after:bg-blue-600 dark:after:from-blue-600 dark:after:to-blue-600"><a href="https://access.crunchydata.com" class="transition ease-in-out duration-150 text-base lg:text-sm group-hover/link:text-blue-600 font-display font-semibold dark:!text-white text-slate-900 dark:text-white">Access Portal<span class="absolute inset-0" aria-hidden="true"></span></a></div><div class="group/link flex flex-col space-y-1 relative -mx-3 px-3 lg: py-2 after:z-[-1] after:absolute after:inset-0 after:bg-gradient-to-br after:from-blue-50 after:to-blue-100 after:rounded-lg after:opacity-0 hover:after:opacity-100 after:scale-90 hover:after:scale-100 after:transition-all after:duration-150 dark:after:bg-blue-600 dark:after:from-blue-600 dark:after:to-blue-600"><a href="https://www.crunchybridge.com/login" class="transition ease-in-out duration-150 text-base lg:text-sm group-hover/link:text-blue-600 font-display font-semibold dark:!text-white text-slate-900 dark:text-white">Crunchy Bridge<span class="absolute inset-0" aria-hidden="true"></span></a></div></div></div></div></div></div></div></div><div style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></div><a href="https://www.crunchybridge.com/register" class="btn py-2 px-3 text-sm font-semibold bg-blue-600 text-white hover:bg-blue-700 focus:bg-blue-700 active:bg-blue-700 group-focus-within:bg-blue-700">Register</a></div></div></div><div class="-my-2 -mr-2 lg:hidden"><button class="inline-flex items-center justify-center rounded-md bg-white dark:bg-gray-900 p-2 text-slate-400 dark:text-slate-100 hover:dark:bg-gray-800 hover:dark:text-white hover:bg-gray-100 hover:text-slate-500 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-primary" type="button" aria-expanded="false" data-headlessui-state=""><span class="sr-only">Open menu</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="h-6 w-6"><path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"></path></svg></button></div></div></nav><div style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></div><div class="flex-grow"><main><div class="bg-gradient lg:px-16 text-center"><div class=""><div class="py-16 flex flex-col lg:grid lg:grid-cols-12 gap-8 mx-auto max-w-4xl px-6 lg:w-5/6 lg:px-8 md:max-w-3xl lg:max-w-4xl text-white"><div class="col-span-full"><h1 class="h1 mt-3">Postgres Hosting Checklist</h1><div><p class="body-lg invert-color mt-6">A list of considerations for choosing a Postgres hosting vendor.</p></div></div></div></div></div><section class="mx-auto max-w-4xl px-6 lg:w-5/6 lg:max-w-7xl lg:px-8 py-2 lg:py-2"><div class="bg-white"><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">The Postgres Software</p><p class="mt-4 text-lg text-gray-500">Ensuring that your Postgres is actually Postgres is vital for ensuring the flexibility you wish to have from Open Source software.</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Using open-source Postgres?</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Is it actually Postgres, or something &quot;Postgres-compatible&quot;? PostgreSQL has had 30 years of active development, with a strong reputation for reliability, feature robustness, and performance. It is very different to be using Postgres itself and something that is &quot;compatible&quot;, particularly when things go wrong, or require optimizations. Read the fine print. There are no standards for what is &quot;Postgres compatible&quot;.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Major version support</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Postgres releases major versions on a yearly cycle, unlocking significant performance and functionality improvements. How soon does your provider make new Postgres major versions and all their improvements and fixes available to you? Those offering &quot;Postgres-compatible&quot; databases take close to a year, and often stale at a specific version because they have to backport the changes.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Minor version availability</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Being open-source, Postgres maintainers acknowledge and release security and data integrity releases promptly. While these are rare-occurrences, it is important to patch them quickly.</dd></div></dl></div></div><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">Customer Support</p><p class="mt-4 text-lg text-gray-500">Is your team comfortable diagnosing Postgres performance? Have you run large databases before? Are you a consultancy with clients, and want to offload the database relationship?</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Postgres focused v. infrastructure focused</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Support often costs extra. Are you getting support for Postgres or for the provider&#x27;s product? Infrastructure vendors offer support, but their support is for the underlying host, not for the database, which is what your application uses. Often, their recommendation is to upgrade to a larger instance, at extra cost.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Support time to response</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Support SLAs may or may not be available for different vendors. SLAs apply to customer support response time, not resolution time. Is the support response time applicable for the use-case?</dd></div></dl></div></div><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">Postgres Extensions</p><p class="mt-4 text-lg text-gray-500">Extensions are how Postgres can incorporate additional functionality before it is included in the main-branch.</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Available extensions</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Does the vendor provide the extensions that you require? For scale, one of the most powerful extensions is PGPartman, which makes using table partitions simple. For mapping and GIS, Postgis unlocks many features. Checkout the extensions available so that you know what tools you have.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">New extensions</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Does the vendor offer communications about potentially including an extension? Will the vendor discuss the potential of including the extension, or is it an automatic &quot;no&quot;.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Extension updates</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Extension updates are released quite rapidly, often for functionality, performance, or security needs. Extensions being out of date can be as big a liability as Postgres being out of date.</dd></div></dl></div></div><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">Operational Monitoring</p><p class="mt-4 text-lg text-gray-500">Being in the cloud, systems fail, and when that happens, what is the vendor&#x27;s role in helping you recover?</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Fully-Managed v. Self-Managed</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Fully-managed means that the database vendor&#x27;s team will assist in recovery should a host fail. Self-managed means you are stuck with self-monitoring and a restart button on a panel hoping the host recovers quickly.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Integration with 3rd Party Monitoring</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Postgres monitoring requires a high-level of access to the host, which not all vendors provide. Thus, leaving 3rd party tools monitoring the nice-to-haves and not the must-haves..</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Costs</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Some providers offer a minimal set of monitoring statistics for a few days, charging extra for metrics that actually help your operations and application teams. Make sure you understand what is included and what is extra, so you know your total cost.</dd></div></dl></div></div><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">Connection Pooling</p><p class="mt-4 text-lg text-gray-500">A connection pooler accepts connections from client applications, while maintaining persistent connections to the underlying Postgres servers. It reduces stress on database compute and memory resources that tipically occur when new connections are established. It increases application availability by preserving application connections and allows for flexibility in high availability and disaster recovery scenarios.</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Support for pooling using the Postgres extended query protocol</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">The extended query protocol is best practice, as it is more secure and performant. Some connection poolers permanently &quot;pin&quot; connections using the extended query protocol to a single server, greatly negating the benefits of a pooler.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Connection Pooler Costs</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Does your provider charge extra for a connection pooler? Do they charge per vCPU, for traffic? Do they charge more for endpoints?</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Connection Pooler Upgrades</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Does your provider&#x27;s connection pooler allow pooler version upgrades without having to drop existing connections? Does it closely follow Postgres versions and protocol upgrades? </dd></div></dl></div></div><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">API &amp; Tools</p><p class="mt-4 text-lg text-gray-500">The tool suite around the database can make-or-break your ability to integrate fully with your operations.</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Understandable API</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">APIs come in all flavors: SOAP, REST, simple and complex. An API is more than a checkbox on a questionnaire: it must be tested. Building a good API experience requires intention from the vendor.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Documented API</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">API documentation </dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Command Line Interface (CLI)</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">CLIs have been a growing force since the cloud has grown because experienced developers can do more with the command line than a UI. For instance, tailing a log file with a CLI empowers use of all types of additional functionality not found in a GUI.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Programmable database</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">APIs should empower all the functionality of a database: create, destroy, health checks, backup, restore, logs, monitoring, and more. How programmable is the database environment?</dd></div></dl></div></div><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">Postgres Logs</p><p class="mt-4 text-lg text-gray-500">People who have debugged database issues know to jump straight to the logs when there is a question. The logs hold the clues.</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Log transfer</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">If using a 3rd party log-aggregator, ensure the vendor has the ability to ship logs to the specific 3rd party. This helps with additional log parsing automation that may be built.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Real-time logs</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">We are slow now, what is the database saying? When things are slow now, real-time log tailing is a valuable tool.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Logs within the platform</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Databases are often configured today and debugged later. This means 3rd party logging may not be configured for the performance issues from yesterday. But, if logs are available in the platform, it will always have your back.</dd></div></dl></div></div><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">Access Level</p><p class="mt-4 text-lg text-gray-500">Role based permissioning inside native Postgres is superuser, then everyone else.</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Real superuser</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Does the provider offer real superuser or a limited pseudo-superuser? In conjunction with unknown &quot;Postgres-compatible&quot; services, you have limited access to a database software no one else outside the provider has access to, or has tested.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Limitations of access</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">For security purposes, Postgres hosting vendors put in limitations to access. Knowing the explicit limitations are important for future growth.</dd></div></dl></div></div><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">Backup &amp; Restore</p><p class="mt-4 text-lg text-gray-500">Those are not simple operations, and when you need them, you REALLY need them to be correct and to work. There are many caveats to proper backup &amp; restore, and not all of them are immediately obvious.</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Backup methods</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Postgres backups can be snapshots from the Postgres data directory, exports to SQL (pgdump), or using transactional logs (WAL). Point-in-Time-Restore (i.e. restore database to 5pm yesterday) requires a combination of snapshots and transaction logs. Knowing how backups happen is important for understanding capabilities.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Costs</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Are there additional costs for backup storage? Often hosting providers charge additional fees for backups or to extend the retention period of the backups.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Retention Time</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Some retention times are required by regulation, and others are required for sound business practices. Check that the hosting provider maintains retention of snapshots and WAL files for the use case.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Access to backup files</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Just because the hosting vendor backs up the files does not mean customers have access to the files. Without access to these backup files, customers are stuck using pg_dump, which means restoring in case of disaster will be slow, and very limiting in functionality. </dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Restore processes</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Restore processes are based on capabilities of the vendor. Typical questions are: do restores happen to new hosts or overwrite the existing host? Is point-in-time-restore actually possible? Restore to a different region?</dd></div></dl></div></div><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">High-availability</p><p class="mt-4 text-lg text-gray-500">High-availability functionality is unique to the Postgres hosting vendor. Some use off-the-shelf tools, which limit tunability.</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">High-availability systems</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">There are a number of HA systems for Postgres. How quickly will the HA system respond and attempt to automatically recovery the cluster? Make sure you test recovery often and have statistics on timing.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Replication system</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Postgres can replicate using streaming, logical, or statement-based replication, each having pros and cons. Which does the hosting provider use and does that fit your needs? Streaming replication is a high-integrity system for replication that checks commits across the cluster against an internal timeline.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Failover process</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Does the hostname change? Does the failover system have the same system resources as the initial host? When building systems that rely on the database, it is important to program your secondary systems to behave properly as well.</dd></div></dl></div></div><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">Disaster Recovery</p><p class="mt-4 text-lg text-gray-500">With the cloud, high-availability is no longer a disaster because of the advanced systems. Thus, disasters are client-side issues, like dropping a database, or vendor-side issues, like a data-center failing.</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Disaster recovery process</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Will the vendor assist with client-side failures or only on vendor-side failures? If so, what is the initiation process and the SLA for a response time.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Customer-facing tools for client-side failures</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Most client-side failures can be resolved with point-in-time-restore (i.e. restore to the time before the failure). Does the vendor include API programmability to take snapshots of your database prior to large migrations?</dd></div></dl></div></div><div class="mx-auto max-w-7xl py-4 px-4 sm:px-6 lg:grid lg:grid-cols-3 lg:gap-x-8 lg:py-8 lg:px-8"><div><p class="mt-2 text-3xl font-bold tracking-tight text-gray-900">Ability to Migrate</p><p class="mt-4 text-lg text-gray-500">Not all vendor relationships work. Many database hosting vendors make it super easy to import data, but export data is a downtime event.</p></div><div class="mt-12 lg:col-span-2 lg:mt-0"><dl class="space-y-10 grid grid-col-1 "><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Open Source Postgres</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">Migrating from a Postgres-compatible database to an Open Source Postgres database is not as easy as it sounds. Thus, know there probably is not a reverse switch.</dd></div><div><dt><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="absolute h-6 w-6 text-green-500"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path></svg><p class="ml-9 text-lg font-medium leading-6 text-gray-900">Migration Methods</p></dt><dd class="mt-2 ml-9 text-base text-gray-500">For large databases (greater than 100GB), it is typically best to replicate a database using streaming replication or access to WAL files. This enables minimal downtime migrations. If the vendor claims pgdump is the only migration path for larger databases, migration will require significant downtime.</dd></div></dl></div></div></div></section><section class="mx-auto max-w-4xl px-6 lg:w-5/6 lg:max-w-7xl lg:px-8 py-16 lg:py-24"><div class=""><h3 class="subtitle text-primary"></h3><h2 class="h2 mt-2">Find out how Crunchy Bridge meets your hosting needs</h2></div><div class="mt-16 grid grid-cols-1 gap-x-6 gap-y-12 sm:grid-cols-2 lg:gap-x-8 lg:gap-y-16 lg:grid-cols-3"><a href="https://docs.crunchybridge.com"><div class="flex flex-row gap-4 items-center"><div class="flex h-12 w-12 items-center justify-center rounded-md bg-gradient shrink-0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="h-6 w-6 text-white"><path stroke-linecap="round" stroke-linejoin="round" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"></path></svg></div><h3 class="h5">Documentation</h3></div></a><a href="/blog/topic/crunchy-bridge"><div class="flex flex-row gap-4 items-center"><div class="flex h-12 w-12 items-center justify-center rounded-md bg-gradient shrink-0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="h-6 w-6 text-white"><path stroke-linecap="round" stroke-linejoin="round" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg></div><h3 class="h5">Blogs</h3></div></a><a href="/case-studies/rival-iq"><div class="flex flex-row gap-4 items-center"><div class="flex h-12 w-12 items-center justify-center rounded-md bg-gradient shrink-0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="h-6 w-6 text-white"><path stroke-linecap="round" stroke-linejoin="round" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"></path></svg></div><h3 class="h5">Case Studies</h3></div></a></div></section><div class="border-t border-gray-200 overflow-x-hidden bg-gray-50"><section class="mx-auto max-w-4xl px-6 lg:w-5/6 lg:max-w-7xl lg:px-8"><div class="relative mx-auto max-w-xl py-16"><svg class="absolute top-0 left-full translate-x-1/2 transform" width="404" height="404" fill="none" viewBox="0 0 404 404" aria-hidden="true"><defs><pattern id="85737c0e-0916-41d7-917f-596dc7edfa27" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse"><rect x="0" y="0" width="3" height="3" class="text-gray-300" fill="currentColor"></rect></pattern></defs><rect width="404" height="404" fill="url(#85737c0e-0916-41d7-917f-596dc7edfa27)"></rect></svg><svg class="absolute right-full bottom-0 -translate-x-1/2 transform" width="404" height="404" fill="none" viewBox="0 0 404 404" aria-hidden="true"><defs><pattern id="85737c0e-0916-41d7-917f-596dc7edfa27" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse"><rect x="0" y="0" width="3" height="3" class="text-gray-300" fill="currentColor"></rect></pattern></defs><rect width="404" height="404" fill="url(#85737c0e-0916-41d7-917f-596dc7edfa27)"></rect></svg><header class="text-center"><h2 class="h2">Contact Us</h2></header><form method="post" action="/contact" class="mt-8 grid w-full grid-cols-1 gap-y-6 sm:grid-cols-2 sm:gap-x-8"><input type="hidden" name="csrf" value="2d8739be0eab615b8af765d777837dcea0081f16a574bf7bf98b92829122388ace1d81e5c7ca5346774e2d761d5138b59f579869797d013c069a5b52e1ce2b20a41c58b65aab7b5af7a10a4d4b816b035876db4a7c0ed84ae9c6759e88236628bebf9103"/><label class="hidden">Do not fill this out please:<!-- --> <input type="text" name="favorite-ice-cream"/></label><label class="hidden">Do not fill this out please, it will be pre-filled:<!-- --> <input type="text" name="favorite-relational-database" value=""/></label><input type="hidden" name="form-loaded-at" value="1732765416201"/><div class="min-w-0 flex-1"><label for="firstname-demo" class="block text-sm font-semibold text-gray-700">First Name<span class="text-danger ml-1">*</span></label><input id="firstname-demo" type="text" name="firstname" class="block w-full border border-gray-200 rounded-md px-5 py-3 text-base text-gray-900 placeholder-gray-500 shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-bright focus:ring-opacity-50 mt-1" aria-invalid="false" required="" autoComplete="given-name"/></div><div class="min-w-0 flex-1"><label for="lastname-demo" class="block text-sm font-semibold text-gray-700">Last Name<span class="text-danger ml-1">*</span></label><input id="lastname-demo" type="text" name="lastname" class="block w-full border border-gray-200 rounded-md px-5 py-3 text-base text-gray-900 placeholder-gray-500 shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-bright focus:ring-opacity-50 mt-1" aria-invalid="false" required="" autoComplete="family-name"/></div><div class="min-w-0 flex-1"><label for="company-demo" class="block text-sm font-semibold text-gray-700">Company<span class="text-danger ml-1">*</span></label><input id="company-demo" type="text" name="company" class="block w-full border border-gray-200 rounded-md px-5 py-3 text-base text-gray-900 placeholder-gray-500 shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-bright focus:ring-opacity-50 mt-1" aria-invalid="false" required="" autoComplete="organization"/></div><div class="min-w-0 flex-1"><label for="phone-demo" class="block text-sm font-semibold text-gray-700">Phone Number</label><input id="phone-demo" type="text" name="phone" class="block w-full border border-gray-200 rounded-md px-5 py-3 text-base text-gray-900 placeholder-gray-500 shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-bright focus:ring-opacity-50 mt-1" aria-invalid="false" autoComplete="tel"/></div><div class="col-span-full"><div class="min-w-0 flex-1"><label for="email-demo" class="block text-sm font-semibold text-gray-700">Email Address<span class="text-danger ml-1">*</span></label><input id="email-demo" type="email" name="email" class="block w-full border border-gray-200 rounded-md px-5 py-3 text-base text-gray-900 placeholder-gray-500 shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-bright focus:ring-opacity-50 mt-1" aria-invalid="false" required="" autoComplete="email"/></div></div><div class="min-w-0 flex-1"><label for="how_did_you_hear_about_crunchy_data-demo" class="block text-sm font-semibold text-gray-700">How did you hear about us?</label><select id="how_did_you_hear_about_crunchy_data-demo" name="how_did_you_hear_about_crunchy_data" class="block w-full border border-gray-200 rounded-md px-5 py-3 text-base text-gray-900 placeholder-gray-500 shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-bright focus:ring-opacity-50 mt-1" aria-invalid="false"><option value="default" disabled="" selected="">Select option</option><option value="Crunchy Data Blog">Crunchy Data Blog</option><option value="Twitter">Twitter</option><option value="Event">Event</option><option value="Referral">Referral</option><option value="LinkedIn">LinkedIn</option></select></div><div class="min-w-0 flex-1"><label for="preferred_contact_method-demo" class="block text-sm font-semibold text-gray-700">Preferred contact method?</label><select id="preferred_contact_method-demo" name="preferred_contact_method" class="block w-full border border-gray-200 rounded-md px-5 py-3 text-base text-gray-900 placeholder-gray-500 shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-bright focus:ring-opacity-50 mt-1" aria-invalid="false"><option value="default" disabled="" selected="">Select option</option><option value="Email">Email</option><option value="Send Meeting Invite">Send Meeting Invite</option><option value="Phone">Phone</option></select></div><div class="col-span-full"><div class="min-w-0 flex-1"><label for="message-demo" class="block text-sm font-semibold text-gray-700">How can we help?<span class="text-danger ml-1">*</span></label><textarea id="message-demo" name="message" class="block w-full border border-gray-200 rounded-md px-5 py-3 text-base text-gray-900 placeholder-gray-500 shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-bright focus:ring-opacity-50 mt-1 h-32" aria-invalid="false" required=""></textarea></div></div><div class="col-span-full text-center"><button type="submit" class="btn btn-gradient w-full">Send Message</button></div><div id="form-error-message" class="col-span-full"></div></form></div></section></div></main></div><footer class="bg-gray-1000" aria-labelledby="footer-heading"><h2 id="footer-heading" class="sr-only">Footer</h2><div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:py-16 lg:px-8"><div class="xl:grid xl:grid-cols-3 xl:gap-8"><div class="grid grid-cols-2 gap-8 xl:col-span-2"><div class="md:grid md:grid-cols-2 md:gap-8"><div><h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Products</h3><ul role="list" class="mt-4 space-y-4"><li><a class="text-sm text-gray-300 hover:text-white" href="/products/crunchy-high-availability-postgresql">Crunchy Postgres</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/products/crunchy-postgresql-for-kubernetes">Crunchy Postgres for Kubernetes</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/products/crunchy-bridge">Crunchy Bridge</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/products/crunchy-certified-postgresql">Crunchy Certified PostgreSQL</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/products/crunchy-postgresql-for-cloud-foundry">Crunchy PostgreSQL for Cloud Foundry</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/products/crunchy-mls-postgresql">Crunchy MLS PostgreSQL</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/products/crunchy-spatial">Crunchy Spatial</a></li></ul></div><div class="mt-12 md:mt-0"><h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Services &amp; Support</h3><ul role="list" class="mt-4 space-y-4"><li><a class="text-sm text-gray-300 hover:text-white" href="/solutions/enterprise-postgresql-support">Enterprise PostgreSQL Support</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/migrate-from-heroku">Migrate from Heroku</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/solutions/ansible">Ansible</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/red-hat-certified-technologies">Red Hat Partner</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/about/postgresql-enterprise-database">Trusted PostgreSQL</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/about/value-of-subscription">Crunchy Data Subscription</a></li></ul></div></div><div class="md:grid md:grid-cols-2 md:gap-8"><div><h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Resources</h3><ul role="list" class="mt-4 space-y-4"><li><a class="text-sm text-gray-300 hover:text-white" href="https://access.crunchydata.com">Customer Portal</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="https://access.crunchydata.com/documentation/">Software Documentation</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/developers/tutorials">Postgres Tutorials</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/developers/get-started/fully-managed-postgres">Crunchy Bridge Walkthrough</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/developers/get-started/postgres-operator">Postgres Operator Walkthrough</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/blog">Blog</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/events">Events</a></li></ul></div><div class="mt-12 md:mt-0"><h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Company</h3><ul role="list" class="mt-4 space-y-4"><li><a class="text-sm text-gray-300 hover:text-white" href="/about">About Crunchy Data</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/team">Team</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/news">News</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/careers">Careers</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/contact">Contact Us</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/newsletter">Newsletter</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/branding">Branding</a></li><li><a class="text-sm text-gray-300 hover:text-white" href="/security">Security</a></li></ul></div></div></div><div class="mt-8 xl:mt-0"><h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Crunchy Data Newsletter</h3><p class="mt-4 text-base text-gray-300">Subscribe to the Crunchy Data Newsletter to receive Postgres content every month.</p><form method="post" action="/newsletter" class="mt-12 sm:max-w-lg w-full"><input type="hidden" name="csrf" value="2d8739be0eab615b8af765d777837dcea0081f16a574bf7bf98b92829122388ace1d81e5c7ca5346774e2d761d5138b59f579869797d013c069a5b52e1ce2b20a41c58b65aab7b5af7a10a4d4b816b035876db4a7c0ed84ae9c6759e88236628bebf9103"/><label class="hidden">Do not fill this out please:<!-- --> <input type="text" name="favorite-ice-cream"/></label><label class="hidden">Do not fill this out please, it will be pre-filled:<!-- --> <input type="text" name="favorite-relational-database" value=""/></label><input type="hidden" name="form-loaded-at" value="1732765416202"/><div class="sm:flex-row flex flex-col gap-4"><div class="min-w-0 flex-1"><label for="email_:R76h9p:" class="sr-only">Email address</label><input id="email_:R76h9p:" type="email" name="email" autoComplete="email" class="block w-full border border-gray-200 rounded-md px-5 py-3 text-base text-gray-900 placeholder-gray-500 shadow-sm focus:outline-none focus:ring-2 focus:ring-primary-bright focus:ring-opacity-50" placeholder="Enter your email" aria-invalid="false"/></div><div class="sm:w-auto sm:grow-0 w-full"><button type="submit" class="btn btn-gradient w-full">Join The List</button></div></div><div id="form-error-message"></div></form></div></div><div class="mt-8 border-t border-gray-700 pt-8 md:flex md:items-center md:justify-between"><div class="flex space-x-6 md:order-2"><a href="https://www.youtube.com/c/CrunchyDataPostgres" class="text-gray-400 hover:text-gray-300"><span class="sr-only">YouTube</span><svg xmlns="http://www.w3.org/2000/svg" class="h-8" fill="currentColor" viewBox="0 0 411 369" aria-hidden="true"><path d="M203.18 340.25c-40.43 0-80.85-.05-121.28.04-8.97.02-16.87-2.54-23.54-8.5-6.38-5.71-10.47-12.92-10.66-21.49-.45-19.55-.44-39.12-.45-58.68-.05-62.65-.04-125.29 0-187.94.01-10.42 3.18-19.64 11.29-26.68 6.05-5.26 13.05-8.34 21.12-8.34 82.42-.04 164.84-.03 247.25-.02 14.89 0 29.2 12.27 31.41 26.96.49 3.27.78 6.61.78 9.92.04 79.84.04 159.67.03 239.51 0 9.51-2.64 18.1-9.35 25.1a32.11 32.11 0 01-18.04 9.58c-2.52.44-5.13.51-7.7.51-40.28.04-80.57.03-120.86.03zm-2.7-66.66c0 .02 0 .04 0 .05 10.87 0 21.73.05 32.6-.02 6.38-.04 12.76-.26 19.14-.45a266 266 0 0010.17-.45c8.79-.61 17.6-1.05 26.35-2.02 5.69-.63 11.52-1.41 16.86-3.32 10.48-3.74 17.38-11.42 19.57-22.41a208.93 208.93 0 003.65-26.93 717.5 717.5 0 001.28-39.64c.16-14.66-.8-29.28-2.89-43.8-.92-6.42-1.77-12.93-5.12-18.71-4.92-8.47-11.98-13.94-21.74-15.95-11.07-2.28-22.3-2.86-33.53-3.48-11.38-.63-22.78-.93-34.18-1.24-8.42-.23-16.84-.4-25.26-.34-12.76.1-25.53.34-38.29.67-10.99.29-21.98.56-32.95 1.27-9.52.62-19.02 1.68-28.49 2.85-9.85 1.21-17.18 6.55-22.57 14.75-3.53 5.37-4.76 11.52-5.55 17.7-1.1 8.6-1.95 17.24-2.49 25.88a491.76 491.76 0 00-1.03 29.49c-.02 8.06.66 16.13.98 24.19a209.4 209.4 0 003.69 31.86c2.54 12.98 12.32 23.23 25.18 25.41 8 1.36 16.1 2.35 24.19 2.92 11.77.84 23.57 1.36 35.37 1.63 11.69.3 23.38.09 35.06.09z"></path><path d="M243 184.6c-21.98 12.5-43.5 24.75-65.24 37.12 0-24.85 0-49.38 0-74.21C199.48 159.86 221 172.09 243 184.6z"></path></svg></a><a href="https://www.linkedin.com/company/crunchy-data-solutions-inc-" class="text-gray-400 hover:text-gray-300"><span class="sr-only">LinkedIn</span><svg xmlns="http://www.w3.org/2000/svg" class="h-8" fill="currentColor" viewBox="0 0 411 369" aria-hidden="true"><path d="M157.61 28.3c7.35.21 14.69.19 22.04.01 7.47 0 14.93 0 22.4 0 7.48.19 14.96.19 22.44 0 7.33 0 14.66 0 21.99 0 7.48.19 14.96.19 22.44 0 7.47.16 14.93.16 22.4 0 7.48.19 14.96.19 22.44 0 7.33 0 14.66 0 21.99 0 1.43.06 2.86.12 4.29.18.55.24 1.09.54 1.66.69a22.39 22.39 0 0111.12 7.01c2.87 3.25 4.14 7.19 5.33 11.2.03 1.03.07 2.05.1 3.08 0 7.47 0 14.94 0 22.41 0 7.48 0 14.96 0 22.44 0 7.47.01 14.94.01 22.4 0 7.34 0 14.69-.01 22.03 0 7.47 0 14.94 0 22.41 0 7.48 0 14.96 0 22.44 0 7.33 0 14.67 0 22 0 7.48 0 14.96 0 22.44 0 7.47 0 14.94 0 22.41 0 7.48 0 14.96-.01 22.44 0 7.33 0 14.67 0 22 0 7.48 0 14.96 0 22.44-.12 1.36-.25 2.73-.37 4.09-1.36 5.47-4.03 10.11-8.57 13.59-2.73 2.09-5.85 3.27-9.07 4.3-.27.03-.54.05-.81.08-.2.09-.41.17-.61.26-1.02.04-2.03.07-3.05.11-7.34 0-14.68 0-22.02 0-7.47 0-14.94 0-22.41-.01-7.48 0-14.95 0-22.43 0-7.47 0-14.94 0-22.41.01-7.34 0-14.68 0-22.02-.01-7.47 0-14.94 0-22.42 0-7.48 0-14.95 0-22.43 0-7.34 0-14.67 0-22.01 0-7.48 0-14.95 0-22.43.01-7.47 0-14.94 0-22.42 0-7.48 0-14.95 0-22.43 0-7.34 0-14.67 0-22.01 0-1.01-.02-2.03-.03-3.04-.05-1.23-.77-2.71-.74-4.04-1.22-8.12-2.95-12.98-8.76-15-17.07-.13-1.37-.27-2.74-.4-4.11 0-7.47 0-14.94 0-22.41 0-7.34 0-14.69-.01-22.03 0-7.47 0-14.94.01-22.41 0-7.48 0-14.96 0-22.44 0-7.47 0-14.94-.01-22.41 0-7.34 0-14.69 0-22.03 0-7.47 0-14.94 0-22.41 0-7.48 0-14.96 0-22.44 0-7.33 0-14.67 0-22 0-7.48 0-14.96-.01-22.44 0-7.47 0-14.94 0-22.41 0-7.48 0-14.96.01-22.44.04-1.04.08-2.07.12-3.11.1-.25.25-.48.31-.74 2.07-8.75 7.12-14.77 15.88-17.42.51-.15.98-.44 1.47-.66 1.56-.08 3.13-.16 4.69-.24 7.35.2 14.69.2 22.04 0 7.47.17 14.93.16 22.4 0 7.48.19 14.96.19 22.44 0 7.5.19 14.97.21 22.43.03zm110.04 223.15c-.4.69-.22 1.46-.23 2.19-.01 5.55-.03 11.11.01 16.66.01 1.2-.27 2.43.23 3.61-.02 6.86-.03 13.72-.06 20.57 0 .95.12 1.66 1.33 1.4 7.47 0 14.94 0 22.42 0 6.99.02 13.97.02 20.96.09 1.18.01 1.5-.41 1.49-1.54-.06-6.85-.07-13.7-.09-20.55 0-7.47 0-14.94 0-22.4 0-7.48 0-14.96 0-22.44.06-7.46.2-14.93-.11-22.39-.17-7.41-.58-14.8-2.32-22.04-.58-4.46-2.02-8.69-3.65-12.85a37.89 37.89 0 00-5.21-9.6 32.27 32.27 0 00-11.04-10.63c-.67-.46-1.3-.97-2.01-1.36a52.82 52.82 0 00-20.43-6.24c-.87-.11-1.73-.28-2.6-.33-6.65-.38-13.3-.62-19.85.97a45.91 45.91 0 00-22.01 10.64 30.75 30.75 0 00-6.6 6.92c-1.52 1.39-2.07 3.54-4.14 5.35 0-2.13 0-3.71 0-5.29.04-4.6.05-9.19.12-13.79.02-1.09-.44-1.39-1.45-1.37-3.45.06-6.9.06-10.34.08-7.47 0-14.94 0-22.42 0-2.91-.02-5.83 0-8.74-.08-1.15-.03-1.53.38-1.51 1.52.07 4.54.06 9.08.08 13.62 0 7.47 0 14.94 0 22.42 0 7.34 0 14.68 0 22.02 0 7.47 0 14.94-.01 22.42 0 7.48 0 14.95 0 22.43 0 7.47.01 14.94.01 22.41-.02 6.85-.03 13.7-.09 20.55-.01 1.13.35 1.56 1.51 1.53 2.91-.08 5.83-.06 8.75-.09 7.47 0 14.94 0 22.42 0 4 .02 8 .01 12.01.09 1.16.02 1.52-.39 1.51-1.53-.06-6.85-.07-13.7-.09-20.55 0-7.47.01-14.94.01-22.41 0-7.48 0-14.95 0-22.43.05-7.49.11-14.99 1.25-22.42.13-.45.3-.89.4-1.35 1.18-5.59 3.38-10.67 7.37-14.87 3.17-2.69 6.84-4.46 10.76-5.77 3.73-.47 7.49-.58 11.25-.56 1.76.31 3.52.62 5.28.94.23.13.44.31.68.4 5.72 2 9.45 5.98 11.71 11.52 1.28 3.14 1.84 6.45 2.64 9.7.73 7.07.58 14.16.6 21.26 0 .39.15.78.22 1.17-.02 7.48-.02 14.94-.02 22.4zm-127.3-44.84c.17-7.33.17-14.66 0-21.99.18-7.48.18-14.97 0-22.45.04-3.37.09-6.74.1-10.11.02-5.22 0-5.22-5.24-4.94-7.48 0-14.95 0-22.43 0-5.76-.02-11.52-.02-17.28-.09-1.17-.01-1.51.39-1.49 1.52.07 4.54.06 9.08.09 13.62 0 7.48 0 14.96 0 22.44 0 7.33 0 14.67 0 22 0 7.48 0 14.96 0 22.44 0 7.47 0 14.94 0 22.41 0 7.48 0 14.96-.01 22.44-.02 6.85-.02 13.69-.08 20.54-.01 1.12.31 1.54 1.48 1.53 5.76-.07 11.52-.06 17.29-.09 7.48 0 14.95 0 22.43 0 1.28.02 2.57 0 3.85.08 1.04.06 1.42-.33 1.41-1.39-.07-6.89-.08-13.78-.12-20.66.17-7.48.18-14.97-.01-22.45.17-7.46.17-14.92 0-22.38.19-7.5.19-14.99.01-22.47zm3.1-111.33c-.97-6-3.56-11.1-8.23-15.08-6.32-6.06-13.86-8.11-22.43-6.79-10.77 1.22-20.8 11.23-21.98 21.92a17.02 17.02 0 00-.39 6.23c.53 6.21 2.46 11.85 7.16 16.24 3.9 4.92 9.21 7.29 15.21 8.41 10.59 1.59 19.2-1.99 25.72-10.33a24.65 24.65 0 004.94-20.6z"></path></svg></a><a href="https://twitter.com/crunchydata" class="text-gray-400 hover:text-gray-300"><span class="sr-only">Twitter</span><svg xmlns="http://www.w3.org/2000/svg" class="h-8" fill="currentColor" viewBox="0 0 411 369" aria-hidden="true"><path d="M245.63 341.6c-7.34 0-14.68 0-22.02 0-7.47 0-14.95 0-22.42 0-7.48 0-14.95 0-22.43 0-7.34 0-14.68 0-22.01 0-7.48 0-14.95 0-22.43.01-7.47 0-14.95 0-22.42 0-7.48 0-14.95 0-22.43 0-4.8-.29-9.62.12-14.42-.34-15.16-1.45-27.75-13.63-29.66-28.69-.67-5.27-.11-10.56-.42-15.84 0-7.34 0-14.69 0-22.03 0-7.47 0-14.94.01-22.41 0-7.48 0-14.96 0-22.43 0-7.47 0-14.94 0-22.41 0-7.34 0-14.69 0-22.03 0-7.47 0-14.94 0-22.41 0-7.48 0-14.96 0-22.43 0-7.33 0-14.67 0-22 0-7.48 0-14.96 0-22.43 0-7.47 0-14.94 0-22.41.31-5.21-.23-10.44.44-15.65a33.27 33.27 0 0127.62-28.46c2.91-.46 5.82-.32 8.73-.39 2.57-.06 5.15-.08 7.73-.12 7.47 0 14.94 0 22.41 0 7.48.18 14.96.18 22.43 0 7.47 0 14.94 0 22.41 0 7.34.19 14.69.18 22.03 0 7.47 0 14.94 0 22.41 0 7.48.18 14.96.18 22.43 0 7.33 0 14.67 0 22 0 7.48.18 14.96.18 22.43 0 7.47 0 14.94 0 22.41 0 7.48.18 14.96.18 22.43 0 4.2.04 8.41.05 12.61.14 15.5.34 29.47 13.03 31.44 28.41.68 5.35.14 10.71.45 16.06 0 7.48 0 14.96 0 22.43 0 7.47 0 14.94.01 22.41 0 7.34 0 14.69 0 22.03 0 7.47 0 14.94 0 22.41 0 7.48 0 14.96 0 22.43 0 7.33 0 14.67 0 22 0 7.48 0 14.96 0 22.43 0 7.47 0 14.94 0 22.41 0 7.48 0 14.96 0 22.43 0 7.33 0 14.67 0 22-.02 3.52-.05 7.05-.07 10.57-.07 19.46-14.6 34.05-34.08 34.22-3.46.03-6.91.06-10.37.09-7.47 0-14.95 0-22.42 0-7.48 0-14.95 0-22.43 0-7.46 0-14.93 0-22.4 0zm66.44-225.07c-1.38.31-2.69.78-3.88 1.54-5.82 1.87-11.65 3.73-17.72 4.64-1.04-.21-2.04.64-3.26.12 2.04-1.56 4.03-2.97 5.9-4.54a42.36 42.36 0 009.87-12.29c1.28-2.34 2.77-4.65 2.95-7.44.1-.02.21-.05.31-.07-.02-.06-.05-.12-.07-.18-.07.1-.14.19-.21.29-5.09 2.56-10.18 5.13-15.56 7.06-3.64 1.01-7.29 2.01-10.93 3.03-1.41.4-2.48.16-3.58-1a27.54 27.54 0 00-7.46-5.84 40.07 40.07 0 00-20.12-6.9c-4.29-.3-8.66-.59-12.89.77a31.72 31.72 0 00-11.87 3.98A42.07 42.07 0 00204 118.55a21.34 21.34 0 00-2.91 6.71c-2.07 4.9-2.71 10.06-2.66 15.33-.26 2.99.35 5.92.79 8.85.17 1.13-.14 1.45-1.21 1.34-2.15-.23-4.31-.35-6.44-.63-4.27-.57-8.54-1.21-12.81-1.83a202.6 202.6 0 01-22.02-6.88 5.26 5.26 0 00-2.25-.93 214.22 214.22 0 01-20.17-10.91 249.36 249.36 0 01-14.24-11.04c-2.72-2.59-5.43-5.19-8.15-7.78-2.24-2.52-4.48-5.04-6.78-7.63-2.74 4.87-4.79 9.89-5.43 15.42-1.51 7.7-.7 15.19 1.91 22.54a40.53 40.53 0 0010.25 16.67 25.49 25.49 0 006.22 5.35c.27.28.53.56.92.97-2.54.25-4.79-.64-7.12-.67a3.76 3.76 0 00-2.23-.44c-3.62-1.29-7.26-2.5-10.74-4.41 0 1.61 0 3.02 0 4.43.83 8.21 3.34 15.8 8.34 22.47a26.36 26.36 0 004.65 5.61 42.96 42.96 0 0022.37 12.37c.08.25.63.48.04.76-.2-.01-.42-.07-.6-.02a44.04 44.04 0 01-17.3.74c-1.58-.23-1.69.39-1.18 1.59.13.31.26.62.39.92.88 2.12 1.84 4.2 3.04 6.16 3.97 6.51 8.92 12.06 15.64 15.87.24.14.47.28.71.41 6.63 4.2 13.92 6.16 21.72 6.39.45.26.09.49-.04.72a106.82 106.82 0 01-22.42 12.74c-2.3.68-4.58 1.39-6.74 2.44-5.2 1.06-10.33 2.51-15.63 3.08a115 115 0 01-21.32.4c6.81 4.35 13.72 8.28 21.3 10.92a95.68 95.68 0 0022.41 6.59c7.23 1.87 14.61 2.46 22.04 2.61 4.92.1 9.84.09 14.74-.53 2.59-.14 5.2-.19 7.74-.83a92.39 92.39 0 0022.38-5c7.57-2.08 14.63-5.37 21.54-9.02.34-.18.59-.53.88-.79 4.4-1.69 8.09-4.56 11.84-7.31 3.7-2.33 7.06-5.1 10.19-8.14a91.57 91.57 0 0013.61-14.22 81 81 0 008.84-12.22 73.19 73.19 0 006.1-10.26c3.9-7 6.86-14.4 9.3-22.02 2.47-7.28 4.2-14.73 5.12-22.36.97-7.47 1.74-14.95 1.03-22.49.01-.63.48-.97.84-1.38a85.32 85.32 0 0020.59-20.98c.49-.48 1.04-.92.98-1.72.04-.03.08-.07.12-.1a.46.46 0 00-.12.12z"></path></svg></a><a href="https://github.com/CrunchyData" class="text-gray-400 hover:text-gray-300"><span class="sr-only">GitHub</span><svg xmlns="http://www.w3.org/2000/svg" class="h-8" fill="currentColor" viewBox="0 0 411 369" aria-hidden="true"><path d="M182.2 342H92.9c-4.73-.28-9.47.07-14.22-.32-15.07-1.24-28.02-13.68-29.87-28.7-.65-5.27-.12-10.56-.42-15.83v-223c.3-5.14-.2-10.3.43-15.44 1.98-16.2 15.8-28.75 32.1-29.03l12-.13h22.4c7.48.17 14.96.17 22.44 0h22.4c7.34.18 14.7.17 22.03 0h22.4c7.48.17 14.96.17 22.44 0h22c7.48.17 14.96.17 22.44 0h22.4c7.48.17 14.96.17 22.44 0l12.2.12c15.83.3 29.72 12.73 31.83 28.42.72 5.34.16 10.7.46 16.05v223c-.3 5.2.2 10.42-.43 15.63-1.85 15.4-14.8 27.76-30.27 28.92-4.6.35-9.2.02-13.8.32h-111.7-22.42zm134.87-134.16c.36-2.27.83-4.54 1.05-6.83.5-5.05 1.06-10.1.7-15.2-.02-1.82.04-3.64-.06-5.45-.3-5.16-.63-10.32-2-15.34.02-.57.03-1.14-.27-1.65-1.47-7.8-3.84-15.3-7.3-22.44-2.08-5.4-5.03-10.33-8.17-15.16-1.65-2.54-3.14-5.2-5.45-7.24l-1.2-1.33c-.6-1.46-1.63-2.62-2.66-3.8-8.1-9.2-17.43-16.9-27.98-23.1-4.67-2.75-9.44-5.34-14.65-6.98-4-2.22-8.44-3.25-12.74-4.62-3.02-.96-6.2-1.47-9.3-2.17-7.4-1.64-14.86-2.38-22.43-2.33-7.56-.3-15.05.36-22.48 1.77-7.6 1.13-14.9 3.3-22 6.2-.58.18-1.18.32-1.74.55-18.25 7.5-33.47 19-45.42 34.7-5.52 7.25-10.32 14.97-13.56 23.56-2.97 6.14-4.84 12.63-6.32 19.25-1.87 8.43-3.08 16.93-2.88 25.58-.18 8.1.58 16.14 2.15 24.07 1.4 7 3.2 13.87 6.18 20.4 2.95 8 6.85 15.5 11.84 22.42 1.33 2.44 2.96 4.66 4.84 6.7 4.4 5.84 9.4 11.1 15.03 15.77 2.3 2.25 4.82 4.2 7.47 6.03l6.4 4.36c5.08 3.27 10.44 6 16.03 8.3 2.6 1.34 5.34 2.3 8.12 3.1 4.18 1.18 7.87-1.06 8.03-5.03.22-5.6.25-11.2-.1-16.82.32-3.52.05-7.05.1-10.57.01-.93-.3-1.4-1.33-1.2-4.9.93-9.85.95-14.8.82-2-.3-4.05-.48-6.03-.92-7.77-1.73-13.94-5.5-16.86-13.4-1.1-3-2.77-5.72-4.34-8.5-2.85-5.04-7.55-8.05-11.9-11.47-1.84-2.8-1.24-4.06 2.12-4.38.67-.06 1.37-.1 2.03.02 6.78 1.12 12.3 4.33 16.3 10 2.14 3.03 3.95 6.32 6.76 8.84 3.4 3.06 7.27 5.1 11.9 5.47 5.5 1.12 10.57-.55 15.6-2.42.7-.26.82-.87.92-1.45.94-5.38 2.93-10.25 7.17-14.4l-12.3-1.6-6.93-1.48c-1.63-.3-3.13-1.26-4.87-1-1.72-1.18-3.8-1.5-5.65-2.43-2.77-1.38-5.48-2.77-7.8-4.9-3.36-3.06-6.3-6.42-8.5-10.4l-.93-1.86c-1.5-4.2-3.04-8.38-3.64-12.82l-1.15-9.22c-.1-7.5-.08-14.95 3.25-21.92l2.38-4.2 4.52-5.5c.6-.68.6-1.27.33-2.03-1.33-3.6-1.66-7.4-2-11.17.14-4.96.62-9.88 2.13-14.64 1.54-4.86 2.56-5.33 7.76-4.3 3.36.67 6.47 2 9.64 3.2 5.16 2.7 10.26 5.47 15.12 8.7.45.3.88.58 1.5.4l5.46-1.5 8.03-1.27c4.77-.78 9.6-.65 14.4-1.08 7.5.3 15 .76 22.4 2.2 2.02.5 4.06.98 6.06 1.57.74.22 1.3.08 1.88-.32 4.5-3.1 9.3-5.7 14.14-8.24l2.05-.86c4.2-1.67 8.4-3.45 13.1-2.98 1.18.12 1.7.55 2.12 1.7 2.13 5.64 2.95 11.5 3.1 17.47-.3 2.48-.06 5.22-1.04 7.4-1.9 4.2-.24 6.98 2.68 9.62.1.1.2.16.32.24l3.54 5.23c1.04 2.1 1.97 4.27 2.67 6.53 1.6 5.2 1.25 10.52 1.27 15.83-.4 7.4-1.83 14.6-4.65 21.5l-2.77 5.03c-3.4 4.72-7.53 8.63-12.73 11.35-3.12 1.64-6.44 2.76-9.7 4.03l-10.57 2.2-12.35 1.6c2.73 2.67 4.6 5.6 5.8 8.96 1.4 3.95 1.8 8.05 2.06 12.18l-.04 22.42-.17 15.8c.1 5 3.7 7.44 8.47 5.9 2.3-.74 4.53-1.74 6.8-2.62 8.1-3.1 15.53-7.36 22.42-12.6 2.98-1.84 5.64-4.07 8.15-6.5 5.44-4.4 10.18-9.44 14.28-15.1 2.06-2.24 3.92-4.63 5.4-7.3 4.83-6.95 8.64-14.42 11.52-22.38 2.54-6.4 4.7-12.92 5.62-19.8l.23-.66.1-.8c.4-.38.42-.82.37-1.27zm-168.1 41.03c-.1-1.9-1.63-3.42-2.86-3.35-.98.06-1.46.6-1.4 1.6.08 1.23 1.74 2.75 2.94 2.64.86-.1 1.33-.6 1.32-.9zm6.3 5.24c.95-.05 1.94-.3 1.95-1.35 0-1.46-1.14-2.03-2.46-2.13-1.08-.1-2.22.18-2.25 1.44-.03 1.74 1.6 1.67 2.76 2.04zm9.08-1.88c-1.16.05-2.5.05-2.5 1.64 0 1.4 1.14 1.68 2.3 1.62 1.16-.06 2.52-.14 2.52-1.67.01-1.38-1.13-1.67-2.33-1.6zm8.3 2.32c1.17-.23 2.6-.33 2.77-1.82.13-1.2-.9-1.7-2.07-1.66-1.35.03-2.47.5-2.56 2-.07 1.1.95 1.3 1.86 1.48zm-31.08-11.43c.87-.1 1.34-.6 1.3-1.46-.08-1.42-.83-2.46-2.24-2.7-.96-.16-1.5.57-1.4 1.5.14 1.38.88 2.35 2.35 2.64zm-5.62-10.05c-.82.1-1.37.4-1.22 1.3.2 1.18.88 2 2.1 2.1.9.07 1.4-.56 1.27-1.4-.2-1.2-1.03-1.82-2.16-1.97zm-2.8-2.52c-.22-1-.95-1.4-1.88-1.5-.56-.05-1.2.12-1.17.8.04 1.05.87 1.48 1.76 1.68.7.15 1.13-.25 1.3-1z"></path></svg></a></div><p class="mt-8 text-base text-gray-400 md:mt-0 md:order-1">© 2018-<!-- -->2024<!-- --> Crunchy Data Solutions, Inc.</p></div></div></footer></div><div id="cookiesAlert" style="z-index:2000" class="fixed bottom-0 left-0 w-full flex justify-between items-center bg-gradient text-white invert-color py-2 px-4" role="alert"><p class="body">This site uses cookies for usage analytics to improve our service. By continuing to browse this site, you agree to this use. See our <a href="/privacy">privacy policy</a> to learn more.</p><form method="post" action="/?redirectTo=https%3A%2F%2Fwww.crunchydata.com%2Fpostgres-hosting-checklist"><input type="hidden" name="acknowledged" value="true"/><button type="submit" class="p-1 hover:bg-white hover:bg-opacity-10 rounded" aria-label="Close"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true" class="w-5 h-5"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path></svg></button></form></div><script>((STORAGE_KEY, restoreKey) => { if (!window.history.state || !window.history.state.key) { let key = Math.random().toString(32).slice(2); window.history.replaceState({ key }, ""); } try { let positions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || "{}"); let storedY = positions[restoreKey || window.history.state.key]; if (typeof storedY === "number") { window.scrollTo(0, storedY); } } catch (error) { console.error(error); sessionStorage.removeItem(STORAGE_KEY); } })("positions", null)</script><script src="https://link.crunchydata.com/cd.js"></script><script type="text/javascript" id="hs-script-loader" async="" defer="" src="https://js.hs-scripts.com/2283855.js"></script><script async="" src="https://www.googletagmanager.com/gtag/js?id=UA-92590099-1"></script><script id="gtag-init"> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-92590099-1', { page_path: window.location.pathname }); </script><script>window.ENV = {"SENTRY_DSN":"https://559dc1e9c3fb4e0c975085672c7cab7d@o433451.ingest.sentry.io/6653378"}</script><link rel="modulepreload" href="/build/entry.client-DNLNFP27.js"/><link rel="modulepreload" href="/build/_shared/chunk-TCLGSVZV.js"/><link rel="modulepreload" href="/build/_shared/chunk-SCPVB2C3.js"/><link rel="modulepreload" href="/build/_shared/chunk-R5E7U4V6.js"/><link rel="modulepreload" href="/build/_shared/chunk-CKGZT7DU.js"/><link rel="modulepreload" href="/build/_shared/chunk-E5ZSF32D.js"/><link rel="modulepreload" href="/build/_shared/chunk-Q6E7ROHF.js"/><link rel="modulepreload" href="/build/_shared/chunk-SQO6Y7LN.js"/><link rel="modulepreload" href="/build/_shared/chunk-HDHVBSWO.js"/><link rel="modulepreload" href="/build/_shared/chunk-ASHQKMRQ.js"/><link rel="modulepreload" href="/build/_shared/chunk-DRSE3CTB.js"/><link rel="modulepreload" href="/build/_shared/chunk-IV5M4NBL.js"/><link rel="modulepreload" href="/build/_shared/chunk-54PMGQZL.js"/><link rel="modulepreload" href="/build/_shared/chunk-S3UTQVRD.js"/><link rel="modulepreload" href="/build/_shared/chunk-LSEESZC2.js"/><link rel="modulepreload" href="/build/_shared/chunk-WV5TGDCL.js"/><link rel="modulepreload" href="/build/_shared/chunk-VBCR3HLH.js"/><link rel="modulepreload" href="/build/_shared/chunk-5LDDUBXY.js"/><link rel="modulepreload" href="/build/root-I6DSSYGF.js"/><link rel="modulepreload" href="/build/_shared/chunk-74KVKBNK.js"/><link rel="modulepreload" href="/build/_shared/chunk-I2ET5AXY.js"/><link rel="modulepreload" href="/build/routes/postgres-hosting-checklist-MVM6IGHN.js"/><script>window.__remixContext = {"url":"/postgres-hosting-checklist","state":{"loaderData":{"root":{"domain":"https://www.crunchydata.com","canonicalUrl":"https://www.crunchydata.com/postgres-hosting-checklist","expectedUrl":"https://www.crunchydata.com/postgres-hosting-checklist","anonId":"bnfkgjsxlgmuzfjphzmmyoqvxlwlxpecldrxe","csrf":"2d8739be0eab615b8af765d777837dcea0081f16a574bf7bf98b92829122388ace1d81e5c7ca5346774e2d761d5138b59f579869797d013c069a5b52e1ce2b20a41c58b65aab7b5af7a10a4d4b816b035876db4a7c0ed84ae9c6759e88236628bebf9103","acknowledged":false,"loadScripts":true,"ENV":{"SENTRY_DSN":"https://559dc1e9c3fb4e0c975085672c7cab7d@o433451.ingest.sentry.io/6653378"},"sentryTrace":"018390b5b5c748fcbad33d7f0b92b860-bba0ed75d19074ab-0","sentryBaggage":"sentry-environment=production,sentry-public_key=559dc1e9c3fb4e0c975085672c7cab7d,sentry-trace_id=018390b5b5c748fcbad33d7f0b92b860,sentry-sample_rate=0.05,sentry-transaction=routes%2Fpostgres-hosting-checklist,sentry-sampled=false","remixVersion":1},"routes/postgres-hosting-checklist":null},"actionData":null,"errors":null},"future":{"v2_dev":false,"unstable_postcss":false,"unstable_tailwind":false,"v2_errorBoundary":false,"v2_headers":false,"v2_meta":true,"v2_normalizeFormMethod":false,"v2_routeConvention":false}};</script><script type="module" async="">import "/build/manifest-0B2CF74F.js"; import * as route0 from "/build/root-I6DSSYGF.js"; import * as route1 from "/build/routes/postgres-hosting-checklist-MVM6IGHN.js"; window.__remixRouteModules = {"root":route0,"routes/postgres-hosting-checklist":route1}; import("/build/entry.client-DNLNFP27.js");</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10