<!doctype html>
<html lang="en-US" class="no-js h-full " data-menu-state="off" data-motion="off">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="csrf-token" content="JD93AWcrNjI4UHItAAJ1MB8bJ1l2FlYOgPCoSrAJne5z_e0HRSOh1A3V">

    <title data-suffix="">Fly.io | Computers for agents</title>

    <script type="application/ld+json">
  {"@context":"https://schema.org","@id":"https://fly.io/#organization","@type":"Organization","address":{"@type":"PostalAddress","addressCountry":"US","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94114","streetAddress":"2261 Market Street #4990"},"contactPoint":{"@type":"ContactPoint","availableLanguage":["English"],"contactType":"customer support","email":"support@fly.io","url":"https://fly.io/support/"},"description":"Fly.io is a global public cloud for running full-stack and AI applications. Customer workloads on Fly.io are hardware-isolated for security, and can scale horizontally and vertically.","foundingDate":"2017","legalName":"Fly.io, Inc.","logo":"https://fly.io/phx/images/fly-balloon-icon-417a0f1be37234f7d3aca46fb6ebbe08.svg?vsn=d","name":"Fly.io","sameAs":["https://www.wikidata.org/wiki/Q133943318","https://github.com/superfly","https://www.linkedin.com/company/flydotio","https://x.com/flydotio","https://twitter.com/flydotio","https://bsky.app/profile/fly.io","https://hachyderm.io/@flydotio","https://www.youtube.com/@flydotio","https://community.fly.io/"],"url":"https://fly.io/"}
</script><script type="application/ld+json">
  {"@context":"https://schema.org","@id":"https://fly.io/#website","@type":"WebSite","name":"Fly.io","publisher":{"@id":"https://fly.io/#organization"},"url":"https://fly.io/"}
</script><script type="application/ld+json">
  {"@context":"https://schema.org","@id":"https://fly.io/#software-application","@type":"SoftwareApplication","applicationCategory":"DeveloperApplication","description":"Fly.io is a global public cloud for running full-stack and AI applications. Customer workloads on Fly.io are hardware-isolated for security, and can scale horizontally and vertically.","featureList":"Machines, Sprites, Managed Postgres, Private Networking, Autoscaling, Zero Downtime Deploys, Granular Routing, Monitoring","isPartOf":{"@id":"https://fly.io/#website"},"name":"Fly.io","operatingSystem":"Web","provider":{"@id":"https://fly.io/#organization"},"url":"https://fly.io/"}
</script><script type="application/ld+json">
  {"@context":"https://schema.org","@id":"https://fly.io/#service","@type":"Service","areaServed":"Worldwide","description":"Fly.io is a global public cloud for running full-stack and AI applications. Customer workloads on Fly.io are hardware-isolated for security, and can scale horizontally and vertically.","hasOfferCatalog":{"@type":"OfferCatalog","itemListElement":[{"@type":"Offer","itemOffered":{"@id":"https://fly.io/machines/#service","@type":"Service","name":"Fly Machines"}},{"@type":"Offer","itemOffered":{"@id":"https://fly.io/sprites/#service","@type":"Service","name":"Sprites"}},{"@type":"Offer","itemOffered":{"@id":"https://fly.io/mpg/#service","@type":"Service","name":"Managed Postgres"}}],"name":"Fly.io products"},"name":"Fly.io","provider":{"@id":"https://fly.io/#organization"},"serviceType":"Public cloud platform","url":"https://fly.io/"}
</script><script type="application/ld+json">
  {"@context":"https://schema.org","@id":"https://fly.io/machines/#service","@type":"Service","areaServed":"Worldwide","description":"Lightweight, fast-booting virtual machines for running any code.","name":"Fly Machines","provider":{"@id":"https://fly.io/#organization"},"serviceType":"Cloud compute","url":"https://fly.io/machines/"}
</script><script type="application/ld+json">
  {"@context":"https://schema.org","@id":"https://fly.io/sprites/#service","@type":"Service","areaServed":"Worldwide","description":"Full Linux computers designed for agents instead of people. As persistent or disposable as you want, with full environment checkpointing and restore.","name":"Sprites","provider":{"@id":"https://fly.io/#organization"},"serviceType":"Agent sandboxes","url":"https://fly.io/sprites/"}
</script><script type="application/ld+json">
  {"@context":"https://schema.org","@id":"https://fly.io/mpg/#service","@type":"Service","areaServed":"Worldwide","description":"Fully-managed production PostgreSQL with automatic backups, high availability with automatic failover, connection pooling and encryption at rest and in transit.","name":"Managed Postgres","provider":{"@id":"https://fly.io/#organization"},"serviceType":"Managed database","url":"https://fly.io/mpg/"}
</script>

    <meta name="description" content="Sandboxes aren&#39;t enough. Give your agent a real computer and get back to building.">

    <meta property="og:type" content="website">
    <meta property="og:site_name" content="Fly.io">
    <meta property="og:locale" content="en_US">
    <meta property="og:url" content="https://fly.io/">
    <meta property="og:title" content="Fly.io | Computers for agents">
    <meta property="og:description" content="Sandboxes aren&#39;t enough. Give your agent a real computer and get back to building.">

    <meta property="og:image" content="https://fly.io/phx/images/og/home-3f6c47b1e214994f1e91183548f93113.jpg?vsn=d">
    <meta property="og:image:width" content="1200">
    <meta property="og:image:height" content="630">
    <meta property="og:image:type" content="image/jpeg">
    <meta property="og:image:alt" content="Computers for agents, over winged computer towers flying through a pastel sky, with a Sign up button">

    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:site" content="@flydotio">
    <meta name="twitter:title" content="Fly.io | Computers for agents">
    <meta name="twitter:description" content="Sandboxes aren&#39;t enough. Give your agent a real computer and get back to building.">
    <meta name="twitter:image" content="https://fly.io/phx/images/og/home-3f6c47b1e214994f1e91183548f93113.jpg?vsn=d">
    <meta name="twitter:image:alt" content="Computers for agents, over winged computer towers flying through a pastel sky, with a Sign up button">

    <link rel="canonical" href="https://fly.io/">

    <link rel="alternate" type="text/markdown" href="https://fly.io/index.md">

    <meta content="origin" name="referrer">
    <meta content="True" name="HandheldFriendly">
    <meta content="width=device-width, initial-scale=1.0" name="viewport">
    <script defer data-domain="fly.io" src="/js/events.js">
    </script>

    <link href="/phx/ui/images/favicon/favicon-595d1312b35dfe32838befdf8505515e.ico?vsn=d" rel="shortcut icon" type="image/x-icon">
<link href="/phx/ui/images/favicon/apple-touch-icon-3e4c9ce127b5cd6f5516638d4bbf1dd5.png?vsn=d" rel="apple-touch-icon" sizes="180x180">
<link href="/phx/ui/images/favicon/favicon-32x32-803ad2058b86df3f8a9f8af1505a59d2.png?vsn=d" rel="icon" sizes="32x32" type="image/png">
<link href="/phx/ui/images/favicon/favicon-16x16-6963a8113fc4dc87910c17c4279a9bd4.png?vsn=d" rel="icon" sizes="16x16" type="image/png">
<link href="/phx/ui/images/favicon/site-4ed2b515513825854b905e85931b4a55.webmanifest?vsn=d" rel="manifest">
<link href="/phx/ui/images/favicon/safari-pinned-tab-987c7fc8f545337872c691fbc736e9c4.svg?vsn=d" rel="mask-icon" color="#4d7cfe">
<meta content="#4d7cfe" name="msapplication-TileColor">
<meta content="#ffffff" name="theme-color">
    <style>
  html:not(.motion-on) * { 
    transition: none !important; 
    animation: none !important;
  }
</style>

<script>
  document.addEventListener("DOMContentLoaded", () => {
    document.documentElement.classList.add('motion-on')
  })
</script>
    <style>
  
  @font-face {
    font-family: 'Fricolage Grotesque';
    src: url("/phx/ui/fonts/fricolage-grotesque.var-c4e68eb9708a077874be07be1d9f2ab9.woff2?vsn=d") format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: block;
  }
  
  @font-face {
    font-family: 'Mackinac';
    src: url("/phx/ui/fonts/mackinac-medium-72452da8f9470257c609f26a1349f0d2.woff2?vsn=d") format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: block;
  }
  
  @font-face {
    font-family: 'Mackinac';
    src: url("/phx/ui/fonts/mackinac-medium-italic-adb66b2b22d7a691a214ab0e7971264f.woff2?vsn=d") format('woff2');
    font-weight: 500;
    font-style: italic;
    font-display: fallback;
  }
  
  @font-face {
    font-family: 'Mackinac';
    src: url("/phx/ui/fonts/mackinac-bold-6a92de456437e3636084b0b8203e4af6.woff2?vsn=d") format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: fallback;
  }
  
  @font-face {
    font-family: 'Mackinac';
    src: url("/phx/ui/fonts/mackinac-bold-italic-04208325eb2543e41f5d70c7e281309a.woff2?vsn=d") format('woff2');
    font-weight: 700;
    font-style: italic;
    font-display: fallback;
  }
  
  @font-face {
    font-family: 'Fragment Mono';
    src: url("/phx/ui/fonts/fragment-mono-regular-e6a1881f8b2d71568ae7935d098c7590.woff2?vsn=d") format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: fallback;
  }
  
  @font-face {
    font-family: 'Fragment Mono';
    src: url("/phx/ui/fonts/fragment-mono-italic-a01dfaeb25824e4279013d8497b0d7f6.woff2?vsn=d") format('woff2');
    font-weight: 400;
    font-style: italic;
    font-display: fallback;
  }
  
</style>
<link rel="preload" href="/phx/ui/fonts/fricolage-grotesque.var-c4e68eb9708a077874be07be1d9f2ab9.woff2?vsn=d" as="font" type="font/woff2" crossorigin><link rel="preload" href="/phx/ui/fonts/mackinac-medium-72452da8f9470257c609f26a1349f0d2.woff2?vsn=d" as="font" type="font/woff2" crossorigin>

    <link phx-track-static rel="stylesheet" href="/phx/assets/app-688d54f2a3b5101e478421c58a7ac882.css?vsn=d">

    <script>
      document.documentElement.classList.remove("no-js")
    </script>
    <style>
      .no-js [data-src] {
        display: none;
      }
    </style>
    <script defer phx-track-static type="text/javascript" src="/phx/assets/js/app-87bced451613ef82c0c041ffd5983617.js?vsn=d">
    </script>
    <script defer phx-track-static type="text/javascript" src="/phx/assets/js/webmcp-b24f6115bfbb3751e7cc9d89d7e3139a.js?vsn=d">
</script>
    

    <link rel="me" href="https://hachyderm.io/@flydotio">

    <script id="google-tag-sdk" async src="https://analytics.fly.io/gtag/js?id=G-EX6DMZ1DZV">
</script>
<script id="google-tag-trigger">
  const tagId = 'G-EX6DMZ1DZV'

  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  
  gtag('config', tagId, {
    'transport_url': 'https://analytics.fly.io',
    'first_party_collection': true
  });

  // client_id / session_id reach the server via the _ga / _ga_<id> cookies
  // gtag writes (FlyWeb.Plugs.GoogleAnalyticsCookies) — no JS handoff needed.
  // Conversions are never sent from here: "User Signed Up" goes server-side
  // through the sGTM container (FlyWeb.Sgtm) with this visitor's cookies,
  // so it lands on the same GA4 user and session as these page views.
</script>
    <script type="application/json" id="posthog-config">
  {"api_key":"phc_nuaUijb3iLWut9Kbr56bSHSP4MYdeb8CFd9BgPm3LAVY","eu_scope":false,"api_host":"https://posthog.fly.io"}
</script>
<script defer type="text/javascript" src="/phx/assets/js/posthog-7b1419414106236dca312c579aaf3d4a.js?vsn=d">
</script>
  </head>

  <body class="my-app-sandbox w-full min-h-full">
    
    <header class="navbar sticky top-0 z-[500] bg-white px-4 sm:px-6 lg:px-20 flex items-center h-14 sm:h-24 max-sm:border-b max-sm:border-[#e6e0fe] text-navy font-medium text-sm transition-[transform,box-shadow] duration-300 ease-out motion-reduce:transition-none data-[nav-hidden]:-translate-y-full data-[scrolled]:shadow-[0_1px_0_rgba(36,23,91,0.05),0_10px_28px_-16px_rgba(36,23,91,0.35)]" data-menu-container data-nav-autohide>
  <nav aria-label="Logo menu" class="relative z-[60] flex">
    <a href="/" aria-label="Fly.io home" class="block h-6 sm:h-10">
      
<svg aria-labelledby="title-GN56OxORrbvhlENidescription-GN56OxOR3wfhlENy" class="" role="img" style="pointer-events: none; width: auto; height: 100%;" fill-rule="evenodd" viewBox="0 0 259 84" aria-hidden="true">
  <title id="title-GN56OxOSCkXhlEOC">
    
      
    
  </title>
  <desc id="description-GN56OxOSF2_hlEOS">
    
      
    
  </desc>
  
  <g buffered-rendering="static">

      <path d="M57.413 10.134h9.454c8.409 0 15.236 6.827 15.236 15.236v33.243c0 8.409-6.827 15.236-15.236 15.236h-.745c-4.328-.677-6.205-1.975-7.655-3.072l-12.02-9.883a1.692 1.692 0 0 0-2.128 0l-3.905 3.211-10.998-9.043a1.688 1.688 0 0 0-2.127 0L12.01 68.503c-3.075 2.501-5.109 2.039-6.428 1.894C2.175 67.601 0 63.359 0 58.613V25.37c0-8.409 6.827-15.236 15.237-15.236h9.433l-.017.038-.318.927-.099.318-.428 1.899-.059.333-.188 1.902-.025.522-.004.183.018.872.043.511.106.8.135.72.16.663.208.718.54 1.52.178.456.94 1.986.332.61 1.087 1.866.416.673 1.517 2.234.219.296 1.974 2.569.638.791 2.254 2.635.463.507 1.858 1.999.736.762 1.216 1.208-.244.204-.152.137c-.413.385-.805.794-1.172 1.224a10.42 10.42 0 0 0-.504.644 8.319 8.319 0 0 0-.651 1.064 6.234 6.234 0 0 0-.261.591 5.47 5.47 0 0 0-.353 1.606l-.007.475a5.64 5.64 0 0 0 .403 1.953 5.44 5.44 0 0 0 1.086 1.703c.338.36.723.674 1.145.932.359.22.742.401 1.14.539a6.39 6.39 0 0 0 2.692.306h.005a6.072 6.072 0 0 0 2.22-.659c.298-.158.582-.341.848-.549a5.438 5.438 0 0 0 1.71-2.274c.28-.699.417-1.446.405-2.198l-.022-.393a5.535 5.535 0 0 0-.368-1.513 6.284 6.284 0 0 0-.285-.618 8.49 8.49 0 0 0-.67-1.061 11.022 11.022 0 0 0-.354-.453 14.594 14.594 0 0 0-1.308-1.37l-.329-.28.557-.55 2.394-2.5.828-.909 1.287-1.448.837-.979 1.194-1.454.808-1.016 1.187-1.587.599-.821.85-1.271.708-1.083 1.334-2.323.763-1.524.022-.047.584-1.414a.531.531 0 0 0 .02-.056l.629-1.962.066-.286.273-1.562.053-.423.016-.259.019-.978-.005-.182-.05-.876-.062-.68-.31-1.961c-.005-.026-.01-.052-.018-.078l-.398-1.45-.137-.403-.179-.446Zm4.494 41.455a3.662 3.662 0 0 0-3.61 3.61 3.663 3.663 0 0 0 3.61 3.609 3.665 3.665 0 0 0 3.611-3.609 3.663 3.663 0 0 0-3.611-3.61Z" fill="url(#g6j_Radial1)"></path>

    <path d="M35.639 72.544l-.637.535a3.332 3.332 0 01-2.09.762H15.235a15.176 15.176 0 01-9.654-3.451c1.319.145 3.353.607 6.428-1.894l15.277-13.44a1.693 1.693 0 012.127 0l10.997 9.042 3.904-3.21c.619-.5 1.51-.5 2.128 0l12.019 9.882c1.45 1.097 3.327 2.394 7.654 3.071H58.12a3.394 3.394 0 01-1.963-.654l-.14-.108-.593-.493a1.247 1.247 0 00-.158-.159c-.672-.563-9.187-7.617-9.187-7.617a1 1 0 00-1.281.002s.021.026-9.038 7.615a1.12 1.12 0 00-.121.117zm26.262-20.96a3.678 3.678 0 00-3.61 3.609 3.68 3.68 0 003.61 3.609 3.68 3.68 0 003.61-3.609 3.678 3.678 0 00-3.61-3.609zM38.566 40.648L37.35 39.44l-.736-.762-1.858-1.999-.463-.507-2.253-2.634-.638-.791-1.974-2.569-.219-.296-1.517-2.234-.416-.673-1.087-1.866-.332-.61-.94-1.985-.178-.456-.539-1.52-.208-.718-.16-.663-.135-.72-.106-.8-.043-.511-.018-.872.004-.183.025-.522.188-1.901.059-.333.428-1.899.098-.318.318-.927.102-.24.506-1.112.351-.662.489-.806.487-.718.347-.456.4-.482.44-.484.377-.378.918-.808.671-.549c.016-.014.033-.026.05-.038l.794-.537.631-.402 1.198-.631c.018-.011.039-.02.058-.029l1.698-.705.157-.059 1.51-.442.638-.143.862-.173.572-.087.877-.109.598-.053 1.187-.063.465-.005.881.018.229.013 1.276.106 1.687.238.195.041 1.668.415.49.146.544.188.663.251.524.222.77.363.485.249.872.512.325.2 1.189.868.341.296.828.754.041.041.703.754.242.273.825 1.096.168.262.655 1.106.197.379.369.825.386.963.137.403.398 1.45a.89.89 0 01.018.078l.31 1.961.062.679.05.876.005.182-.019.978-.016.259-.053.423-.273 1.562-.066.286-.629 1.962a.626.626 0 01-.02.056l-.584 1.414-.022.047-.763 1.523-1.334 2.323-.708 1.083-.849 1.271-.599.821-1.187 1.587-.808 1.016-1.194 1.453-.837.979-1.287 1.448-.828.909-2.394 2.5-.556.55.328.28c.465.428.902.885 1.308 1.37.122.148.24.299.354.453.249.336.473.691.67 1.06.106.2.201.407.285.618.191.484.32.996.368 1.513l.022.393c.012.752-.125 1.5-.405 2.198a5.438 5.438 0 01-1.71 2.274c-.266.208-.55.391-.848.549a6.08 6.08 0 01-2.219.659h-.005a6.403 6.403 0 01-2.692-.306 5.882 5.882 0 01-1.14-.539 5.523 5.523 0 01-1.145-.932 5.458 5.458 0 01-1.086-1.703 5.662 5.662 0 01-.403-1.953l.007-.475a5.47 5.47 0 01.353-1.606c.077-.202.164-.399.261-.591.19-.37.408-.725.651-1.063.159-.221.328-.436.504-.644.367-.43.759-.839 1.172-1.224l.152-.137.244-.204z" class="fill-current"></path>
    <path d="M35.002 73.079l9.796-8.267a1 1 0 011.281-.002l9.938 8.269c.604.492 1.36.761 2.139.762h-25.28c.776 0 1.527-.269 2.126-.762zM41.1 43.568l.096.028c.031.015.057.036.085.055l.08.071c.198.182.39.373.575.569.13.139.257.282.379.43.155.187.3.383.432.587.057.09.11.181.16.276.043.082.082.167.116.253.06.15.105.308.119.469l-.003.302a1.726 1.726 0 01-.817 1.343 2.333 2.333 0 01-.994.327l-.373.011-.315-.028a2.398 2.398 0 01-.433-.105 2.07 2.07 0 01-.41-.192l-.246-.18a1.685 1.685 0 01-.56-.96 2.418 2.418 0 01-.029-.19l-.009-.288c.005-.078.017-.155.034-.232.043-.168.105-.331.183-.486.101-.194.216-.381.344-.559.213-.288.444-.562.691-.821.159-.168.322-.331.492-.488l.121-.109c.084-.055.085-.055.181-.083h.101zM40.481 3.42l.039-.003v33.665l-.084-.155a94.101 94.101 0 01-3.093-6.267 67.257 67.257 0 01-2.099-5.255 41.665 41.665 0 01-1.265-4.326c-.265-1.163-.469-2.343-.553-3.535a16.923 16.923 0 01-.029-1.528c.008-.444.026-.887.054-1.33.044-.696.115-1.391.217-2.081.081-.543.181-1.084.304-1.619.098-.425.212-.847.342-1.262.188-.6.413-1.186.675-1.758.096-.206.199-.411.307-.612.65-1.204 1.532-2.313 2.687-3.054a5.609 5.609 0 012.498-.88zm4.365.085l2.265.646c1.049.387 2.059.891 2.987 1.521a11.984 11.984 0 013.212 3.204c.502.748.918 1.555 1.243 2.398.471 1.247.763 2.554.866 3.882.03.348.047.697.054 1.046.008.324.006.649-.02.973-.064.725-.2 1.442-.407 2.14a17.03 17.03 0 01-.587 1.684c-.28.685-.591 1.357-.932 2.013-.754 1.457-1.623 2.852-2.553 4.201a65.451 65.451 0 01-3.683 4.806 91.02 91.02 0 01-4.417 4.896 93.66 93.66 0 002.907-5.949c.5-1.124.971-2.26 1.414-3.407.487-1.26.927-2.537 1.317-3.83.29-.969.546-1.948.757-2.938.181-.849.323-1.707.411-2.57.074-.72.101-1.444.083-2.166a30.867 30.867 0 00-.049-1.325c-.106-1.775-.376-3.545-.894-5.248a15.341 15.341 0 00-.714-1.892c-.663-1.444-1.588-2.793-2.84-3.778l-.42-.307z" fill="white"></path>

      <path d="M179.213 64.297l-10.751-23.015c-.898-1.917-1.433-2.618-2.331-3.431l-.874-.788c-.697-.676-1.155-1.302-1.155-2.045 0-1.064.843-1.96 2.378-1.96h9.334c1.465 0 2.378.762 2.378 1.9 0 .635-.292 1.111-.661 1.578-.438.555-1.008 1.096-1.008 2.082 0 .618.18 1.234.527 2.021l6.416 15.025 5.755-14.647c.354-.974.596-1.832.596-2.519 0-1.069-.581-1.505-1.029-1.983-.39-.415-.702-.854-.702-1.557 0-1.149.935-1.9 2.193-1.9h5.748c1.612 0 2.378.834 2.378 1.9 0 .682-.393 1.314-1.166 1.996l-.813.668c-1.132.925-1.656 2.263-2.251 3.647l-8.716 20.998c-1.03 2.455-2.563 5.863-4.905 8.659-2.379 2.84-5.587 5.048-9.932 5.048-3.638 0-5.84-1.737-5.84-4.24 0-2.293 1.696-4.12 3.924-4.12 1.22 0 1.855.576 2.499 1.169.532.489 1.072.991 2.137.991.988 0 1.908-.418 2.742-1.093 1.274-1.03 2.341-2.652 3.129-4.384zm63.175-.082c4.839 0 8.804-1.658 11.897-4.967 3.09-3.304 4.636-7.281 4.636-11.931 0-4.539-1.469-8.268-4.396-11.191-2.926-2.921-6.723-4.388-11.396-4.388-4.92 0-8.944 1.597-12.077 4.78-3.135 3.186-4.703 7.045-4.703 11.578 0 4.493 1.496 8.301 4.483 11.425 2.99 3.126 6.84 4.694 11.556 4.694zm-40.921-.36c2.798 0 4.788-1.884 4.788-4.6 0-2.652-2.055-4.54-4.788-4.54-2.863 0-4.912 1.891-4.912 4.54 0 2.713 2.05 4.6 4.912 4.6zm9.964-4.305l.681-.72c.81-.787 1.071-1.582 1.071-3.774V42.097c0-1.895-.258-2.741-1.062-3.465l-.801-.718c-.785-.693-1.043-1.124-1.043-1.816 0-.984.763-1.791 1.99-2.071l5.44-1.32c.52-.126 1.107-.249 1.562-.249.626 0 1.138.206 1.497.563.36.358.572.873.572 1.517v20.518c0 2.069.251 3.031 1.115 3.758a.359.359 0 01.039.039l.608.708c.764.743 1.081 1.236 1.081 1.914 0 1.209-.912 1.9-2.377 1.9h-9.211c-1.396 0-2.316-.687-2.316-1.9 0-.681.317-1.178 1.154-1.925zm-61.567.001l.681-.721c.811-.787 1.071-1.582 1.071-3.774V27.999c0-1.835-.194-2.736-1.053-3.459l-.822-.796c-.709-.689-.968-1.116-.968-1.805 0-.985.767-1.789 1.927-2.07l5.378-1.32c.521-.126 1.107-.249 1.563-.249.621 0 1.147.187 1.522.542.376.356.608.885.608 1.598v34.616c0 2.074.258 2.981 1.125 3.766l.694.734c.769.748 1.025 1.238 1.025 1.919 0 .502-.153.907-.426 1.216-.385.435-1.03.684-1.89.684h-9.21c-.86 0-1.505-.249-1.891-.684-.272-.309-.425-.714-.425-1.216 0-.682.253-1.176 1.091-1.924zm-25.079-13.934v9.319c0 1.404.278 2.701 1.435 3.768l.748.726c.838.813 1.093 1.3 1.093 2.045 0 1.138-.913 1.9-2.378 1.9h-10.385c-1.465 0-2.377-.762-2.377-1.9 0-.884.259-1.303 1.097-2.049l.745-.724c.868-.786 1.434-1.857 1.434-3.766V30.039c0-1.517-.336-2.758-1.435-3.769l-.749-.726c-.77-.747-1.092-1.238-1.092-1.985 0-1.206.915-1.96 2.377-1.96h27.817c1.063 0 1.997.237 2.594.822.415.407.68.981.71 1.778l.433 6.421c.043.803-.194 1.472-.657 1.885-.319.284-.748.454-1.288.454-.681 0-1.203-.257-1.669-.701-.419-.399-.792-.959-1.213-1.618-1.016-1.624-1.489-2.208-2.572-2.967-1.507-1.112-3.803-1.494-8.145-1.494-2.505 0-4.086.109-5.082.366-.644.166-1.016.382-1.215.699-.204.324-.226.734-.226 1.235v12.618h6.523c1.561 0 2.659-.282 3.931-2.021l.007-.01c.51-.649.879-1.127 1.23-1.444.409-.37.802-.545 1.323-.545a1.9 1.9 0 011.883 1.901v8.699c0 1.165-.908 1.96-1.883 1.96-.485 0-.879-.173-1.289-.535-.353-.31-.723-.775-1.203-1.396-1.392-1.802-2.375-2.089-3.999-2.089h-6.523zm110.214-.22c0-3.121.68-5.364 2.089-6.713 1.392-1.332 2.888-2.006 4.496-2.006 2.212 0 4.205 1.238 6.003 3.672 1.837 2.489 2.746 5.853 2.746 10.086 0 3.124-.682 5.388-2.093 6.776-1.391 1.369-2.886 2.063-4.493 2.063-2.212 0-4.204-1.248-6.002-3.701-1.838-2.51-2.746-5.904-2.746-10.177zm-18.202-16.878c2.804 0 4.788-1.578 4.788-4.3 0-2.658-1.982-4.24-4.788-4.24-2.871 0-4.851 1.583-4.851 4.24 0 2.656 1.981 4.3 4.851 4.3z" class="fill-current"></path>

  </g>
  <defs>
    <radialGradient id="g6j_Radial1" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(43.593 41.714) scale(59.4764)">
      <stop offset="0" stop-color="#ba7bf0"></stop>
      <stop offset=".45" stop-color="#996bec"></stop>
      <stop offset="1" stop-color="#5046e4"></stop>
    </radialGradient>
  </defs>

</svg>
    </a>
  </nav>

  <button data-menu-toggle aria-expanded="false" class="ml-auto menu-toggle xl:hidden relative z-[60] flex-none flex items-center justify-center w-6 h-6 text-[#2e2e2e]">
    <span class="sr-only">Open main menu</span>
    <svg class="[[data-menu-state=on]_&]:hidden" width="22" height="18" viewBox="0 0 22 18" fill="none" aria-hidden="true">
      <path d="M1 1H21M1 9H21M1 17H21" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path>
    </svg>
    <svg class="hidden [[data-menu-state=on]_&]:block" width="18" height="18" viewBox="0 0 18 18" fill="none" aria-hidden="true">
      <path d="M1 1L17 17M1 17L17 1" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path>
    </svg>
  </button>

  <nav aria-label="Main menu" class="pointer-events-auto hidden lg:flex w-full items-center">

    <div class="hidden xl:flex items-center gap-2 ml-6 text-base font-medium text-[#686082]">
      <dl class="flex-none bubble-wrap hidden shrink-0 xl:flex group relative px-3 py-2.5 cursor-pointer">
        <dt class="flex items-center justify-items-center whitespace-nowrap transition-colors group-hover:text-violet-600 group-focus-within-text-violet-400">
          <span aria-hidden="true" class="absolute inset-x-1 h-px bg-gradient-to-r from-violet-500/0 from-10% via-violet-400 to-violet-500/0 to-90% transition duration-300 -bottom-0.5 opacity-0 scale-x-0 group-hover:opacity-100 group-hover:scale-x-100"></span>
          <span aria-hidden="true" class="overflow-hidden absolute inset-0 transition origin-bottom duration-300 opacity-0 scale-0 group-hover:opacity-100 group-hover:scale-100">
            <span class="absolute inset-x-4 -bottom-2 h-full bg-gradient-to-t from-violet-500/20 to-transparent blur rounded-t-full"></span>
          </span>
          Products
        </dt>
        <dd class="bubble-b tail text-sm text-navy flex w-96 rounded-2xl p-2">
          <div class="rounded-tl w-3 h-3 absolute top-0 left-1/2 z-[-1] -ml-2 rotate-45 bg-white -mt-1.5">
          </div>
          <div class="flex-1">
            <div class="px-3 py-2 text-xs font-semibold text-gray-500 uppercase tracking-wide">
              Products
            </div>
            <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors block" href="/machines/">
              Machines
            </a>
            <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors block" href="/sprites/">
              Sprites
            </a>
            <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors block" href="/mpg/">
              Managed Postgres
            </a>
          </div>
          <div class="flex-1">
            <div class="px-3 py-2 text-xs font-semibold text-gray-500 uppercase tracking-wide">
              Features
            </div>
            <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors block" href="/networking/">
              Private Networking
            </a>
            <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors block" href="/autoscaling/">
              Autoscaling
            </a>
            <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors block" href="/zero-downtime-deploys/">
              Zero Downtime Deploys
            </a>
            <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors block" href="/granular-routing/">
              Granular Routing
            </a>
            <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors block" href="/monitoring/">
              Monitoring
            </a>
          </div>
        </dd>
      </dl>
      <dl class="flex-none bubble-wrap hidden shrink-0 xl:flex group relative px-3 py-2.5 cursor-pointer">
        <dt class="flex items-center justify-items-center whitespace-nowrap transition-colors group-hover:text-violet-600 group-focus-within-text-violet-400">
          <span aria-hidden="true" class="absolute inset-x-1 h-px bg-gradient-to-r from-violet-500/0 from-10% via-violet-400 to-violet-500/0 to-90% transition duration-300 -bottom-0.5 opacity-0 scale-x-0 group-hover:opacity-100 group-hover:scale-x-100"></span>
          <span aria-hidden="true" class="overflow-hidden absolute inset-0 transition origin-bottom duration-300 opacity-0 scale-0 group-hover:opacity-100 group-hover:scale-100">
            <span class="absolute inset-x-4 -bottom-2 h-full bg-gradient-to-t from-violet-500/20 to-transparent blur rounded-t-full"></span>
          </span>
          Docs
        </dt>
        <dd class="bubble-b tail text-sm text-navy flex flex-col w-44 rounded-2xl p-2">
          <div class="rounded-tl w-3 h-3 absolute top-0 left-1/2 z-[-1] -ml-2 rotate-45 bg-white -mt-1.5">
          </div>
          <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors" href="https://docs.fly.io">
            Platform Docs
          </a>
          <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors" href="https://docs.fly.io/sprites">
            Sprites Docs
          </a>
        </dd>
      </dl>
      <a class="flex-none group relative block transition duration-300 px-3 py-2.5 hover:text-violet-600" href="/customer-stories">
        Customers
        <span class="absolute inset-x-1 h-px bg-gradient-to-r from-violet-500/0 from-10% via-violet-400 to-violet-500/0 to-90% transition duration-300 -bottom-0.5 opacity-0 scale-x-0 group-hover:opacity-100 group-hover:scale-x-100"></span>
        <span class="overflow-hidden absolute inset-0 transition origin-bottom duration-300 opacity-0 scale-0 group-hover:opacity-100 group-hover:scale-100">
          <span class="absolute inset-x-4 -bottom-2 h-full bg-gradient-to-t from-violet-500/20 to-transparent blur rounded-t-full"></span>
        </span>
      </a>
      <a class="flex-none group relative block transition duration-300 px-3 py-2.5 hover:text-violet-600" href="/pricing/">
        Pricing
        <span class="absolute inset-x-1 h-px bg-gradient-to-r from-violet-500/0 from-10% via-violet-400 to-violet-500/0 to-90% transition duration-300 -bottom-0.5 opacity-0 scale-x-0 group-hover:opacity-100 group-hover:scale-x-100"></span>
        <span class="overflow-hidden absolute inset-0 transition origin-bottom duration-300 opacity-0 scale-0 group-hover:opacity-100 group-hover:scale-100">
          <span class="absolute inset-x-4 -bottom-2 h-full bg-gradient-to-t from-violet-500/20 to-transparent blur rounded-t-full"></span>
        </span>
      </a>
      <dl class="flex-none bubble-wrap hidden shrink-0 xl:flex group relative px-3 py-2.5 cursor-pointer">
        <dt class="flex items-center justify-items-center whitespace-nowrap transition-colors group-hover:text-violet-600 group-focus-within-text-violet-400">
          <span aria-hidden="true" class="absolute inset-x-1 h-px bg-gradient-to-r from-violet-500/0 from-10% via-violet-400 to-violet-500/0 to-90% transition duration-300 -bottom-0.5 opacity-0 scale-x-0 group-hover:opacity-100 group-hover:scale-x-100"></span>
          <span aria-hidden="true" class="overflow-hidden absolute inset-0 transition origin-bottom duration-300 opacity-0 scale-0 group-hover:opacity-100 group-hover:scale-100">
            <span class="absolute inset-x-4 -bottom-2 h-full bg-gradient-to-t from-violet-500/20 to-transparent blur rounded-t-full"></span>
          </span>
          Articles
        </dt>
        <dd class="bubble-b tail text-sm text-navy flex flex-col w-44 rounded-2xl p-2">
          <div class="rounded-tl w-3 h-3 absolute top-0 left-1/2 z-[-1] -ml-2 rotate-45 bg-white -mt-1.5">
          </div>
          <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors" href="/blog/">
            Blog
          </a>
          <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors" href="/sprites-blog/">
            Sprites
          </a>
          <a class="relative whitespace-nowrap px-3 py-2.5 before:content-[''] before:absolute before:inset-0 before:z-[-1] before:scale-90 before:rounded-lg hocus:before:scale-100 hocus:before:bg-violet-100 before:transition-all hocus:text-violet-600 transition-colors" href="/infra-log/">
            Infra Log
          </a>
        </dd>
      </dl>
      <a class="flex-none group relative block transition duration-300 px-3 py-2.5 hover:text-violet-600" href="https://community.fly.io">
        Community
        <span class="absolute inset-x-1 h-px bg-gradient-to-r from-violet-500/0 from-10% via-violet-400 to-violet-500/0 to-90% transition duration-300 -bottom-0.5 opacity-0 scale-x-0 group-hover:opacity-100 group-hover:scale-x-100"></span>
        <span class="overflow-hidden absolute inset-0 transition origin-bottom duration-300 opacity-0 scale-0 group-hover:opacity-100 group-hover:scale-100">
          <span class="absolute inset-x-4 -bottom-2 h-full bg-gradient-to-t from-violet-500/20 to-transparent blur rounded-t-full"></span>
        </span>
      </a>
      <a class="flex-none group relative block transition duration-300 px-3 py-2.5 hover:text-violet-600" href="https://status.flyio.net">
        Status
        <span class="absolute inset-x-1 h-px bg-gradient-to-r from-violet-500/0 from-10% via-violet-400 to-violet-500/0 to-90% transition duration-300 -bottom-0.5 opacity-0 scale-x-0 group-hover:opacity-100 group-hover:scale-x-100"></span>
        <span class="overflow-hidden absolute inset-0 transition origin-bottom duration-300 opacity-0 scale-0 group-hover:opacity-100 group-hover:scale-100">
          <span class="absolute inset-x-4 -bottom-2 h-full bg-gradient-to-t from-violet-500/20 to-transparent blur rounded-t-full"></span>
        </span>
      </a>
    </div>

    <div class="ml-auto flex-none flex items-center gap-4">

        <a id="nav-sign-in-link" href="/app/sign-in" class="flex h-10 w-[120px] items-center justify-center rounded-lg border border-[#d4c4fd] bg-[#e6e0fe] text-sm text-[#7c3aed] transition-colors hover:bg-[#d4c4fd]">
          Log In
        </a>
        <a id="nav-sign-up-link" href="/app/sign-up" class="flex h-10 w-[120px] items-center justify-center rounded-lg bg-[#7c3aed] text-sm text-white transition-colors hover:bg-violet-700">
          Sign Up
        </a>

    </div>
  </nav>

  <nav data-menu aria-label="Main menu" class="xl:hidden fixed inset-x-0 top-14 sm:top-24 bottom-0 z-50 overflow-y-auto overscroll-contain bg-white invisible opacity-0 transition-[opacity,visibility] duration-200 motion-reduce:transition-none [[data-menu-state=on]_&]:visible [[data-menu-state=on]_&]:opacity-100">
    <div class="flex max-w-md flex-col gap-8 px-6 lg:px-20 py-12 text-[#2e2e2e]">
      <details name="mobile-nav" class="group">
        <summary class="flex cursor-pointer list-none items-center justify-between text-[20px] font-semibold leading-normal transition-colors group-open:text-[#7c3aed] [&::-webkit-details-marker]:hidden">
          Products
          <svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true">
            <path d="M1.334 8H14.667" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path>
            <path class="group-open:hidden" d="M8 1.333V14.667" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path>
          </svg>
        </summary>
        <div class="mt-4 flex flex-col gap-4 px-4 text-[18px] font-normal leading-[1.4]">
          <a href="/machines/" class="transition-colors hover:text-[#7c3aed]">
            Machines
          </a><a href="/sprites/" class="transition-colors hover:text-[#7c3aed]">
            Sprites
          </a><a href="/mpg/" class="transition-colors hover:text-[#7c3aed]">
            Managed Postgres
          </a>
        </div>
      </details><details name="mobile-nav" class="group">
        <summary class="flex cursor-pointer list-none items-center justify-between text-[20px] font-semibold leading-normal transition-colors group-open:text-[#7c3aed] [&::-webkit-details-marker]:hidden">
          Features
          <svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true">
            <path d="M1.334 8H14.667" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path>
            <path class="group-open:hidden" d="M8 1.333V14.667" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path>
          </svg>
        </summary>
        <div class="mt-4 flex flex-col gap-4 px-4 text-[18px] font-normal leading-[1.4]">
          <a href="/networking/" class="transition-colors hover:text-[#7c3aed]">
            Private Networking
          </a><a href="/autoscaling/" class="transition-colors hover:text-[#7c3aed]">
            Autoscaling
          </a><a href="/zero-downtime-deploys/" class="transition-colors hover:text-[#7c3aed]">
            Zero Downtime Deploys
          </a><a href="/granular-routing/" class="transition-colors hover:text-[#7c3aed]">
            Granular Routing
          </a><a href="/monitoring/" class="transition-colors hover:text-[#7c3aed]">
            Monitoring
          </a>
        </div>
      </details><details name="mobile-nav" class="group">
        <summary class="flex cursor-pointer list-none items-center justify-between text-[20px] font-semibold leading-normal transition-colors group-open:text-[#7c3aed] [&::-webkit-details-marker]:hidden">
          Articles
          <svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true">
            <path d="M1.334 8H14.667" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path>
            <path class="group-open:hidden" d="M8 1.333V14.667" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path>
          </svg>
        </summary>
        <div class="mt-4 flex flex-col gap-4 px-4 text-[18px] font-normal leading-[1.4]">
          <a href="/blog/" class="transition-colors hover:text-[#7c3aed]">
            Blog
          </a><a href="/sprites-blog/" class="transition-colors hover:text-[#7c3aed]">
            Sprites
          </a><a href="/infra-log/" class="transition-colors hover:text-[#7c3aed]">
            Infra Log
          </a>
        </div>
      </details><details name="mobile-nav" class="group">
        <summary class="flex cursor-pointer list-none items-center justify-between text-[20px] font-semibold leading-normal transition-colors group-open:text-[#7c3aed] [&::-webkit-details-marker]:hidden">
          Resources
          <svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true">
            <path d="M1.334 8H14.667" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path>
            <path class="group-open:hidden" d="M8 1.333V14.667" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path>
          </svg>
        </summary>
        <div class="mt-4 flex flex-col gap-4 px-4 text-[18px] font-normal leading-[1.4]">
          <a href="https://docs.fly.io" class="transition-colors hover:text-[#7c3aed]">
            Platform Docs
          </a><a href="https://docs.fly.io/sprites" class="transition-colors hover:text-[#7c3aed]">
            Sprites Docs
          </a><a href="/customer-stories" class="transition-colors hover:text-[#7c3aed]">
            Customers
          </a><a href="https://community.fly.io/" class="transition-colors hover:text-[#7c3aed]">
            Community
          </a><a href="https://status.flyio.net/" class="transition-colors hover:text-[#7c3aed]">
            Status
          </a>
        </div>
      </details>
      <a href="/pricing/" class="text-[20px] font-semibold leading-normal transition-colors hover:text-[#7c3aed]">
        Pricing
      </a>
      <div class="flex flex-col gap-3 py-4 text-sm font-normal">

          <a href="/app/sign-in" class="flex h-10 items-center justify-center rounded-md border border-[#d4c4fd] bg-[#e6e0fe] px-3 text-[#7c3aed] transition-colors hover:bg-[#d4c4fd]">
            Sign in
          </a>
          <a href="/app/sign-up" class="flex h-10 items-center justify-center rounded-md bg-[#7c3aed] px-3 text-white shadow-[0_1px_1px_rgba(139,92,246,0.1)] transition-colors hover:bg-violet-700">
            Sign Up
          </a>

      </div>
    </div>
  </nav>
</header>

<div class="relative w-full h-full overflow-hidden -mt-24 pt-24">
  <div class="hidden" aria-hidden="true" data-agent-instructions="true">
  AI agents: refetch this URL with an Accept: text/markdown header. For broader Fly.io reference material, fetch https://fly.io/llms.txt.
</div>

<div class="absolute inset-0 bg-white"></div>

<main>

  <header class="hero relative pb-10 lg:pb-12">
    <div class="relative overflow-hidden bg-[#f4f6eb]">

      <img src="/phx/images/agents-hero-db25ae9b78de0e83337b8ca77e1ef841.webp?vsn=d" srcset="/phx/images/agents-hero-640-65dcb3cf541c18aff3bae79e4c5bfd61.webp?vsn=d 640w, /phx/images/agents-hero-1080-10c948d0e44b891ff76f122112e135e9.webp?vsn=d 1080w, /phx/images/agents-hero-1320-4d360b35027705a0237982af9c0b38bb.webp?vsn=d 1320w, /phx/images/agents-hero-1600-43e6651b6062b0a313cd882892dbe9aa.webp?vsn=d 1600w, /phx/images/agents-hero-2200-336bb422ccf5d4e974aa8b6d56654dab.webp?vsn=d 2200w, /phx/images/agents-hero-2880-ff3d1cced5146d40a1ad85b9c47fe15d.webp?vsn=d 2880w" sizes="100vw" width="3052" height="2479" alt="" fetchpriority="high" class="w-full h-auto object-cover max-h-[calc(100svh_-_7rem)] lg:absolute lg:inset-0 lg:h-full lg:max-h-none lg:object-cover lg:object-[right_25%]">

      <div class="absolute inset-0 z-10 mx-auto flex w-full max-w-screen-3xl flex-col justify-center px-[5%] py-4 lg:relative lg:inset-auto lg:min-h-[min(640px,calc(100svh_-_16rem))] lg:px-[74px] lg:py-16 xl:min-h-[min(720px,calc(100svh_-_16rem))] 2xl:min-h-[min(800px,calc(100svh_-_16rem))] min-[1920px]:px-[100px]">


        <div class="max-w-[66%] lg:max-w-none">

          <h1 class="font-heading whitespace-nowrap text-[#2e2e2e] text-[clamp(1.625rem,8.9vw,3.75rem)]/[0.95] lg:text-6xl/[0.95] xl:text-[72px]/[0.95] min-[1920px]:text-[88px]/[0.95] !tracking-[-.02em]">
            Computers<br>for agents
          </h1>
          <p class="mt-[clamp(0.375rem,1.4vw,1rem)] max-w-[46ch] text-[#2e2e2e] text-[clamp(0.9375rem,3vw,1.125rem)]/[1.35] lg:text-xl/[1.35] min-[1920px]:text-2xl/[1.35]">
            Sandboxes aren't enough.<br class="hidden lg:block">
            Give your agent a real computer and get back to building.
          </p>

          <div class="mt-6 lg:mt-8 flex flex-wrap items-center gap-3">



            <a href="/app/sign-up" id="hero-start-with-sprites" class="gap-2 btn-xl btn-purple rounded-lg bg-none">
  

    
              Start for Free
            
  

</a>





            <button type="button" id="hero-agent-prompt" data-copy-text="Set me up on Fly.io: https://fly.io/agent-ready.md" data-copy-label="Copy a prompt to onboard your agent" aria-label="Copy a prompt to onboard your agent" class="group/agent hidden lg:inline-flex items-center gap-2 rounded-md px-3 py-1 text-[15px] font-medium text-[#686082] hover:text-violet-600 data-[copied]:text-emerald-600 transition-colors cursor-pointer">
              <span class="relative h-4 w-4 shrink-0" aria-hidden="true">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4 transition-all duration-150 motion-reduce:transition-none [[data-copied]_&]:scale-50 [[data-copied]_&]:opacity-0">
                  <rect x="9" y="9" width="12" height="12" rx="2.5"></rect>
                  <path d="M5 15H4.5A2.5 2.5 0 0 1 2 12.5v-8A2.5 2.5 0 0 1 4.5 2h8A2.5 2.5 0 0 1 15 4.5V5"></path>
                </svg>
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="absolute inset-0 m-auto h-4 w-4 scale-50 opacity-0 transition-all duration-200 delay-100 motion-reduce:transition-none motion-reduce:delay-0 [[data-copied]_&]:scale-100 [[data-copied]_&]:opacity-100">
                  <path d="M20 6 9 17l-5-5"></path>
                </svg>
              </span>
              <span class="[[data-copied]_&]:hidden">Onboard your agent</span>
              <span class="hidden [[data-copied]_&]:inline">Prompt copied</span>
            </button>
          </div>

          

          

          
        </div>
      </div>
    </div>
  </header>


  <section class="relative px-4 pb-16 sm:px-6 lg:pb-24">
    <h2 class="sr-only">Teams building on Fly.io</h2>
    <ul class="mx-auto flex max-w-screen-3xl flex-wrap items-center justify-center gap-x-8 gap-y-6 sm:gap-x-10 xl:gap-x-16">
      <li class="flex items-center gap-3">
        <img src="/phx/images/logos/supabase-bc722c60b7607d108947a13faeba5899.webp?vsn=d" alt="" loading="lazy" class="shrink-0 object-contain size-[40px]">
        <span class="whitespace-nowrap font-bold text-[#686082] text-base">
          Supabase
        </span>
      </li><li class="flex items-center gap-3">
        <img src="/phx/images/logos/replicate-7d09eef67c63eefe1aef1fff6b1b093d.webp?vsn=d" alt="" loading="lazy" class="shrink-0 object-contain size-[38px] opacity-50">
        <span class="whitespace-nowrap font-bold text-[#686082] text-base">
          Replicate
        </span>
      </li><li class="flex items-center gap-3">
        <img src="/phx/images/logos/builder-4e43898e83db880c30025f5a3ef453b7.webp?vsn=d" alt="" loading="lazy" class="shrink-0 object-contain size-[50px]">
        <span class="whitespace-nowrap font-bold text-[#686082] text-base">
          Builder.io
        </span>
      </li><li class="flex items-center gap-3">
        <img src="/phx/images/logos/firecrawl-e2b4ec27e2defb2079c2d671824dd46a.webp?vsn=d" alt="" loading="lazy" class="shrink-0 object-contain h-[44px] w-[31px] opacity-[.58]">
        <span class="whitespace-nowrap font-bold text-[#686082] text-base">
          Firecrawl
        </span>
      </li><li class="flex items-center gap-3">
        <img src="/phx/images/logos/kilocode-b19d5aabc52db361f6a0cff267530c9a.webp?vsn=d" alt="" loading="lazy" class="shrink-0 object-contain size-[48px] opacity-[.54]">
        <span class="whitespace-nowrap font-bold text-[#686082] text-base">
          Kilocode
        </span>
      </li><li class="flex items-center gap-3">
        <img src="/phx/images/logos/hatchet-86205f4f3c5637161455c2685390baef.svg?vsn=d" alt="" loading="lazy" class="shrink-0 object-contain size-[48px]">
        <span class="whitespace-nowrap font-bold text-[#686082] text-base">
          Hatchet
        </span>
      </li>
    </ul>
  </section>

  <section class="relative px-6 pb-16 lg:px-[100px] lg:pb-24">
    <div class="mx-auto max-w-screen-3xl">
      <div class="mx-auto max-w-[900px] text-center">

        <h2 class="font-heading text-black text-3xl/[1.15] md:text-4xl/[1.15] tracking-[-0.02em]">
          Sprites: where your agent runs.<br class="hidden lg:block">
          Machines: where you run what it builds.
        </h2>
      </div>

      <div class="mt-[38px] lg:mt-[54px]">
        <fly-progressive-image src="/phx/images/sprites-machines-3c55a8501e51522970d5991beba27536.png?vsn=d" class="w-full" style="aspect-ratio: 2200 / 480; --image-placeholder: #ffffff;">
  <img class="progressive-image-content" width="2200" height="480" alt="" loading="lazy" decoding="async" fetchpriority="low">
</fly-progressive-image>
      </div>

      <ul class="relative z-10 -mt-8 grid gap-4 md:grid-cols-2 lg:-mt-12">
        <li class="flex flex-col justify-between gap-8 rounded-[10px] border border-[#d5cfef] bg-[#f4f3fb] p-8 lg:p-10">
          <div>
            <h3 class="font-heading text-black text-2xl/[1.15] tracking-[-0.02em]">
              Sprites
            </h3>
            <p class="mt-4 text-[#686082] text-base lg:text-lg">It sleeps when the agent stops, and wakes up with the filesystem, the running services and the installed dependencies right where they were. Checkpoint before a risky change, roll back in seconds.</p>
          </div>
          <a href="/sprites" class="font-medium text-violet-600 text-base hover:text-violet-700 lg:text-lg">
            Explore Sprites
          </a>
        </li><li class="flex flex-col justify-between gap-8 rounded-[10px] border border-[#d5cfef] bg-[#f4f3fb] p-8 lg:p-10">
          <div>
            <h3 class="font-heading text-black text-2xl/[1.15] tracking-[-0.02em]">
              Machines
            </h3>
            <p class="mt-4 text-[#686082] text-base lg:text-lg">The app your agent finished needs somewhere to live. Fly Machines are hardware-isolated VMs that boot in under a second, run close to your users, and scale out to tens of thousands when the traffic arrives.</p>
          </div>
          <a href="/machines" class="font-medium text-violet-600 text-base hover:text-violet-700 lg:text-lg">
            Explore Machines
          </a>
        </li>
      </ul>
    </div>
  </section>

  <section class="relative px-4 pb-16 sm:px-6 lg:pb-24">
    <div class="relative mx-auto flex max-w-screen-3xl flex-col items-center gap-10 rounded-[20px] bg-white px-6 sm:px-10 lg:flex-row lg:gap-4 lg:px-[100px]">
      <div class="flex-1">
        <h2 class="font-heading text-black text-3xl/[1.15] md:text-4xl/[1.15] tracking-[-0.02em]">
          Your Agent's Favorite Cloud
        </h2>
        <p class="mt-2 max-w-[808px] text-[#686082] text-base lg:text-lg">
          Fly.io is where agents like to run. It's also where they like to deploy the things they create. Let agents prototype, iterate, and scale on the same primitives, from first sandbox to production.
        </p>
      </div>

      <div class="flex h-[300px] w-[340px] max-w-full shrink-0 items-center justify-center">
        <img src="/phx/images/agents-preferred-cloud-388ced42257500da7ec403f260a14091.webp?vsn=d" alt="" loading="lazy" class="h-full w-full object-contain">
      </div>
    </div>
  </section>

  <section class="relative px-4 sm:px-6 pb-16 lg:pb-24">
    <div class="relative mx-auto max-w-screen-3xl overflow-hidden rounded-[20px] border border-[#e6e0fe] shadow-[0_2px_25px_0_rgba(0,0,0,0.1)]">
      <img src="/phx/images/machines-gradient-f6fdd3912be6c8de825ce6d466138f3d.webp?vsn=d" alt="" aria-hidden="true" class="pointer-events-none absolute inset-0 h-full w-full object-cover">

      <div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-60 [background-image:radial-gradient(circle,#fff_1.4px,transparent_1.5px),radial-gradient(circle,#fff_1.4px,transparent_1.5px)] [background-position:0_0,4px_4px] [background-size:8px_8px]">
      </div>

      <div class="relative">
        <div class="flex items-end justify-between gap-8 px-6 pt-10 sm:px-10 sm:pt-14 lg:px-[150px] lg:pt-[100px]">
          <div>
            <h2 class="font-heading text-black text-3xl/[1.15] md:text-4xl/[1.15] tracking-[-0.02em]">
              Machines that Remember
            </h2>
            <p class="mt-2 max-w-[808px] text-[#686082] text-base lg:text-lg">
              Real hardware-isolated Linux computers for agents, evals, and tools.<br class="hidden sm:block">
              The bill goes to zero when nobody's home.
            </p>
            <div class="mt-6 lg:mt-8">


              <a href="/app/sign-up" class="gap-2 btn-xl btn-purple rounded-lg bg-none">
  

    
                Start for Free
              
  

</a>


            </div>
          </div>

          <div class="hidden shrink-0 items-center gap-6 lg:flex">
            <button type="button" id="machines-prev" aria-label="Previous" class="flex size-12 items-center justify-center rounded-full bg-violet-600 text-white transition-colors hover:bg-violet-700 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-violet-600">
              <svg viewBox="0 0 10 18" fill="none" aria-hidden="true" class="h-[18px] w-[10px]">
                <path d="M9 17L1 9L9 1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
              </svg>
            </button>
            <button type="button" id="machines-next" aria-label="Next" class="flex size-12 items-center justify-center rounded-full bg-violet-600 text-white transition-colors hover:bg-violet-700 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-violet-600">
              <svg viewBox="0 0 10 18" fill="none" aria-hidden="true" class="h-[18px] w-[10px]">
                <path d="M1 1L9 9L1 17" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
              </svg>
            </button>
          </div>
        </div>

        <div id="machines-rail" class="mt-10 flex snap-x snap-mandatory overflow-x-auto overscroll-x-contain lg:mt-16 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden">
          <div data-card class="flex w-[85vw] shrink-0 snap-start flex-col justify-between border border-[#d5cfef] bg-white p-8 first:ml-0 sm:w-[450px] lg:min-h-[477px] [&:not(:first-child)]:-ml-px">
            <div>
              <h3 class="font-medium text-black text-lg">Coding Agents</h3>
              <p class="mt-2 text-base text-[#686082]">Every agent gets its own Linux box. A Sprite checkpoints itself while the agent works, so harnesses like Claude and Codex find everything where they left it.</p>
            </div>
            <fly-progressive-image src="/phx/images/card-coding-agents-d4606629a74b7bc04248691b6f867931.webp?vsn=d" class="mt-6 w-full max-w-[300px] self-center" style="aspect-ratio: 600 / 600; --image-placeholder: #ffffff;">
  <img class="progressive-image-content" width="600" height="600" alt="" loading="lazy" decoding="async" fetchpriority="low">
</fly-progressive-image>
          </div><div data-card class="flex w-[85vw] shrink-0 snap-start flex-col justify-between border border-[#d5cfef] bg-white p-8 first:ml-0 sm:w-[450px] lg:min-h-[477px] [&:not(:first-child)]:-ml-px">
            <div>
              <h3 class="font-medium text-black text-lg">Personal agents</h3>
              <p class="mt-2 text-base text-[#686082]">Hermes, Pi, Openclaw… whatever your flavour, an agent with access to your inbox and calendar shouldn&#39;t live on your laptop. Give it a Sprite that sleeps until it&#39;s needed and wakes up remembering everything.</p>
            </div>
            <fly-progressive-image src="/phx/images/card-personal-agents-4d86163695c45f44bab6ae5095ef7607.webp?vsn=d" class="mt-6 w-full max-w-[300px] self-center" style="aspect-ratio: 600 / 600; --image-placeholder: #ffffff;">
  <img class="progressive-image-content" width="600" height="600" alt="" loading="lazy" decoding="async" fetchpriority="low">
</fly-progressive-image>
          </div><div data-card class="flex w-[85vw] shrink-0 snap-start flex-col justify-between border border-[#d5cfef] bg-white p-8 first:ml-0 sm:w-[450px] lg:min-h-[477px] [&:not(:first-child)]:-ml-px">
            <div>
              <h3 class="font-medium text-black text-lg">MCP servers</h3>
              <p class="mt-2 text-base text-[#686082]">Run every MCP server in its own Sprite, with persistent disk, and egress policy. Pay only for the tool calls you use.</p>
            </div>
            <fly-progressive-image src="/phx/images/card-mcp-servers-38f2f0f9b381994b43fc36434dfbd9d8.webp?vsn=d" class="mt-6 w-full max-w-[300px] self-center" style="aspect-ratio: 600 / 600; --image-placeholder: #ffffff;">
  <img class="progressive-image-content" width="600" height="600" alt="" loading="lazy" decoding="async" fetchpriority="low">
</fly-progressive-image>
          </div><div data-card class="flex w-[85vw] shrink-0 snap-start flex-col justify-between border border-[#d5cfef] bg-white p-8 first:ml-0 sm:w-[450px] lg:min-h-[477px] [&:not(:first-child)]:-ml-px">
            <div>
              <h3 class="font-medium text-black text-lg">Untrusted code</h3>
              <p class="mt-2 text-base text-[#686082]">Run it in a hardware-isolated VM. A clean baseline per request, so no two users ever share state. Egress-locked and disposable.</p>
            </div>
            <fly-progressive-image src="/phx/images/card-untrusted-code-f6965b315f07c97e7e95a70e9047f2e9.webp?vsn=d" class="mt-6 w-full max-w-[300px] self-center" style="aspect-ratio: 600 / 600; --image-placeholder: #ffffff;">
  <img class="progressive-image-content" width="600" height="600" alt="" loading="lazy" decoding="async" fetchpriority="low">
</fly-progressive-image>
          </div><div data-card class="flex w-[85vw] shrink-0 snap-start flex-col justify-between border border-[#d5cfef] bg-white p-8 first:ml-0 sm:w-[450px] lg:min-h-[477px] [&:not(:first-child)]:-ml-px">
            <div>
              <h3 class="font-medium text-black text-lg">Agent-built apps</h3>
              <p class="mt-2 text-base text-[#686082]">Every Sprite has an HTTPS URL. The app your agent built stays exactly where it was created and goes live. Nobody migrates anything.</p>
            </div>
            <fly-progressive-image src="/phx/images/card-agent-built-apps-1b83a7b5fbb9bb7233f7e6b988cde5c8.webp?vsn=d" class="mt-6 w-full max-w-[300px] self-center" style="aspect-ratio: 600 / 600; --image-placeholder: #ffffff;">
  <img class="progressive-image-content" width="600" height="600" alt="" loading="lazy" decoding="async" fetchpriority="low">
</fly-progressive-image>
          </div>
        </div>
      </div>
    </div>
  </section>
  <script>
    (() => {
      const rail = document.getElementById("machines-rail");
      if (!rail) return;
      const step = () => rail.querySelector("[data-card]")?.offsetWidth ?? 450;
      const go = (dir) => rail.scrollBy({ left: dir * step(), behavior: "smooth" });
      document.getElementById("machines-prev")?.addEventListener("click", () => go(-1));
      document.getElementById("machines-next")?.addEventListener("click", () => go(1));
    })();
  </script>

  <section class="relative px-6 pb-16 lg:px-[100px] lg:pb-24">
    <div class="mx-auto flex max-w-screen-3xl flex-col gap-10 lg:flex-row lg:items-center lg:gap-16">
      <div class="flex-1">
        <h2 class="font-heading text-black text-3xl/[1.15] md:text-4xl/[1.15] tracking-[-0.02em]">
          A Real Durable<br>Filesystem
        </h2>
        <p class="mt-2 text-[#686082] text-base lg:text-lg">
          Everything's still there when you come back.<br class="hidden lg:block"> The

          Sprite Block Device means Sprites can go to sleep without dying.
        </p>
      </div>

      <ul class="flex w-full flex-col gap-7 lg:w-[700px]">
        <li class="flex items-center gap-6 lg:gap-16">
          <img src="/phx/images/check-mark-bb2c297cb1dc478b068ade823dbd483e.webp?vsn=d" width="70" height="59" alt="" loading="lazy" class="h-[43px] w-[51px] shrink-0 object-contain">
          <span class="font-medium text-black text-base lg:text-lg">Object-storage backed, so it&#39;s infinitely scalable</span>
        </li><li class="flex items-center gap-6 lg:gap-16">
          <img src="/phx/images/check-mark-bb2c297cb1dc478b068ade823dbd483e.webp?vsn=d" width="70" height="59" alt="" loading="lazy" class="h-[43px] w-[51px] shrink-0 object-contain">
          <span class="font-medium text-black text-base lg:text-lg">Roll back to any checkpoint in seconds</span>
        </li><li class="flex items-center gap-6 lg:gap-16">
          <img src="/phx/images/check-mark-bb2c297cb1dc478b068ade823dbd483e.webp?vsn=d" width="70" height="59" alt="" loading="lazy" class="h-[43px] w-[51px] shrink-0 object-contain">
          <span class="font-medium text-black text-base lg:text-lg">No SDK or object-store gymnastics</span>
        </li>
      </ul>
    </div>

    <p class="mt-8 text-[#686082] text-sm lg:mt-12 lg:text-base max-w-screen-3xl mx-auto">
      Sprites Block Device is currently in private beta.
      <a href="/early-access" class="font-medium text-violet-600 hover:text-violet-700">
        Sign up
      </a>
      to receive early access.
    </p>
  </section>

  <section class="relative px-4 sm:px-6 pb-16 lg:pb-24">
    <div class="relative mx-auto max-w-screen-3xl overflow-hidden rounded-[20px] border border-[#e6e0fe] shadow-[0_2px_25px_0_rgba(0,0,0,0.1)]">
      <fly-progressive-image src="/phx/images/section-gradient-72f1cf8b5c9f801e1d0d42234091e6ac.webp?vsn=d" class="pointer-events-none absolute inset-0 h-full w-full" style="aspect-ratio: 1102 / 768; --image-placeholder: linear-gradient(135deg, #f2eafa, #e2eafa 55%, #efe4f6);" aria-hidden="true">
  <img class="progressive-image-content" width="1102" height="768" alt="" loading="lazy" decoding="async" fetchpriority="low">
</fly-progressive-image>
      <div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-60 [background-image:radial-gradient(circle,#fff_1.4px,transparent_1.5px),radial-gradient(circle,#fff_1.4px,transparent_1.5px)] [background-position:0_0,4px_4px] [background-size:8px_8px]">
      </div>

      <div class="relative px-6 py-12 sm:px-10 sm:py-16 lg:px-[150px] lg:py-[100px]">
        <h2 class="font-heading text-black text-3xl/[1.15] md:text-4xl/[1.15] tracking-[-0.02em]">
          Nothing to Manage
        </h2>
        <p class="mt-2 text-[#686082] text-base lg:text-lg">
          The agent does the setup, and you get your afternoon back.
        </p>

        <ul class="mt-10 grid gap-6 sm:grid-cols-2 lg:mt-16 lg:grid-cols-3">
          <li class="flex flex-col gap-6 border border-[#d5cfef] bg-white/10 p-6">
            <img src="/phx/images/manage-no-disk-sizing-ba1e7dcba6b4b60a0583f0d4e21e2328.webp?vsn=d" alt="" width="800" height="800" loading="lazy" class="h-[375px] w-full rounded-lg object-cover">
            <div>
              <h3 class="font-medium text-black text-lg">No disk sizing</h3>
              <p class="mt-2 text-base text-[#686082]">Your disk grows as you write it, up to 100 GB per Sprite, and you&#39;re only billed for the bytes you actually put there.</p>
            </div>
          </li><li class="flex flex-col gap-6 border border-[#d5cfef] bg-white/10 p-6">
            <img src="/phx/images/manage-checkpointing-ff418d9ba95f1124fff3383c98419ff8.webp?vsn=d" alt="" width="800" height="800" loading="lazy" class="h-[375px] w-full rounded-lg object-cover">
            <div>
              <h3 class="font-medium text-black text-lg">Automatic checkpointing</h3>
              <p class="mt-2 text-base text-[#686082]">The Sprite checkpoints itself automatically, so there&#39;s always a recent one waiting.</p>
            </div>
          </li><li class="flex flex-col gap-6 border border-[#d5cfef] bg-white/10 p-6">
            <img src="/phx/images/manage-connectors-3a03cb2ee65ae73697497d13e61281d5.webp?vsn=d" alt="" width="800" height="800" loading="lazy" class="h-[375px] w-full rounded-lg object-cover">
            <div>
              <h3 class="font-medium text-black text-lg">Sprites Connectors</h3>
              <p class="mt-2 text-base text-[#686082]">Connect a service once for your whole org, and every Sprite can reach it. Nobody pastes a token.</p>
            </div>
          </li>
        </ul>
      </div>
    </div>
  </section>

  <section class="relative px-6 pb-16 lg:px-[90px] lg:pb-24">
    <div class="mx-auto flex max-w-screen-3xl flex-col gap-10 lg:flex-row lg:items-center lg:gap-[100px]">
      <div class="flex-1">
        <h2 class="font-heading text-black text-3xl/[1.15] md:text-4xl/[1.15] tracking-[-0.02em]">
          Grow without drama
        </h2>
        <p class="mt-2 max-w-[630px] text-[#686082] text-base lg:text-lg">
          Scale from side project to production without rewriting your infrastructure.
        </p>
        <p class="mt-6 max-w-[630px] text-[#686082] text-base lg:text-lg">
          Keep the same primitives at every scale: no rearchitecting when you grow, and no platform migration when you get big. The API you start with is the API you keep.
        </p>
      </div>

      <dl class="grid shrink-0 grid-cols-2 gap-6">
        <div class="flex w-full flex-col justify-center border-l-2 border-[#d5cfef] px-6 py-4 lg:w-[250px]">
          <dt class="font-heading text-violet-600 text-3xl/[1.15] lg:text-4xl/[1.15] tracking-[-0.02em]">
            18+
          </dt>
          <dd class="mt-2 text-[#686082] text-base lg:text-lg">Regions worldwide</dd>
        </div><div class="flex w-full flex-col justify-center border-l-2 border-[#d5cfef] px-6 py-4 lg:w-[250px]">
          <dt class="font-heading text-violet-600 text-3xl/[1.15] lg:text-4xl/[1.15] tracking-[-0.02em]">
            &lt;1 second
          </dt>
          <dd class="mt-2 text-[#686082] text-base lg:text-lg">Machine boot time</dd>
        </div><div class="flex w-full flex-col justify-center border-l-2 border-[#d5cfef] px-6 py-4 lg:w-[250px]">
          <dt class="font-heading text-violet-600 text-3xl/[1.15] lg:text-4xl/[1.15] tracking-[-0.02em]">
            500ms
          </dt>
          <dd class="mt-2 text-[#686082] text-base lg:text-lg">Deploy time, typical</dd>
        </div><div class="flex w-full flex-col justify-center border-l-2 border-[#d5cfef] px-6 py-4 lg:w-[250px]">
          <dt class="font-heading text-violet-600 text-3xl/[1.15] lg:text-4xl/[1.15] tracking-[-0.02em]">
            99.9%
          </dt>
          <dd class="mt-2 text-[#686082] text-base lg:text-lg">Uptime SLA</dd>
        </div>
      </dl>
    </div>
  </section>

  <section class="relative px-4 sm:px-6 pb-16 lg:pb-24">
    <div class="relative mx-auto max-w-screen-3xl overflow-hidden rounded-[20px] border border-[#e6e0fe] shadow-[0_2px_25px_0_rgba(0,0,0,0.1)]">
      <fly-progressive-image src="/phx/images/section-gradient-72f1cf8b5c9f801e1d0d42234091e6ac.webp?vsn=d" class="pointer-events-none absolute inset-0 h-full w-full" style="aspect-ratio: 1102 / 768; --image-placeholder: linear-gradient(135deg, #f2eafa, #e2eafa 55%, #efe4f6);" aria-hidden="true">
  <img class="progressive-image-content" width="1102" height="768" alt="" loading="lazy" decoding="async" fetchpriority="low">
</fly-progressive-image>
      <div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-60 [background-image:radial-gradient(circle,#fff_1.4px,transparent_1.5px),radial-gradient(circle,#fff_1.4px,transparent_1.5px)] [background-position:0_0,4px_4px] [background-size:8px_8px]">
      </div>

      <div class="relative px-6 py-12 sm:px-10 sm:py-16 lg:px-[150px] lg:py-[100px]">
        <h2 class="font-heading text-black text-3xl/[1.15] md:text-4xl/[1.15] tracking-[-0.02em]">
          A Connection to Everything
        </h2>
        <p class="mt-2 max-w-[808px] text-[#686082] text-base lg:text-lg">
          <em>Sprites are social creatures. Your credentials shouldn't be.</em>
          Your Sprites reach other services through the

          API gateway that holds the credential. The token never lands on the Sprite.
        </p>

        <ul class="mt-10 grid gap-6 sm:grid-cols-2 lg:mt-16 lg:grid-cols-3">
          <li class="flex flex-col gap-6 border border-[#d5cfef] bg-white/10 p-6">

            <div class="flex h-[375px] items-center justify-center">
              <img src="/phx/images/connector-configure-54e72c473264d5898b0e90ddd80b2d53.webp?vsn=d" alt="" loading="lazy" class="w-auto max-w-full object-contain max-h-[86%]">
            </div>
            <div>
              <h3 class="font-medium text-black text-lg">Configure a connector once</h3>
              <p class="mt-2 text-base text-[#686082]">Enable a connection to OpenRouter, Github, Slack, or any HTTP API. Configure once, connect as many Sprites as you like.</p>
            </div>
          </li><li class="flex flex-col gap-6 border border-[#d5cfef] bg-white/10 p-6">

            <div class="flex h-[375px] items-center justify-center">
              <img src="/phx/images/connector-permissions-b20c26f0f12856bfc731cab5d7d0834b.webp?vsn=d" alt="" loading="lazy" class="w-auto max-w-full object-contain max-h-full">
            </div>
            <div>
              <h3 class="font-medium text-black text-lg">Granular permissions</h3>
              <p class="mt-2 text-base text-[#686082]">Grant access on purpose: by Sprite name, by label, or down to a single endpoint, so a Slack bot can post messages and never touch admin.</p>
            </div>
          </li><li class="flex flex-col gap-6 border border-[#d5cfef] bg-white/10 p-6">

            <div class="flex h-[375px] items-center justify-center">
              <img src="/phx/images/connector-rotation-ac04d9ea0adcb81ad61e7e1372e09620.webp?vsn=d" alt="" loading="lazy" class="w-auto max-w-full object-contain max-h-full">
            </div>
            <div>
              <h3 class="font-medium text-black text-lg">Auto key rotation</h3>
              <p class="mt-2 text-base text-[#686082]">Rotate once and every Sprite has the new credential. Cut off a single Sprite and the rest never notice.</p>
            </div>
          </li>
        </ul>

        <div class="mt-12 flex justify-center">

          <a href="/dashboard/personal/sprites/connectors" class="gap-2 btn-xl btn-purple rounded-lg bg-none">
  

    
            Set up a connector
          
  

</a>


        </div>
      </div>
    </div>
  </section>

  <section class="relative px-4 sm:px-6 pb-16 lg:pb-24">
    <div class="relative mx-auto max-w-screen-3xl overflow-hidden rounded-[20px] border border-[#e6e0fe] shadow-[0_2px_25px_0_rgba(0,0,0,0.1)]">
      <fly-progressive-image src="/phx/images/support-gradient-bed67b461e851c968709283699be8aef.webp?vsn=d" class="pointer-events-none absolute inset-0 h-full w-full" style="aspect-ratio: 1102 / 768; --image-placeholder: linear-gradient(135deg, #eee7fa, #e1e9fa 55%, #f1e5f5);" aria-hidden="true">
  <img class="progressive-image-content" width="1102" height="768" alt="" loading="lazy" decoding="async" fetchpriority="low">
</fly-progressive-image>
      <div aria-hidden="true" class="pointer-events-none absolute inset-0 opacity-60 [background-image:radial-gradient(circle,#fff_1.4px,transparent_1.5px),radial-gradient(circle,#fff_1.4px,transparent_1.5px)] [background-position:0_0,4px_4px] [background-size:8px_8px]">
      </div>

      <div class="relative px-6 py-12 sm:px-10 sm:py-16 lg:px-[150px] lg:py-[100px]">
        <div class="mx-auto max-w-[800px] text-center">
          <h2 class="font-heading text-black text-3xl/[1.15] md:text-4xl/[1.15] tracking-[-0.02em]">
            Support that knows the stack
          </h2>
          <p class="mt-4 text-[#686082] text-base lg:text-lg">
            Our support team writes code.<br>
            When you hit a wall, you talk to someone who's been there.
          </p>
          <div class="mt-8 flex justify-center">
            <a href="/support/" class="gap-2 btn-xl btn-purple rounded-lg bg-none">
  

    
              Get support
            
  

</a>


          </div>
        </div>

        <ul class="mt-12 grid gap-4 md:grid-cols-3 lg:mt-16">
          <li class="flex flex-col justify-between gap-8 rounded-[10px] border border-[#d5cfef] bg-[#f4f3fb]/75 p-8">
            <p class="font-medium text-black text-lg">“The Fly support team diagnosed a subtle networking issue in our multi-region setup in under an hour. Real engineers, real answers.”</p>
            <div>
              <p class="font-bold text-[#686082] text-sm">Platform Engineer</p>
              <p class="mt-1 text-[#686082] text-sm">Series B startup</p>
            </div>
          </li><li class="flex flex-col justify-between gap-8 rounded-[10px] border border-[#d5cfef] bg-[#f4f3fb]/75 p-8">
            <p class="font-medium text-black text-lg">“Well, I have to say this is the best support I have ever received from any company. When I sent my initial request I expected to be brushed off as is the norm for non-standard, doesn’t fit the script tech problems. To have what is essentially a step-by-step guide in my inbox first thing in the morning is amazing, I can see why the devs like fly.io.”</p>
            <div>
              <p class="font-bold text-[#686082] text-sm">Staff Engineer</p>
              <p class="mt-1 text-[#686082] text-sm">Fintech</p>
            </div>
          </li><li class="flex flex-col justify-between gap-8 rounded-[10px] border border-[#d5cfef] bg-[#f4f3fb]/75 p-8">
            <p class="font-medium text-black text-lg">“It was useful to be able to speak to fly.io directly. I found [the team] to be very knowledgeable and he helped me get clarity around areas I was stuck with, plus he offered me insight in areas I didn’t even know about. Fly.io has been a great experience from the moment I signed up. Keep it up!”</p>
            <div>
              <p class="font-bold text-[#686082] text-sm">Founder</p>
              <p class="mt-1 text-[#686082] text-sm">AI-first product</p>
            </div>
          </li>
        </ul>
      </div>
    </div>
  </section>

  <section class="relative overflow-hidden bg-gradient-to-br from-purple-700 via-violet-700 to-indigo-700">
  <div class="absolute inset-0 opacity-30 bg-cover bg-center mix-blend-overlay" style="background-image: url(&#39;/phx/images/sprites/cta-banner-bg-c4b3c3dcfe58aec2f56bd438c4199767.webp?vsn=d&#39;);" aria-hidden="true">
  </div>
  <div class="pointer-events-none absolute -inset-x-12 -top-6 h-12 bg-gradient-to-r from-sky-300 via-indigo-300 to-pink-300 blur-3xl rotate-3 opacity-50" aria-hidden="true">
  </div>

  <div class="relative container mx-auto px-4 sm:px-6 lg:px-8 py-16 lg:py-24 flex flex-col lg:flex-row items-center justify-between gap-10">
    <div class="flex flex-col lg:flex-row items-center gap-6 lg:gap-10 text-center lg:text-left">
      
      <h2 class="font-heading text-3xl md:text-4xl lg:text-5xl text-white max-w-2xl">
        
      Give your agent a computer. <span class="text-emerald-300">Start free.</span>
    
      </h2>
    </div>
    <a href="/app/sign-up" class="group inline-flex items-center gap-2 px-6 py-3 lg:px-8 lg:py-4 rounded-full shrink-0 bg-white/15 hover:bg-white/25 backdrop-blur-sm text-white font-semibold text-base lg:text-lg ring-1 ring-inset ring-white/30 hover:ring-white/50 shadow-lg shadow-black/20 transition-all">
      Start for Free
      <span class="hero-arrow-right w-4 h-4 transition-transform group-hover:translate-x-0.5"></span>
    </a>
  </div>
</section>
</main>
  <div role="alert" class="fixed bottom-6 mb-14 lg:mb-0 left-1/2 transform -translate-x-1/2 w-max max-w-[94%] sm:max-w-lg z-[9999]">
  
</div><div role="alert" class="fixed bottom-6 mb-14 lg:mb-0 left-1/2 transform -translate-x-1/2 w-max max-w-[94%] sm:max-w-lg z-[9999]">
  
</div><div role="alert" class="fixed bottom-6 mb-14 lg:mb-0 left-1/2 transform -translate-x-1/2 w-max max-w-[94%] sm:max-w-lg z-[9999]">
  
</div><div role="alert" class="fixed bottom-6 mb-14 lg:mb-0 left-1/2 transform -translate-x-1/2 w-max max-w-[94%] sm:max-w-lg z-[9999]">
  
</div><div role="alert" class="fixed bottom-6 mb-14 lg:mb-0 left-1/2 transform -translate-x-1/2 w-max max-w-[94%] sm:max-w-lg z-[9999]">
  
</div>
</div>

<footer class="relative text-sm text-navy-400 leading-6 pb-8 pt-12 lg:pt-20 text-medium bg-navy-950 bg-gradient-to-br from-gray-900/50 via-navy-900/50 to-navy-950/50" role="contentinfo">
  <div class="container mx-auto px-4 sm:px-6 lg:px-8 pb-12 lg:pb-20 grid md:grid-cols-auto-span items-start gap-10 md:gap-16">
    <a href="/" class="justify-self-start" aria-label="Fly">
      
<svg aria-labelledby="title-GN56OxOWFC3hlEOidescription-GN56OxOWI5vhlEOy" class="" role="img" style="pointer-events: none; width: auto; height: 36px;" fill-rule="evenodd" viewBox="0 0 259 84" aria-hidden="true">
  <title id="title-GN56OxOWNinhlEPC">
    
      
    
  </title>
  <desc id="description-GN56OxOWQAvhlEPS">
    
      
    
  </desc>
  
  <g buffered-rendering="static">

      <path d="M57.413 10.134h9.454c8.409 0 15.236 6.827 15.236 15.236v33.243c0 8.409-6.827 15.236-15.236 15.236h-.745c-4.328-.677-6.205-1.975-7.655-3.072l-12.02-9.883a1.692 1.692 0 0 0-2.128 0l-3.905 3.211-10.998-9.043a1.688 1.688 0 0 0-2.127 0L12.01 68.503c-3.075 2.501-5.109 2.039-6.428 1.894C2.175 67.601 0 63.359 0 58.613V25.37c0-8.409 6.827-15.236 15.237-15.236h9.433l-.017.038-.318.927-.099.318-.428 1.899-.059.333-.188 1.902-.025.522-.004.183.018.872.043.511.106.8.135.72.16.663.208.718.54 1.52.178.456.94 1.986.332.61 1.087 1.866.416.673 1.517 2.234.219.296 1.974 2.569.638.791 2.254 2.635.463.507 1.858 1.999.736.762 1.216 1.208-.244.204-.152.137c-.413.385-.805.794-1.172 1.224a10.42 10.42 0 0 0-.504.644 8.319 8.319 0 0 0-.651 1.064 6.234 6.234 0 0 0-.261.591 5.47 5.47 0 0 0-.353 1.606l-.007.475a5.64 5.64 0 0 0 .403 1.953 5.44 5.44 0 0 0 1.086 1.703c.338.36.723.674 1.145.932.359.22.742.401 1.14.539a6.39 6.39 0 0 0 2.692.306h.005a6.072 6.072 0 0 0 2.22-.659c.298-.158.582-.341.848-.549a5.438 5.438 0 0 0 1.71-2.274c.28-.699.417-1.446.405-2.198l-.022-.393a5.535 5.535 0 0 0-.368-1.513 6.284 6.284 0 0 0-.285-.618 8.49 8.49 0 0 0-.67-1.061 11.022 11.022 0 0 0-.354-.453 14.594 14.594 0 0 0-1.308-1.37l-.329-.28.557-.55 2.394-2.5.828-.909 1.287-1.448.837-.979 1.194-1.454.808-1.016 1.187-1.587.599-.821.85-1.271.708-1.083 1.334-2.323.763-1.524.022-.047.584-1.414a.531.531 0 0 0 .02-.056l.629-1.962.066-.286.273-1.562.053-.423.016-.259.019-.978-.005-.182-.05-.876-.062-.68-.31-1.961c-.005-.026-.01-.052-.018-.078l-.398-1.45-.137-.403-.179-.446Zm4.494 41.455a3.662 3.662 0 0 0-3.61 3.61 3.663 3.663 0 0 0 3.61 3.609 3.665 3.665 0 0 0 3.611-3.609 3.663 3.663 0 0 0-3.611-3.61Z" fill="url(#2ib_Radial1)"></path>

    <path d="M35.639 72.544l-.637.535a3.332 3.332 0 01-2.09.762H15.235a15.176 15.176 0 01-9.654-3.451c1.319.145 3.353.607 6.428-1.894l15.277-13.44a1.693 1.693 0 012.127 0l10.997 9.042 3.904-3.21c.619-.5 1.51-.5 2.128 0l12.019 9.882c1.45 1.097 3.327 2.394 7.654 3.071H58.12a3.394 3.394 0 01-1.963-.654l-.14-.108-.593-.493a1.247 1.247 0 00-.158-.159c-.672-.563-9.187-7.617-9.187-7.617a1 1 0 00-1.281.002s.021.026-9.038 7.615a1.12 1.12 0 00-.121.117zm26.262-20.96a3.678 3.678 0 00-3.61 3.609 3.68 3.68 0 003.61 3.609 3.68 3.68 0 003.61-3.609 3.678 3.678 0 00-3.61-3.609zM38.566 40.648L37.35 39.44l-.736-.762-1.858-1.999-.463-.507-2.253-2.634-.638-.791-1.974-2.569-.219-.296-1.517-2.234-.416-.673-1.087-1.866-.332-.61-.94-1.985-.178-.456-.539-1.52-.208-.718-.16-.663-.135-.72-.106-.8-.043-.511-.018-.872.004-.183.025-.522.188-1.901.059-.333.428-1.899.098-.318.318-.927.102-.24.506-1.112.351-.662.489-.806.487-.718.347-.456.4-.482.44-.484.377-.378.918-.808.671-.549c.016-.014.033-.026.05-.038l.794-.537.631-.402 1.198-.631c.018-.011.039-.02.058-.029l1.698-.705.157-.059 1.51-.442.638-.143.862-.173.572-.087.877-.109.598-.053 1.187-.063.465-.005.881.018.229.013 1.276.106 1.687.238.195.041 1.668.415.49.146.544.188.663.251.524.222.77.363.485.249.872.512.325.2 1.189.868.341.296.828.754.041.041.703.754.242.273.825 1.096.168.262.655 1.106.197.379.369.825.386.963.137.403.398 1.45a.89.89 0 01.018.078l.31 1.961.062.679.05.876.005.182-.019.978-.016.259-.053.423-.273 1.562-.066.286-.629 1.962a.626.626 0 01-.02.056l-.584 1.414-.022.047-.763 1.523-1.334 2.323-.708 1.083-.849 1.271-.599.821-1.187 1.587-.808 1.016-1.194 1.453-.837.979-1.287 1.448-.828.909-2.394 2.5-.556.55.328.28c.465.428.902.885 1.308 1.37.122.148.24.299.354.453.249.336.473.691.67 1.06.106.2.201.407.285.618.191.484.32.996.368 1.513l.022.393c.012.752-.125 1.5-.405 2.198a5.438 5.438 0 01-1.71 2.274c-.266.208-.55.391-.848.549a6.08 6.08 0 01-2.219.659h-.005a6.403 6.403 0 01-2.692-.306 5.882 5.882 0 01-1.14-.539 5.523 5.523 0 01-1.145-.932 5.458 5.458 0 01-1.086-1.703 5.662 5.662 0 01-.403-1.953l.007-.475a5.47 5.47 0 01.353-1.606c.077-.202.164-.399.261-.591.19-.37.408-.725.651-1.063.159-.221.328-.436.504-.644.367-.43.759-.839 1.172-1.224l.152-.137.244-.204z" class="fill-transparent"></path>
    <path d="M35.002 73.079l9.796-8.267a1 1 0 011.281-.002l9.938 8.269c.604.492 1.36.761 2.139.762h-25.28c.776 0 1.527-.269 2.126-.762zM41.1 43.568l.096.028c.031.015.057.036.085.055l.08.071c.198.182.39.373.575.569.13.139.257.282.379.43.155.187.3.383.432.587.057.09.11.181.16.276.043.082.082.167.116.253.06.15.105.308.119.469l-.003.302a1.726 1.726 0 01-.817 1.343 2.333 2.333 0 01-.994.327l-.373.011-.315-.028a2.398 2.398 0 01-.433-.105 2.07 2.07 0 01-.41-.192l-.246-.18a1.685 1.685 0 01-.56-.96 2.418 2.418 0 01-.029-.19l-.009-.288c.005-.078.017-.155.034-.232.043-.168.105-.331.183-.486.101-.194.216-.381.344-.559.213-.288.444-.562.691-.821.159-.168.322-.331.492-.488l.121-.109c.084-.055.085-.055.181-.083h.101zM40.481 3.42l.039-.003v33.665l-.084-.155a94.101 94.101 0 01-3.093-6.267 67.257 67.257 0 01-2.099-5.255 41.665 41.665 0 01-1.265-4.326c-.265-1.163-.469-2.343-.553-3.535a16.923 16.923 0 01-.029-1.528c.008-.444.026-.887.054-1.33.044-.696.115-1.391.217-2.081.081-.543.181-1.084.304-1.619.098-.425.212-.847.342-1.262.188-.6.413-1.186.675-1.758.096-.206.199-.411.307-.612.65-1.204 1.532-2.313 2.687-3.054a5.609 5.609 0 012.498-.88zm4.365.085l2.265.646c1.049.387 2.059.891 2.987 1.521a11.984 11.984 0 013.212 3.204c.502.748.918 1.555 1.243 2.398.471 1.247.763 2.554.866 3.882.03.348.047.697.054 1.046.008.324.006.649-.02.973-.064.725-.2 1.442-.407 2.14a17.03 17.03 0 01-.587 1.684c-.28.685-.591 1.357-.932 2.013-.754 1.457-1.623 2.852-2.553 4.201a65.451 65.451 0 01-3.683 4.806 91.02 91.02 0 01-4.417 4.896 93.66 93.66 0 002.907-5.949c.5-1.124.971-2.26 1.414-3.407.487-1.26.927-2.537 1.317-3.83.29-.969.546-1.948.757-2.938.181-.849.323-1.707.411-2.57.074-.72.101-1.444.083-2.166a30.867 30.867 0 00-.049-1.325c-.106-1.775-.376-3.545-.894-5.248a15.341 15.341 0 00-.714-1.892c-.663-1.444-1.588-2.793-2.84-3.778l-.42-.307z" fill="white"></path>

      <path d="M179.213 64.297l-10.751-23.015c-.898-1.917-1.433-2.618-2.331-3.431l-.874-.788c-.697-.676-1.155-1.302-1.155-2.045 0-1.064.843-1.96 2.378-1.96h9.334c1.465 0 2.378.762 2.378 1.9 0 .635-.292 1.111-.661 1.578-.438.555-1.008 1.096-1.008 2.082 0 .618.18 1.234.527 2.021l6.416 15.025 5.755-14.647c.354-.974.596-1.832.596-2.519 0-1.069-.581-1.505-1.029-1.983-.39-.415-.702-.854-.702-1.557 0-1.149.935-1.9 2.193-1.9h5.748c1.612 0 2.378.834 2.378 1.9 0 .682-.393 1.314-1.166 1.996l-.813.668c-1.132.925-1.656 2.263-2.251 3.647l-8.716 20.998c-1.03 2.455-2.563 5.863-4.905 8.659-2.379 2.84-5.587 5.048-9.932 5.048-3.638 0-5.84-1.737-5.84-4.24 0-2.293 1.696-4.12 3.924-4.12 1.22 0 1.855.576 2.499 1.169.532.489 1.072.991 2.137.991.988 0 1.908-.418 2.742-1.093 1.274-1.03 2.341-2.652 3.129-4.384zm63.175-.082c4.839 0 8.804-1.658 11.897-4.967 3.09-3.304 4.636-7.281 4.636-11.931 0-4.539-1.469-8.268-4.396-11.191-2.926-2.921-6.723-4.388-11.396-4.388-4.92 0-8.944 1.597-12.077 4.78-3.135 3.186-4.703 7.045-4.703 11.578 0 4.493 1.496 8.301 4.483 11.425 2.99 3.126 6.84 4.694 11.556 4.694zm-40.921-.36c2.798 0 4.788-1.884 4.788-4.6 0-2.652-2.055-4.54-4.788-4.54-2.863 0-4.912 1.891-4.912 4.54 0 2.713 2.05 4.6 4.912 4.6zm9.964-4.305l.681-.72c.81-.787 1.071-1.582 1.071-3.774V42.097c0-1.895-.258-2.741-1.062-3.465l-.801-.718c-.785-.693-1.043-1.124-1.043-1.816 0-.984.763-1.791 1.99-2.071l5.44-1.32c.52-.126 1.107-.249 1.562-.249.626 0 1.138.206 1.497.563.36.358.572.873.572 1.517v20.518c0 2.069.251 3.031 1.115 3.758a.359.359 0 01.039.039l.608.708c.764.743 1.081 1.236 1.081 1.914 0 1.209-.912 1.9-2.377 1.9h-9.211c-1.396 0-2.316-.687-2.316-1.9 0-.681.317-1.178 1.154-1.925zm-61.567.001l.681-.721c.811-.787 1.071-1.582 1.071-3.774V27.999c0-1.835-.194-2.736-1.053-3.459l-.822-.796c-.709-.689-.968-1.116-.968-1.805 0-.985.767-1.789 1.927-2.07l5.378-1.32c.521-.126 1.107-.249 1.563-.249.621 0 1.147.187 1.522.542.376.356.608.885.608 1.598v34.616c0 2.074.258 2.981 1.125 3.766l.694.734c.769.748 1.025 1.238 1.025 1.919 0 .502-.153.907-.426 1.216-.385.435-1.03.684-1.89.684h-9.21c-.86 0-1.505-.249-1.891-.684-.272-.309-.425-.714-.425-1.216 0-.682.253-1.176 1.091-1.924zm-25.079-13.934v9.319c0 1.404.278 2.701 1.435 3.768l.748.726c.838.813 1.093 1.3 1.093 2.045 0 1.138-.913 1.9-2.378 1.9h-10.385c-1.465 0-2.377-.762-2.377-1.9 0-.884.259-1.303 1.097-2.049l.745-.724c.868-.786 1.434-1.857 1.434-3.766V30.039c0-1.517-.336-2.758-1.435-3.769l-.749-.726c-.77-.747-1.092-1.238-1.092-1.985 0-1.206.915-1.96 2.377-1.96h27.817c1.063 0 1.997.237 2.594.822.415.407.68.981.71 1.778l.433 6.421c.043.803-.194 1.472-.657 1.885-.319.284-.748.454-1.288.454-.681 0-1.203-.257-1.669-.701-.419-.399-.792-.959-1.213-1.618-1.016-1.624-1.489-2.208-2.572-2.967-1.507-1.112-3.803-1.494-8.145-1.494-2.505 0-4.086.109-5.082.366-.644.166-1.016.382-1.215.699-.204.324-.226.734-.226 1.235v12.618h6.523c1.561 0 2.659-.282 3.931-2.021l.007-.01c.51-.649.879-1.127 1.23-1.444.409-.37.802-.545 1.323-.545a1.9 1.9 0 011.883 1.901v8.699c0 1.165-.908 1.96-1.883 1.96-.485 0-.879-.173-1.289-.535-.353-.31-.723-.775-1.203-1.396-1.392-1.802-2.375-2.089-3.999-2.089h-6.523zm110.214-.22c0-3.121.68-5.364 2.089-6.713 1.392-1.332 2.888-2.006 4.496-2.006 2.212 0 4.205 1.238 6.003 3.672 1.837 2.489 2.746 5.853 2.746 10.086 0 3.124-.682 5.388-2.093 6.776-1.391 1.369-2.886 2.063-4.493 2.063-2.212 0-4.204-1.248-6.002-3.701-1.838-2.51-2.746-5.904-2.746-10.177zm-18.202-16.878c2.804 0 4.788-1.578 4.788-4.3 0-2.658-1.982-4.24-4.788-4.24-2.871 0-4.851 1.583-4.851 4.24 0 2.656 1.981 4.3 4.851 4.3z" class="fill-white"></path>

  </g>
  <defs>
    <radialGradient id="2ib_Radial1" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(43.593 41.714) scale(59.4764)">
      <stop offset="0" stop-color="#ba7bf0"></stop>
      <stop offset=".45" stop-color="#996bec"></stop>
      <stop offset="1" stop-color="#5046e4"></stop>
    </radialGradient>
  </defs>

</svg>
    </a>
    <div class="grid grid-cols-fit-24 gap-10 items-start lg:justify-items-center">
      <dl>
        <dt class="font-bold uppercase tracking-wider text-xs text-white mb-3">Company</dt>
        <dd class="font-medium flex flex-col items-start">
          <a href="/about/" class="hover:text-violet-500 transition-colors">About</a>
          <a href="/news/" class="hover:text-violet-500 transition-colors">News</a>
          <a href="/pricing/" class="hover:text-violet-500 transition-colors">
            Pricing
          </a>
          <a href="/jobs/" class="hover:text-violet-500 transition-colors">Jobs</a>
        </dd>
      </dl>
      <dl>
        <dt class="font-bold uppercase tracking-wider text-xs text-white mb-3">Articles</dt>
        <dd class="font-medium flex flex-col items-start">
          <a href="/blog/" class="hover:text-violet-500 transition-colors">Blog</a>
          <a href="/sprites-blog/" class="hover:text-violet-500 transition-colors">Sprites</a>
          <a href="/infra-log/" class="hover:text-violet-500 transition-colors">Infra Log</a>
        </dd>
      </dl>
      <dl>
        <dt class="font-bold uppercase tracking-wider text-xs text-white mb-3">Resources</dt>
        <dd class="font-medium flex flex-col items-start">
          <a href="https://docs.fly.io" class="hover:text-violet-500 transition-colors">Docs</a>
          <a href="/customer-stories/" class="hover:text-violet-500 transition-colors">Customers</a>
          <a href="https://docs.fly.io/about/support" class="hover:text-violet-500 transition-colors">Support</a>
          <a href="/support/" class="hover:text-violet-500 transition-colors">Support Metrics</a>
          <a href="https://status.flyio.net/" class="hover:text-violet-500 transition-colors">
            Status
          </a>
        </dd>
      </dl>
      <dl>
        <dt class="font-bold uppercase tracking-wider text-xs text-white mb-3">Contact</dt>
        <dd class="font-medium flex flex-col items-start">
          <a href="https://github.com/superfly/" class="hover:text-violet-500 transition-colors">
            GitHub
          </a>
          <a href="https://twitter.com/flydotio" class="hover:text-violet-500 transition-colors">
            Twitter
          </a>
          <a href="https://community.fly.io/" class="hover:text-violet-500 transition-colors">
            Community
          </a>
        </dd>
      </dl>
      <dl>
        <dt class="font-bold uppercase tracking-wider text-xs text-white mb-3">Legal</dt>
        <dd class="font-medium flex flex-col items-start">
          <a href="/security/" class="hover:text-violet-500 transition-colors">Security</a>
          <a href="/legal/privacy-policy/" class="hover:text-violet-500 transition-colors">
            Privacy policy
          </a>
          <a href="/legal/terms-of-service/" class="hover:text-violet-500 transition-colors">
            Terms of service
          </a>
          <a href="/legal/acceptable-use-policy/" class="hover:text-violet-500 transition-colors">
            Acceptable Use Policy
          </a>

          <button id="footer-cookie-prefs" type="button" hidden class="text-left hover:text-violet-500 transition-colors">
            Cookie preferences
          </button>
        </dd>
      </dl>
    </div>
  </div>

  <div class="container mx-auto px-4 sm:px-6 lg:px-8 pb-10">
    <div class="border-navy-800 border-t pt-8 grid gap-6 md:grid-cols-2 md:items-center">
      <div>
        <p class="font-bold uppercase tracking-wider text-xs text-white mb-1">
          Sign up to the Fly.io Newsletter
        </p>
        <p class="mb-0">
          What we shipped, what we learned, like ... stuff you put in a newsletter.
          Get it monthly.
        </p>
      </div>
      <div data-email-capture-wrapper class="md:justify-self-end md:w-full md:max-w-md">
  <form action="/email-signups" method="post" class="flex flex-col gap-3" data-email-capture>
  
  <input name="_csrf_token" type="hidden" hidden value="JD93AWcrNjI4UHItAAJ1MB8bJ1l2FlYOgPCoSrAJne5z_e0HRSOh1A3V">
  
    <input type="hidden" name="list" value="newsletter">
    <input type="hidden" name="source" value="footer">
    <input type="hidden" name="return_to" value="/">

    
    <div class="hidden" aria-hidden="true">
      <label>
        Company <input type="text" name="company" tabindex="-1" autocomplete="off">
      </label>
    </div>

    

    
    <div class="flex gap-3 flex-col sm:flex-row sm:items-center">
      <label class="block sm:w-40">
        <span class="sr-only">Your name</span>
        <input type="text" name="name" class="block w-full rounded-lg border border-navy-700 bg-navy-900 px-3 py-2 text-sm text-white placeholder:text-navy-400 focus:border-violet-400 focus:outline-none focus:ring-2 focus:ring-violet-500/30" placeholder="Your name" required autocomplete="name">
      </label>
      <label class="block sm:flex-1">
        <span class="sr-only">Email address</span>
        <input type="email" name="email" class="block w-full rounded-lg border border-navy-700 bg-navy-900 px-3 py-2 text-sm text-white placeholder:text-navy-400 focus:border-violet-400 focus:outline-none focus:ring-2 focus:ring-violet-500/30" placeholder="you@example.com" required autocomplete="email" autocapitalize="off" autocorrect="off" spellcheck="false">
      </label>
      <button type="submit" class="shrink-0 rounded-lg bg-violet-600 px-4 py-2 font-medium text-sm text-white transition-colors hover:bg-violet-500">
        Subscribe
      </button>
    </div>
  
</form>

  <p data-email-capture-success class="hidden font-medium text-violet-300">
    You&#39;re subscribed. Look out for the next issue.
  </p>
</div>
    </div>
  </div>

  <p class="text-xs text-center mb-0">
    Copyright &copy;&nbsp;2026&nbsp;Fly.io
  </p>
</footer>
    
  </body>
</html>