CINXE.COM

Open Source - xyflow

<!DOCTYPE html><html class="__className_f35434" dir="ltr" lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/08c48d09be6639e0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/63429a2b6aa41def-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/8465cd5ac5565d9c-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/8e4fa9519f0b1748-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/346c8d13d90d8145.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e54dab27a5b3bf74.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/f18735e2513ff455.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/d60be7727a3ad5a8.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/cd984326a0ca424d.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-b6b46d0db14094f0.js"/><script src="/_next/static/chunks/2951bed2-431ffedda685dde3.js" async=""></script><script src="/_next/static/chunks/2947-0d79e3df1206f294.js" async=""></script><script src="/_next/static/chunks/main-app-ac68252352aab915.js" async=""></script><script src="/_next/static/chunks/7647-faeab8228a035449.js" async=""></script><script src="/_next/static/chunks/3219-0dba5540bace2c1b.js" async=""></script><script src="/_next/static/chunks/8602-0b9dae5b99f5f286.js" async=""></script><script src="/_next/static/chunks/3299-3e06dbfdac0dbdd7.js" async=""></script><script src="/_next/static/chunks/8171-058f8dc6723f5391.js" async=""></script><script src="/_next/static/chunks/app/(content-pages)/open-source/page-a0c398fc43bdc121.js" async=""></script><script src="/_next/static/chunks/d27283b4-10726a3834f6e260.js" async=""></script><script src="/_next/static/chunks/69debb3d-d663e77cf2014858.js" async=""></script><script src="/_next/static/chunks/1ea0f737-cd138e0f105c6296.js" async=""></script><script src="/_next/static/chunks/bf06e590-d8b7a60d98993ce1.js" async=""></script><script src="/_next/static/chunks/e1cb20ef-8b65f021308aac34.js" async=""></script><script src="/_next/static/chunks/6575d434-3e231a337f7ed3af.js" async=""></script><script src="/_next/static/chunks/eca16dfc-e4478ccf3b7c05d9.js" async=""></script><script src="/_next/static/chunks/8008-c0b74630ec439977.js" async=""></script><script src="/_next/static/chunks/8334-d5c4330fac37d212.js" async=""></script><script src="/_next/static/chunks/4311-efe9b109e5cb51b2.js" async=""></script><script src="/_next/static/chunks/6472-baeac0a607d64a41.js" async=""></script><script src="/_next/static/chunks/6246-7127c6fdf82d4c38.js" async=""></script><script src="/_next/static/chunks/app/layout-c71544cd5ffdc0cd.js" async=""></script><script src="/_next/static/chunks/app/not-found-83f018e5ce2baafc.js" async=""></script><meta name="next-size-adjust" content=""/><meta name="theme-color" media="(prefers-color-scheme: light)" content="rgb(250,250,250)"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="rgb(17,17,17)"/><title>Open Source - xyflow</title><meta name="description" content="At xyflow we&#x27;re committed to open source. We believe that the best way to build software is in the open."/><meta name="application-name" content="xyflow"/><meta name="generator" content="Next.js"/><meta name="keywords" content="xyflow,node-based UI,graph,diagram,workflow,react-flow,svelte-flow,react,svelte"/><meta name="robots" content="index,follow"/><link rel="canonical" href="https://xyflow.com/open-source"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="xyflow"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><meta property="og:title" content="Open Source - xyflow"/><meta property="og:description" content="At xyflow we&#x27;re committed to open source. We believe that the best way to build software is in the open."/><meta property="og:url" content="https://xyflow.com/open-source"/><meta property="og:site_name" content="xyflow"/><meta property="og:locale" content="en_US"/><meta property="og:image:type" content="image/jpeg"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="640"/><meta property="og:image" content="https://xyflow.com/opengraph-image.jpg?1a087ad6628a3c36"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="https://x.com/xyflowdev"/><meta name="twitter:creator" content="@xyflowdev"/><meta name="twitter:title" content="Open Source - xyflow"/><meta name="twitter:description" content="At xyflow we&#x27;re committed to open source. We believe that the best way to build software is in the open."/><meta name="twitter:image:type" content="image/jpeg"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="640"/><meta name="twitter:image" content="https://xyflow.com/opengraph-image.jpg?1a087ad6628a3c36"/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="256x256"/><link rel="icon" href="/icon.svg?243a142a0a787f15" type="image/svg+xml" sizes="any"/><link rel="apple-touch-icon" href="/apple-icon.png?73bbc5751dfb45ee" type="image/png" sizes="180x180"/><style>:root { --nextra-primary-hue: 333deg; --nextra-primary-saturation: 100%; --nextra-primary-lightness: 45%; --nextra-bg: 250,250,250; --nextra-content-width: 90rem; } .dark { --nextra-primary-hue: 333deg; --nextra-primary-saturation: 100%; --nextra-primary-lightness: 55%; --nextra-bg: 17,17,17; } ::selection { background: hsla(var(--nextra-primary-hue),var(--nextra-primary-saturation),var(--nextra-primary-lightness),.3); } html { background: rgb(var(--nextra-bg)); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><script>((e,t,n,r,i,o,a,s)=>{let l=document.documentElement,c=["light","dark"];function u(t){(Array.isArray(e)?e:[e]).forEach(e=>{let n="class"===e,r=n&&o?i.map(e=>o[e]||e):i;n?(l.classList.remove(...r),l.classList.add(o&&o[t]?o[t]:t)):l.setAttribute(e,t)}),s&&c.includes(t)&&(l.style.colorScheme=t)}if(r)u(r);else try{let e=localStorage.getItem(t)||n,r=a&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;u(r)}catch(e){}})("class","theme","light","light",["light","dark"],null,true,true)</script><a href="#nextra-skip-nav" class="nextra-skip-nav x:sr-only" type="button" data-headlessui-state="">Skip to Content</a><header class="nextra-navbar x:sticky x:top-0 x:z-30 x:w-full x:bg-transparent x:print:hidden x:max-md:[.nextra-banner:not([class$=hidden])~&amp;]:top-(--nextra-banner-height)"><div class="nextra-navbar-blur x:absolute x:-z-1 x:size-full nextra-border x:border-b x:backdrop-blur-md x:bg-nextra-bg/70"></div><nav style="height:var(--nextra-navbar-height)" class="x:mx-auto x:flex x:max-w-(--nextra-content-width) x:items-center x:gap-4 x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)] x:justify-end"><div class="x:flex x:items-center x:max-md:me-auto"><div class="flex space-x-2 items-center"><a class="flex space-x-2 items-center" href="/"><div class="text-primary h-9 w-9"><svg width="100%" height="100%" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M35 3H25C23.8954 3 23 3.89543 23 5V15C23 16.1046 23.8954 17 25 17H35C36.1046 17 37 16.1046 37 15V5C37 3.89543 36.1046 3 35 3Z" stroke-width="2" fill="none" stroke="currentColor" data-path="animation"></path><path d="M35 23H25C23.8954 23 23 23.8954 23 25V35C23 36.1046 23.8954 37 25 37H35C36.1046 37 37 36.1046 37 35V25C37 23.8954 36.1046 23 35 23Z" stroke="#1A192B" stroke-width="2"></path><path d="M15 23H5C3.89543 23 3 23.8954 3 25V35C3 36.1046 3.89543 37 5 37H15C16.1046 37 17 36.1046 17 35V25C17 23.8954 16.1046 23 15 23Z" stroke="#1A192B" stroke-width="2"></path><path d="M15 3H5C3.89543 3 3 3.89543 3 5V15C3 16.1046 3.89543 17 5 17H15C16.1046 17 17 16.1046 17 15V5C17 3.89543 16.1046 3 15 3Z" stroke="#1A192B" stroke-width="2"></path><path d="M17 13C18.6569 13 20 11.6569 20 10C20 8.34315 18.6569 7 17 7C15.3431 7 14 8.34315 14 10C14 11.6569 15.3431 13 17 13Z" fill="white"></path><path d="M23 13C24.6569 13 26 11.6569 26 10C26 8.34315 24.6569 7 23 7C21.3431 7 20 8.34315 20 10C20 11.6569 21.3431 13 23 13Z" fill="white"></path><path d="M30 20C31.6569 20 33 18.6569 33 17C33 15.3431 31.6569 14 30 14C28.3431 14 27 15.3431 27 17C27 18.6569 28.3431 20 30 20Z" fill="white"></path><path d="M30 26C31.6569 26 33 24.6569 33 23C33 21.3431 31.6569 20 30 20C28.3431 20 27 21.3431 27 23C27 24.6569 28.3431 26 30 26Z" fill="white"></path><path d="M17 33C18.6569 33 20 31.6569 20 30C20 28.3431 18.6569 27 17 27C15.3431 27 14 28.3431 14 30C14 31.6569 15.3431 33 17 33Z" fill="white"></path><path d="M23 33C24.6569 33 26 31.6569 26 30C26 28.3431 24.6569 27 23 27C21.3431 27 20 28.3431 20 30C20 31.6569 21.3431 33 23 33Z" fill="white"></path><path d="M30 25C31.1046 25 32 24.1046 32 23C32 21.8954 31.1046 21 30 21C28.8954 21 28 21.8954 28 23C28 24.1046 28.8954 25 30 25Z" fill="#1A192B"></path><path d="M17 32C18.1046 32 19 31.1046 19 30C19 28.8954 18.1046 28 17 28C15.8954 28 15 28.8954 15 30C15 31.1046 15.8954 32 17 32Z" fill="#1A192B"></path><path d="M23 32C24.1046 32 25 31.1046 25 30C25 28.8954 24.1046 28 23 28C21.8954 28 21 28.8954 21 30C21 31.1046 21.8954 32 23 32Z" fill="#1A192B"></path><path opacity="0.35" d="M22 9.5H18V10.5H22V9.5Z" fill="#1A192B"></path><path opacity="0.35" d="M29.5 17.5V21.5H30.5V17.5H29.5Z" fill="#1A192B"></path><path opacity="0.35" d="M22 29.5H18V30.5H22V29.5Z" fill="#1A192B"></path><path d="M17 12C18.1046 12 19 11.1046 19 10C19 8.89543 18.1046 8 17 8C15.8954 8 15 8.89543 15 10C15 11.1046 15.8954 12 17 12Z" fill="#1A192B"></path><path d="M23 12C24.1046 12 25 11.1046 25 10C25 8.89543 24.1046 8 23 8C21.8954 8 21 8.89543 21 10C21 11.1046 21.8954 12 23 12Z" fill="currentColor"></path><path d="M30 19C31.1046 19 32 18.1046 32 17C32 15.8954 31.1046 15 30 15C28.8954 15 28 15.8954 28 17C28 18.1046 28.8954 19 30 19Z" fill="currentColor"></path></svg></div><p class="font-black text-xl leading-none">xyflow</p></a><a class="max-md:hidden bg-primary rounded-full px-2 font-bold text-primary-foreground text-sm hover:opacity-80" href="/careers">hiring</a></div></div><div class="x:flex x:gap-4 x:overflow-x-auto nextra-scrollbar x:py-1.5 x:max-md:hidden x:me-auto"><a class="x:focus-visible:nextra-focus x:text-sm x:contrast-more:text-gray-700 x:contrast-more:dark:text-gray-100 x:whitespace-nowrap x:text-gray-600 x:hover:text-gray-800 x:dark:text-gray-400 x:dark:hover:text-gray-200 x:ring-inset x:transition-colors x:aria-[current]:font-medium x:aria-[current]:subpixel-antialiased x:aria-[current]:text-current" href="/blog">Blog</a><a class="x:focus-visible:nextra-focus x:text-sm x:contrast-more:text-gray-700 x:contrast-more:dark:text-gray-100 x:whitespace-nowrap x:text-gray-600 x:hover:text-gray-800 x:dark:text-gray-400 x:dark:hover:text-gray-200 x:ring-inset x:transition-colors x:aria-[current]:font-medium x:aria-[current]:subpixel-antialiased x:aria-[current]:text-current" href="/about">About Us</a><a class="x:focus-visible:nextra-focus x:text-sm x:contrast-more:text-gray-700 x:contrast-more:dark:text-gray-100 x:whitespace-nowrap x:text-gray-600 x:hover:text-gray-800 x:dark:text-gray-400 x:dark:hover:text-gray-200 x:ring-inset x:transition-colors x:aria-[current]:font-medium x:aria-[current]:subpixel-antialiased x:aria-[current]:text-current" aria-current="true" href="/open-source">Open Source</a><button class="x:text-sm x:contrast-more:text-gray-700 x:contrast-more:dark:text-gray-100 x:whitespace-nowrap x:text-gray-600 x:hover:text-gray-800 x:dark:text-gray-400 x:dark:hover:text-gray-200 x:ring-inset x:transition-colors x:items-center x:flex x:gap-1.5 x:cursor-pointer" id="headlessui-menu-button-:Rf1kulb:" type="button" aria-haspopup="menu" aria-expanded="false" data-headlessui-state="">Libraries<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="14" class="x:*:origin-center x:*:transition-transform x:*:rotate-90"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><a class="inline-flex items-center justify-center rounded-full text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background shadow-md font-bold bg-primary text-primary-foreground hover:bg-primary/80 py-2 h-9 px-6 shrink-0" href="/contact">Contact Us</a><button class="x:transition x:cursor-pointer nextra-hamburger x:md:hidden" aria-label="Menu" type="button" data-headlessui-state=""><svg viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" stroke-linecap="round" height="24" class=""><g><path d="M4 6h16"></path></g><path d="M4 12h16"></path><g><path d="M4 18h16"></path></g></svg></button></nav></header><aside class="nextra-mobile-nav x:flex x:flex-col x:fixed x:inset-0 x:pt-(--nextra-navbar-height) x:z-20 x:overscroll-contain x:[contain:layout_style] x:md:hidden x:[.nextra-banner:not([class$=hidden])~&amp;]:pt-[calc(var(--nextra-banner-height)+var(--nextra-navbar-height))] x:bg-nextra-bg x:[transform:translate3d(0,-100%,0)]"><ul class="x:grid x:gap-1 x:p-4 x:overflow-y-auto nextra-scrollbar nextra-mask"><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-500 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/blog">Blog</a></li><li class=""><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-500 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" href="/about">About Us</a></li><li class="active"><a class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:bg-primary-100 x:font-semibold x:text-primary-800 x:dark:bg-primary-400/10 x:dark:text-primary-600 x:contrast-more:border-primary-500!" href="/open-source">Open Source</a></li><li class="open"><button class="x:transition x:cursor-pointer x:items-center x:justify-between x:gap-2 x:text-start x:w-full x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-500 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50" type="button" data-headlessui-state="">Libraries<svg viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" height="18" class="x:shrink-0 x:rounded-sm x:p-0.5 x:hover:bg-gray-800/5 x:dark:hover:bg-gray-100/5 x:motion-reduce:*:transition-none x:*:origin-center x:*:transition-transform x:*:rtl:-rotate-180 x:*:ltr:rotate-90 x:*:rtl:-rotate-270"><path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="x:transform-gpu x:transition-all x:ease-in-out x:motion-reduce:transition-none x:opacity-100" style="transition-duration:500ms"><ul class="x:grid x:gap-1 x:relative x:before:absolute x:before:inset-y-1 x:before:w-px x:before:bg-gray-200 x:before:content-[&quot;&quot;] x:dark:before:bg-neutral-800 x:ps-3 x:before:start-0 x:pt-1 x:ms-3"><li class=""><a href="https://reactflow.dev" target="_blank" rel="noreferrer" class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-500 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50">React Flow<!-- --> <svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.7" viewBox="0 0 24 24" height="1em" class="x:inline x:align-baseline x:shrink-0"><path d="M7 17L17 7"></path><path d="M7 7h10v10"></path></svg></a></li><li class=""><a href="https://svelteflow.dev" target="_blank" rel="noreferrer" class="x:focus-visible:nextra-focus x:flex x:rounded x:px-2 x:py-1.5 x:text-sm x:transition-colors x:[word-break:break-word] x:cursor-pointer x:contrast-more:border x:text-gray-500 x:hover:bg-gray-100 x:hover:text-gray-900 x:dark:text-neutral-400 x:dark:hover:bg-primary-100/5 x:dark:hover:text-gray-50 x:contrast-more:text-gray-900 x:contrast-more:dark:text-gray-50 x:contrast-more:border-transparent x:contrast-more:hover:border-gray-900 x:contrast-more:dark:hover:border-gray-50">Svelte Flow<!-- --> <svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.7" viewBox="0 0 24 24" height="1em" class="x:inline x:align-baseline x:shrink-0"><path d="M7 17L17 7"></path><path d="M7 7h10v10"></path></svg></a></li></ul></div></li></ul></aside><main class="pt-10 lg:pt-14 2xl:pt-18 pb-24 mx-auto x:max-w-(--nextra-content-width) pl-[max(env(safe-area-inset-left),1.5rem)] pr-[max(env(safe-area-inset-right),1.5rem)]"><div><div class="relative z-10 max-w-3xl mx-auto"><div class="text-center"><h3 class="text-sm font-bold mb-6 flex items-center uppercase tracking-wider text-primary justify-center"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" class="inline-block w-6 h-6 mr-1"><path stroke-linecap="round" stroke-linejoin="round" d="M18 18.72a9.094 9.094 0 0 0 3.741-.479 3 3 0 0 0-4.682-2.72m.94 3.198.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0 1 12 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 0 1 6 18.719m12 0a5.971 5.971 0 0 0-.941-3.197m0 0A5.995 5.995 0 0 0 12 12.75a5.995 5.995 0 0 0-5.058 2.772m0 0a3 3 0 0 0-4.681 2.72 8.986 8.986 0 0 0 3.74.477m.94-3.197a5.971 5.971 0 0 0-.94 3.197M15 6.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm6 3a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Zm-13.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Z"></path></svg>Open Source</h3><h1 class="tracking-[-0.02rem] text-5xl lg:text-6xl mb-6 font-black">Open Source at xyflow</h1><p class="text-lg leading-7 mb-4 lg:mb-6 max-w-3xl mx-auto">How and why we keep xyflow transparent, free, and MIT licensed</p></div><div></div></div></div><div class="my-16 max-w-screen-md mx-auto mt-12 lg:my-12"><img alt="xyflow GitHub Star History. The red line keeps going up and to the right, from 2021 until now." loading="lazy" width="800" height="400" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=https%3A%2F%2Fapi.star-history.com%2Fsvg%3Frepos%3Dxyflow%2Fxyflow%26type%3DDate&amp;w=828&amp;q=75 1x, /_next/image?url=https%3A%2F%2Fapi.star-history.com%2Fsvg%3Frepos%3Dxyflow%2Fxyflow%26type%3DDate&amp;w=1920&amp;q=75 2x" src="/_next/image?url=https%3A%2F%2Fapi.star-history.com%2Fsvg%3Frepos%3Dxyflow%2Fxyflow%26type%3DDate&amp;w=1920&amp;q=75"/><h2 class="font-bold tracking-[-0.02rem] text-2xl lg:text-3xl mb-4 mt-14">Open source since the beginning</h2><p class="text-lg leading-8">We gave the React Flow library an MIT license as soon as we built it in 2019. We were lucky to see it organically grow from there, and as more people and organizations used it, we wanted to spend more time taking care of the library and its ecosystem. In 2022, we set up a business model to support our ongoing work on the library and put our agency-style work to the side to focus on the library full-time. Since then, we&#x27;ve been happy maintainers of one of the most popular node-based UI libraries.</p><p class="text-lg leading-8 mt-8">We&#x27;ve also released<!-- --> <a class="text-pink-500 text-lg " href="https://svelteflow.dev">Svelte Flow</a> <!-- -->and our<!-- --> <a class="text-pink-500 text-lg " href="https://github.com/xyflow/pro-platform/">Pro Platform</a> <!-- -->under an MIT License in the meantime, and you can expect the same from any projects in the future.</p><h2 class="font-bold tracking-[-0.02rem] text-2xl lg:text-3xl mb-4 mt-14">We&#x27;ll keep our software MIT Licensed forever</h2><p class="text-lg leading-8 mb-4">We chose the<!-- --> <a class="text-pink-500 text-lg " href="https://github.com/xyflow/xyflow/blob/main/LICENSE">MIT License</a> <!-- -->because we believe in Free and Open Source Software. Having this license means that anyone can use, repurpose, or resell our docs, our blog posts, or our library. We love that it allows anyone to use xyflow for their own projects, and we get to see people build things with xyflow that we never would have imagined. The MIT License also allows companies to easily use the library without having to hire a lawyer to interpret a custom license. We&#x27;ll keep our software MIT Licensed forever.</p><h2 class="font-bold tracking-[-0.02rem] text-2xl lg:text-3xl mb-4 mt-14">How we fund our work</h2><p class="text-lg leading-8">We need funding to pay for the time it takes to care for xyflow and the infrastructure around it. The way we do this is a thin-crust open-core model:</p><img alt="A diagram showing a circle with an outline. Inside the circle is the Free, Open Core, which contains Libraries, docs, examples, and discord. The thick outline of the circle is the Paid Crust, containing Pro examples, prioritized bug fixes, and email support." loading="lazy" width="1088" height="882" decoding="async" data-nimg="1" class="my-10 mx-auto lg:max-w-[544px] " style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 320 240&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAGCAMAAADJ2y/JAAAAFVBMVEX8+fv////73Or85O/77PPl5OfX2dwh5L6bAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAKklEQVR4nC3KyQnAMADEQO3l/ks2Cf6JQeAmkkjBSHhnfyRPFLut0DduXAnsAF44EonKAAAAAElFTkSuQmCC&#x27;/%3E%3C/svg%3E&quot;)" srcSet="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fthincrustopencore.2d16f9c0.png&amp;w=1200&amp;q=75 1x, /_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fthincrustopencore.2d16f9c0.png&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fthincrustopencore.2d16f9c0.png&amp;w=3840&amp;q=75"/><p class="text-lg leading-8 mb-4">We spend most of our time on the “core,” which is MIT Licensed (library, docs, github discussions, discord). We spend less time on the “crust,” which is the paid content and services (subscriber support, pro examples)– these are handled by our Terms of Use instead of the MIT License. This model allows us to decide the direction of the library (no investors), the core library remains free for everyone, and the financial burden of the library and ecosystem around it is placed on organizations who can afford to fund us (rather than individual developers).</p><a class="text-pink-500 underline text-lg" href="/blog/asking-for-money-for-open-source">More about how xyflow is funded</a><h2 class="font-bold tracking-[-0.02rem] text-2xl lg:text-3xl mb-4 mt-14">Supporting the open source ecosystem</h2><p class="text-lg leading-8 mb-4">We give back to the Open Source projects that we use ourselves on<!-- --> <a class="text-pink-500" href="https://opencollective.com/xyflow-org">Open Collective</a> <!-- -->and<!-- --> <a class="text-pink-500" href="https://github.com/xyflow">Github</a>.</p><p class="text-lg leading-8 mb-4">We offer free access to our Pro examples to non-commercial open source projects and students who use xyflow. If this is you, send us an email to info@xyflow.com from your student email, or send us a link to your open source project repository.</p><p class="text-lg leading-8 mb-4">We want to share our learnings whenever we can. We conducted a survey with React Flow developers in 2023, and we shared the results publicly in an<!-- --> <a class="text-pink-500 text-lg " href="https://reactflow.dev/developer-survey-2023">interactive React Flow app</a> <!-- -->and in a<!-- --> <a class="text-pink-500 text-lg " href="/blog/react-flow-developer-survey-2023">full-length blog post</a>.</p></div></main><footer class="print:bg-transparent py-12 lg:py-18 bg-black text-white"><div class="mx-auto lg:flex x:max-w-(--nextra-content-width) pl-[max(env(safe-area-inset-left),1.5rem)] pr-[max(env(safe-area-inset-right),1.5rem)]"><div class="lg:max-w-[300px] md:max-w-[600px] lg:mr-24 shrink-0"><p class="text-light text-base leading-relaxed mb-2">Hello from the xyflow team</p><div class="font-black text-3xl tracking-tight leading-none mb-6 lg:mb-10">xyflow is building and maintaining open source software for node-based UIs since 2019.</div></div><div class="grow"><div class="flex flex-col grow h-[100%]"><div class="grid grid-cols-2 lg:grid-cols-4 grid-gap-4"><div class="mt-4 lg:mt-0"><p class="text-base leading-relaxed text-light mb-2">Projects</p><a class="block" href="https://reactflow.dev/">React Flow</a><a class="block" href="https://svelteflow.dev/">Svelte Flow</a></div><div class="mt-4 lg:mt-0"><p class="text-base leading-relaxed text-light mb-2">Social</p><a class="block" href="https://discord.gg/RVmnytFmGW">Discord</a><a class="block" href="https://github.com/xyflow">Github</a><a class="block" href="https://x.com/xyflowdev">X / Twitter</a><a class="block" href="https://bsky.app/profile/xyflow.com">Bluesky</a></div><div class="mt-4 lg:mt-0"><p class="text-base leading-relaxed text-light mb-2">xyflow</p><a class="block" href="/blog">Blog</a><a class="block" href="/open-source">Open Source</a><a class="block" href="/about">About</a><a class="block" href="/contact">Contact</a><a class="block" href="/careers"><div class="flex items-center gap-1">Careers<!-- --> <span class="bg-primary-foreground text-primary rounded-full text-xs px-1 py-0.5">hiring</span></div></a></div><div class="mt-4 lg:mt-0"><p class="text-base leading-relaxed text-light mb-2">Legal</p><a class="block" href="/terms-of-use">Terms of Use</a><a class="block" href="/ethical-standards">Ethical Standards</a><a class="block" href="/privacy">Privacy Policy</a><a class="block" href="/imprint">Imprint</a></div></div><p class="text-light pt-6 text-sm mt-auto"><a href="mailto:info@xyflow.com">info@xyflow.com</a> — Copyright © <!-- -->2025<!-- --> <a href="https://webkid.io" target="_blank">webkid GmbH</a>. All rights reserved<!-- --> <!-- -->— website design by<!-- --> <a target="_blank" href="https://facumontanaro.com/">Facu Montanaro</a></p></div></div></div></footer><script src="/_next/static/chunks/webpack-b6b46d0db14094f0.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[72499,[],\"\"]\n4:I[2671,[],\"\"]\n5:I[50635,[\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"4867\",\"static/chunks/app/(content-pages)/open-source/page-a0c398fc43bdc121.js\"],\"Hero\"]\n6:I[82135,[\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"4867\",\"static/chunks/app/(content-pages)/open-source/page-a0c398fc43bdc121.js\"],\"Image\"]\n7:I[21962,[\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"4867\",\"static/chunks/app/(content-pages)/open-source/page-a0c398fc43bdc121.js\"],\"\"]\n8:I[22520,[],\"OutletBoundary\"]\na:I[22520,[],\"MetadataBoundary\"]\nc:I[22520,[],\"ViewportBoundary\"]\ne:I[99878,[],\"\"]\n:HL[\"/_next/static/media/08c48d09be6639e0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/63429a2b6aa41def-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/8465cd5ac5565d9c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/8e4fa9519f0b1748-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/346c8d13d90d8145.css\",\"style\"]\n:HL[\"/_next/static/css/e54dab27a5b3bf74.css\",\"style\"]\n:HL[\"/_next/static/css/f18735e2513ff455.css\",\"style\"]\n:HL[\"/_next/static/css/d60be7727a3ad5a8.css\",\"style\"]\n:HL[\"/_next/static/css/cd984326a0ca424d.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"3iQnSvC5XIPNewefNiaVl\",\"p\":\"\",\"c\":[\"\",\"open-source\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"(content-pages)\",{\"children\":[\"open-source\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/346c8d13d90d8145.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e54dab27a5b3bf74.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f18735e2513ff455.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d60be7727a3ad5a8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/cd984326a0ca424d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[\"(content-pages)\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(content-pages)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"open-source\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(content-pages)\",\"children\",\"open-source\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"main\",null,{\"className\":\"pt-10 lg:pt-14 2xl:pt-18 pb-24 mx-auto x:max-w-(--nextra-content-width) pl-[max(env(safe-area-inset-left),1.5rem)] pr-[max(env(safe-area-inset-right),1.5rem)]\",\"children\":[[\"$\",\"$L5\",null,{\"kicker\":\"Open Source\",\"kickerIcon\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":1.5,\"stroke\":\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\",\"ref\":\"$undefined\",\"aria-labelledby\":\"$undefined\",\"children\":[null,[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M18 18.72a9.094 9.094 0 0 0 3.741-.479 3 3 0 0 0-4.682-2.72m.94 3.198.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0 1 12 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 0 1 6 18.719m12 0a5.971 5.971 0 0 0-.941-3.197m0 0A5.995 5.995 0 0 0 12 12.75a5.995 5.995 0 0 0-5.058 2.772m0 0a3 3 0 0 0-4.681 2.72 8.986 8.986 0 0 0 3.74.477m.94-3.197a5.971 5.971 0 0 0-.94 3.197M15 6.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm6 3a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Zm-13.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Z\"}]]}],\"title\":\"Open Source at xyflow\",\"subtitle\":\"How and why we keep xyflow transparent, free, and MIT licensed\",\"align\":\"center\"}],[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"className\":\"my-16 max-w-screen-md mx-auto mt-12 lg:my-12\",\"children\":[[\"$\",\"$L6\",null,{\"src\":\"https://api.star-history.com/svg?repos=xyflow/xyflow\u0026type=Date\",\"alt\":\"xyflow GitHub Star History. The red line keeps going up and to the right, from 2021 until now.\",\"width\":800,\"height\":400}],[\"$\",\"h2\",null,{\"className\":\"font-bold tracking-[-0.02rem] text-2xl lg:text-3xl mb-4 mt-14\",\"ref\":\"$undefined\",\"children\":\"Open source since the beginning\"}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-8\",\"ref\":\"$undefined\",\"children\":\"We gave the React Flow library an MIT license as soon as we built it in 2019. We were lucky to see it organically grow from there, and as more people and organizations used it, we wanted to spend more time taking care of the library and its ecosystem. In 2022, we set up a business model to support our ongoing work on the library and put our agency-style work to the side to focus on the library full-time. Since then, we've been happy maintainers of one of the most popular node-based UI libraries.\"}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-8 mt-8\",\"ref\":\"$undefined\",\"children\":[\"We've also released\",\" \",[\"$\",\"$L7\",null,{\"href\":\"https://svelteflow.dev\",\"className\":\"text-pink-500 text-lg \",\"children\":\"Svelte Flow\"}],\" \",\"and our\",\" \",[\"$\",\"$L7\",null,{\"href\":\"https://github.com/xyflow/pro-platform/\",\"className\":\"text-pink-500 text-lg \",\"children\":\"Pro Platform\"}],\" \",\"under an MIT License in the meantime, and you can expect the same from any projects in the future.\"]}],[\"$\",\"h2\",null,{\"className\":\"font-bold tracking-[-0.02rem] text-2xl lg:text-3xl mb-4 mt-14\",\"ref\":\"$undefined\",\"children\":\"We'll keep our software MIT Licensed forever\"}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-8 mb-4\",\"ref\":\"$undefined\",\"children\":[\"We chose the\",\" \",[\"$\",\"$L7\",null,{\"href\":\"https://github.com/xyflow/xyflow/blob/main/LICENSE\",\"className\":\"text-pink-500 text-lg \",\"children\":\"MIT License\"}],\" \",\"because we believe in Free and Open Source Software. Having this license means that anyone can use, repurpose, or resell our docs, our blog posts, or our library. We love that it allows anyone to use xyflow for their own projects, and we get to see people build things with xyflow that we never would have imagined. The MIT License also allows companies to easily use the library without having to hire a lawyer to interpret a custom license. We'll keep our software MIT Licensed forever.\"]}],[\"$\",\"h2\",null,{\"className\":\"font-bold tracking-[-0.02rem] text-2xl lg:text-3xl mb-4 mt-14\",\"ref\":\"$undefined\",\"children\":\"How we fund our work\"}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-8\",\"ref\":\"$undefined\",\"children\":\"We need funding to pay for the time it takes to care for xyflow and the infrastructure around it. The way we do this is a thin-crust open-core model:\"}],[\"$\",\"$L6\",null,{\"src\":{\"src\":\"/_next/static/media/thincrustopencore.2d16f9c0.png\",\"height\":882,\"width\":1088,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAGCAMAAADJ2y/JAAAAFVBMVEX8+fv////73Or85O/77PPl5OfX2dwh5L6bAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAKklEQVR4nC3KyQnAMADEQO3l/ks2Cf6JQeAmkkjBSHhnfyRPFLut0DduXAnsAF44EonKAAAAAElFTkSuQmCC\",\"blurWidth\":8,\"blurHeight\":6},\"alt\":\"A diagram showing a circle with an outline. Inside the circle is the Free, Open Core, which contains Libraries, docs, examples, and discord. The thick outline of the circle is the Paid Crust, containing Pro examples, prioritized bug fixes, and email support.\",\"placeholder\":\"blur\",\"className\":\"my-10 mx-auto lg:max-w-[544px] \"}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-8 mb-4\",\"ref\":\"$undefined\",\"children\":\"We spend most of our time on the “core,” which is MIT Licensed (library, docs, github discussions, discord). We spend less time on the “crust,” which is the paid content and services (subscriber support, pro examples)– these are handled by our Terms of Use instead of the MIT License. This model allows us to decide the direction of the library (no investors), the core library remains free for everyone, and the financial burden of the library and ecosystem around it is placed on organizations who can afford to fund us (rather than individual developers).\"}],[\"$\",\"$L7\",null,{\"href\":\"/blog/asking-for-money-for-open-source\",\"className\":\"text-pink-500 underline text-lg\",\"children\":\"More about how xyflow is funded\"}],[\"$\",\"h2\",null,{\"className\":\"font-bold tracking-[-0.02rem] text-2xl lg:text-3xl mb-4 mt-14\",\"ref\":\"$undefined\",\"children\":\"Supporting the open source ecosystem\"}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-8 mb-4\",\"ref\":\"$undefined\",\"children\":[\"We give back to the Open Source projects that we use ourselves on\",\" \",[\"$\",\"$L7\",null,{\"href\":\"https://opencollective.com/xyflow-org\",\"className\":\"text-pink-500\",\"children\":\"Open Collective\"}],\" \",\"and\",\" \",[\"$\",\"$L7\",null,{\"href\":\"https://github.com/xyflow\",\"className\":\"text-pink-500\",\"children\":\"Github\"}],\".\"]}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-8 mb-4\",\"ref\":\"$undefined\",\"children\":\"We offer free access to our Pro examples to non-commercial open source projects and students who use xyflow. If this is you, send us an email to info@xyflow.com from your student email, or send us a link to your open source project repository.\"}],[\"$\",\"p\",null,{\"className\":\"text-lg leading-8 mb-4\",\"ref\":\"$undefined\",\"children\":[\"We want to share our learnings whenever we can. We conducted a survey with React Flow developers in 2023, and we shared the results publicly in an\",\" \",[\"$\",\"$L7\",null,{\"href\":\"https://reactflow.dev/developer-survey-2023\",\"className\":\"text-pink-500 text-lg \",\"children\":\"interactive React Flow app\"}],\" \",\"and in a\",\" \",[\"$\",\"$L7\",null,{\"href\":\"/blog/react-flow-developer-survey-2023\",\"className\":\"text-pink-500 text-lg \",\"children\":\"full-length blog post\"}],\".\"]}]]}]]}],null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"X9eAIZBGGaMHVfPNiuldE\",{\"children\":[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:I[51555,[\"9259\",\"static/chunks/d27283b4-10726a3834f6e260.js\",\"6796\",\"static/chunks/69debb3d-d663e77cf2014858.js\",\"7281\",\"static/chunks/1ea0f737-cd138e0f105c6296.js\",\"7440\",\"static/chunks/bf06e590-d8b7a60d98993ce1.js\",\"8589\",\"static/chunks/e1cb20ef-8b65f021308aac34.js\",\"7585\",\"static/chunks/6575d434-3e231a337f7ed3af.js\",\"9006\",\"static/chunks/eca16dfc-e4478ccf3b7c05d9.js\",\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8008\",\"static/chunks/8008-c0b74630ec439977.js\",\"8334\",\"static/chunks/8334-d5c4330fac37d212.js\",\"4311\",\"static/chunks/4311-efe9b109e5cb51b2.js\",\"6472\",\"static/chunks/6472-baeac0a607d64a41.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"6246\",\"static/chunks/6246-7127c6fdf82d4c38.js\",\"7177\",\"static/chunks/app/layout-c71544cd5ffdc0cd.js\"],\"Html\"]\n10:I[75356,[\"6796\",\"static/chunks/69debb3d-d663e77cf2014858.js\",\"7281\",\"static/chunks/1ea0f737-cd138e0f105c6296.js\",\"7440\",\"static/chunks/bf06e590-d8b7a60d98993ce1.js\",\"8589\",\"static/chunks/e1cb20ef-8b65f021308aac34.js\",\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8334\",\"static/chunks/8334-d5c4330fac37d212.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"6246\",\"static/chunks/6246-7127c6fdf82d4c38.js\",\"4345\",\"static/chunks/app/not-found-83f018e5ce2baafc.js\"],\"Fathom\"]\n2:[\"$\",\"$Lf\",null,{\"children\":[[\"$\",\"head\",null,{\"children\":[\"$undefined\",[\"$\",\"style\",null,{\"children\":\":root {\\n --nextra-primary-hue: 333deg;\\n --nextra-primary-saturation: 100%;\\n --nextra-primary-lightness: 45%;\\n --nextra-bg: 250,250,250;\\n --nextra-content-width: 90rem;\\n}\\n.dark {\\n --nextra-primary-hue: 333deg;\\n --nextra-primary-saturation: 100%;\\n --nextra-primary-lightness: 55%;\\n --nextra-bg: 17,17,17;\\n}\\n::selection {\\n background: hsla(var(--nextra-primary-hue),var(--nextra-p"])</script><script>self.__next_f.push([1,"rimary-saturation),var(--nextra-primary-lightness),.3);\\n}\\nhtml {\\n background: rgb(var(--nextra-bg));\\n}\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"rgb(250,250,250)\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"rgb(17,17,17)\"}],\"$undefined\"]}],[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L10\",null,{\"id\":\"JQTCQNLV\"}],\"$L11\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:I[29812,[\"9259\",\"static/chunks/d27283b4-10726a3834f6e260.js\",\"6796\",\"static/chunks/69debb3d-d663e77cf2014858.js\",\"7281\",\"static/chunks/1ea0f737-cd138e0f105c6296.js\",\"7440\",\"static/chunks/bf06e590-d8b7a60d98993ce1.js\",\"8589\",\"static/chunks/e1cb20ef-8b65f021308aac34.js\",\"7585\",\"static/chunks/6575d434-3e231a337f7ed3af.js\",\"9006\",\"static/chunks/eca16dfc-e4478ccf3b7c05d9.js\",\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8008\",\"static/chunks/8008-c0b74630ec439977.js\",\"8334\",\"static/chunks/8334-d5c4330fac37d212.js\",\"4311\",\"static/chunks/4311-efe9b109e5cb51b2.js\",\"6472\",\"static/chunks/6472-baeac0a607d64a41.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"6246\",\"static/chunks/6246-7127c6fdf82d4c38.js\",\"7177\",\"static/chunks/app/layout-c71544cd5ffdc0cd.js\"],\"ThemeConfigProvider\"]\n13:I[18246,[\"9259\",\"static/chunks/d27283b4-10726a3834f6e260.js\",\"6796\",\"static/chunks/69debb3d-d663e77cf2014858.js\",\"7281\",\"static/chunks/1ea0f737-cd138e0f105c6296.js\",\"7440\",\"static/chunks/bf06e590-d8b7a60d98993ce1.js\",\"8589\",\"static/chunks/e1cb20ef-8b65f021308aac34.js\",\"7585\",\"static/chunks/6575d434-3e231a337f7ed3af.js\",\"9006\",\"static/chunks/eca16dfc-e4478ccf3b7c05d9.js\",\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8008\",\"static/chunks/8008-c0b74630ec439977.js\",\"8334\",\"static/chunks/8334-d5c4330fac37d212.js\",\"4311\",\"static/chunks/4311-efe9b109e5cb51b2.js\",\"6472\",\"static/chunks/6472-baeac0a607d64a41.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"6246\",\"static/chunks/6246-7127c6fdf82d4c38.js\",\"7177\",\"static/chunks/app/layout-c71544cd5ffdc0cd.js\"],\"LastUpdated\"]\n14:I[48855,[\"9259\",\"static/chunks/d27283b4-10726a3834f6e260.js\",\"6796\",\"static/chunks/69debb3d-d663e77cf2014858.js\",\"7281\",\"static/chunks/1ea0f737-cd138e0f105c6296.js\",\"7440\",\"static/chunk"])</script><script>self.__next_f.push([1,"s/bf06e590-d8b7a60d98993ce1.js\",\"8589\",\"static/chunks/e1cb20ef-8b65f021308aac34.js\",\"7585\",\"static/chunks/6575d434-3e231a337f7ed3af.js\",\"9006\",\"static/chunks/eca16dfc-e4478ccf3b7c05d9.js\",\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8008\",\"static/chunks/8008-c0b74630ec439977.js\",\"8334\",\"static/chunks/8334-d5c4330fac37d212.js\",\"4311\",\"static/chunks/4311-efe9b109e5cb51b2.js\",\"6472\",\"static/chunks/6472-baeac0a607d64a41.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"6246\",\"static/chunks/6246-7127c6fdf82d4c38.js\",\"7177\",\"static/chunks/app/layout-c71544cd5ffdc0cd.js\"],\"ThemeProvider\"]\n15:I[16368,[\"9259\",\"static/chunks/d27283b4-10726a3834f6e260.js\",\"6796\",\"static/chunks/69debb3d-d663e77cf2014858.js\",\"7281\",\"static/chunks/1ea0f737-cd138e0f105c6296.js\",\"7440\",\"static/chunks/bf06e590-d8b7a60d98993ce1.js\",\"8589\",\"static/chunks/e1cb20ef-8b65f021308aac34.js\",\"7585\",\"static/chunks/6575d434-3e231a337f7ed3af.js\",\"9006\",\"static/chunks/eca16dfc-e4478ccf3b7c05d9.js\",\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8008\",\"static/chunks/8008-c0b74630ec439977.js\",\"8334\",\"static/chunks/8334-d5c4330fac37d212.js\",\"4311\",\"static/chunks/4311-efe9b109e5cb51b2.js\",\"6472\",\"static/chunks/6472-baeac0a607d64a41.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"6246\",\"static/chunks/6246-7127c6fdf82d4c38.js\",\"7177\",\"static/chunks/app/layout-c71544cd5ffdc0cd.js\"],\"SkipNavLink\"]\n16:I[23922,[\"9259\",\"static/chunks/d27283b4-10726a3834f6e260.js\",\"6796\",\"static/chunks/69debb3d-d663e77cf2014858.js\",\"7281\",\"static/chunks/1ea0f737-cd138e0f105c6296.js\",\"7440\",\"static/chunks/bf06e590-d8b7a60d98993ce1.js\",\"8589\",\"static/chunks/e1cb20ef-8b65f021308aac34.js\",\"7585\",\"static/chunks/6575d434-3e231a337f7ed3af.js\",\"9006\",\"static/chunks/eca16dfc-e4478ccf3b7c05d9.js\",\"7647\""])</script><script>self.__next_f.push([1,",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8008\",\"static/chunks/8008-c0b74630ec439977.js\",\"8334\",\"static/chunks/8334-d5c4330fac37d212.js\",\"4311\",\"static/chunks/4311-efe9b109e5cb51b2.js\",\"6472\",\"static/chunks/6472-baeac0a607d64a41.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"6246\",\"static/chunks/6246-7127c6fdf82d4c38.js\",\"7177\",\"static/chunks/app/layout-c71544cd5ffdc0cd.js\"],\"ConfigProvider\"]\n17:I[27774,[\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"4867\",\"static/chunks/app/(content-pages)/open-source/page-a0c398fc43bdc121.js\"],\"Logo\"]\n18:I[68027,[\"9259\",\"static/chunks/d27283b4-10726a3834f6e260.js\",\"6796\",\"static/chunks/69debb3d-d663e77cf2014858.js\",\"7281\",\"static/chunks/1ea0f737-cd138e0f105c6296.js\",\"7440\",\"static/chunks/bf06e590-d8b7a60d98993ce1.js\",\"8589\",\"static/chunks/e1cb20ef-8b65f021308aac34.js\",\"7585\",\"static/chunks/6575d434-3e231a337f7ed3af.js\",\"9006\",\"static/chunks/eca16dfc-e4478ccf3b7c05d9.js\",\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8008\",\"static/chunks/8008-c0b74630ec439977.js\",\"8334\",\"static/chunks/8334-d5c4330fac37d212.js\",\"4311\",\"static/chunks/4311-efe9b109e5cb51b2.js\",\"6472\",\"static/chunks/6472-baeac0a607d64a41.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"6246\",\"static/chunks/6246-7127c6fdf82d4c38.js\",\"7177\",\"static/chunks/app/layout-c71544cd5ffdc0cd.js\"],\"ClientNavbar\"]\n19:I[96876,[\"9259\",\"static/chunks/d27283b4-10726a3834f6e260.js\",\"6796\",\"static/chunks/69debb3d-d663e77cf2014858.js\",\"7281\",\"static/chunks/1ea0f737-cd138e0f105c6296.js\",\"7440\",\"static/chunks/bf06e590-d8b7a60d98993ce1.js\",\"8589\",\"stati"])</script><script>self.__next_f.push([1,"c/chunks/e1cb20ef-8b65f021308aac34.js\",\"7585\",\"static/chunks/6575d434-3e231a337f7ed3af.js\",\"9006\",\"static/chunks/eca16dfc-e4478ccf3b7c05d9.js\",\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8008\",\"static/chunks/8008-c0b74630ec439977.js\",\"8334\",\"static/chunks/8334-d5c4330fac37d212.js\",\"4311\",\"static/chunks/4311-efe9b109e5cb51b2.js\",\"6472\",\"static/chunks/6472-baeac0a607d64a41.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"6246\",\"static/chunks/6246-7127c6fdf82d4c38.js\",\"7177\",\"static/chunks/app/layout-c71544cd5ffdc0cd.js\"],\"MobileNav\"]\n1a:I[22156,[\"6796\",\"static/chunks/69debb3d-d663e77cf2014858.js\",\"7281\",\"static/chunks/1ea0f737-cd138e0f105c6296.js\",\"7440\",\"static/chunks/bf06e590-d8b7a60d98993ce1.js\",\"8589\",\"static/chunks/e1cb20ef-8b65f021308aac34.js\",\"7647\",\"static/chunks/7647-faeab8228a035449.js\",\"3219\",\"static/chunks/3219-0dba5540bace2c1b.js\",\"8602\",\"static/chunks/8602-0b9dae5b99f5f286.js\",\"3299\",\"static/chunks/3299-3e06dbfdac0dbdd7.js\",\"8334\",\"static/chunks/8334-d5c4330fac37d212.js\",\"8171\",\"static/chunks/8171-058f8dc6723f5391.js\",\"6246\",\"static/chunks/6246-7127c6fdf82d4c38.js\",\"4345\",\"static/chunks/app/not-found-83f018e5ce2baafc.js\"],\"NotFoundLayout\"]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"$L12\",null,{\"value\":{\"darkMode\":false,\"docsRepositoryBase\":\"https://github.com/xyflow/web/tree/main/sites/xyflow.com\",\"editLink\":\"Edit this page on GitHub\",\"feedback\":{\"content\":null,\"labels\":\"feedback\"},\"i18n\":[],\"lastUpdated\":[\"$\",\"$L13\",null,{}],\"navigation\":{\"next\":true,\"prev\":true},\"search\":null,\"sidebar\":{\"defaultMenuCollapseLevel\":2,\"defaultOpen\":true,\"toggleButton\":false},\"themeSwitch\":{\"dark\":\"Dark\",\"light\":\"Light\",\"system\":\"System\"},\"toc\":{\"backToTop\":null,\"extraContent\":[\"$\",\"a\",null,{\"href\":\"https://xyflow.com/contact\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"className\":\"x:focus-visible:nextra-focus xy-link-gray x:text-xs x:font-medium\",\"children\":[\"Question? Give us feedback\",[\" \",[\"$\",\"svg\",null,{\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":1.7,\"viewBox\":\"0 0 24 24\",\"height\":\"1em\",\"className\":\"x:inline x:align-baseline x:shrink-0\",\"children\":[[\"$\",\"path\",null,{\"d\":\"M7 17L17 7\"}],[\"$\",\"path\",null,{\"d\":\"M7 7h10v10\"}]]}]]]}],\"float\":true,\"title\":\"On This Page\"}},\"children\":[\"$\",\"$L14\",null,{\"attribute\":\"class\",\"defaultTheme\":\"light\",\"disableTransitionOnChange\":true,\"forcedTheme\":\"light\",\"children\":[[\"$\",\"$L15\",null,{}],\"$undefined\",[\"$\",\"$L16\",null,{\"pageMap\":[{\"data\":{\"*\":{\"type\":\"page\"},\"blog\":{\"theme\":{\"breadcrumb\":false,\"layout\":\"full\",\"pagination\":false,\"sidebar\":false,\"toc\":false}},\"about\":{\"title\":\"\"},\"open-source\":{\"title\":\"\"},\"libraries\":{\"type\":\"menu\",\"items\":{\"react-flow\":{\"href\":\"https://reactflow.dev\",\"title\":\"React Flow\"},\"svelte-flow\":{\"href\":\"https://svelteflow.dev\",\"title\":\"Svelte Flow\"}}},\"index\":{\"display\":\"hidden\"},\"careers\":{\"display\":\"hidden\"},\"contact\":{\"display\":\"hidden\"},\"ethical-standards\":{\"display\":\"hidden\",\"theme\":{\"toc\":false}},\"imprint\":{\"display\":\"hidden\"},\"privacy\":{\"display\":\"hidden\"},\"terms-of-use\":{\"display\":\"hidden\"}}},{\"name\":\"blog\",\"route\":\"/blog\",\"children\":[{\"data\":{\"*\":{\"display\":\"hidden\"}}},{\"name\":\"asking-for-money-for-open-source\",\"route\":\"/blog/asking-for-money-for-open-source\",\"frontMatter\":{\"title\":\"Dear Open Source: let’s do a better job of asking for money\",\"intro\":\"It’s common knowledge that many open source projects are underfunded. We think one reason for this is that the open source world is doing a bad job of asking for the money that it deserves. By telling the right organizations exactly why and how we want them to financially support our work, OSS projects can be compensated for more fairly, and result in a healthier open source ecosystem.\",\"date\":\"27 February 2023\",\"authors\":[\"john\"],\"tags\":[\"react-flow\",\"open source\"],\"image\":\"/img/blog/oss-pricing/donate-button-banner.png\",\"filePath\":\"src/content/asking-for-money-for-open-source.mdx\",\"timestamp\":1742924306000},\"title\":\"Dear Open Source: let’s do a better job of asking for money\"},{\"name\":\"react-flow-12-release\",\"route\":\"/blog/react-flow-12-release\",\"frontMatter\":{\"title\":\"React Flow 12 release\",\"htmlTitle\":\"React Flow 12 release\",\"description\":\"A new React Flow major release version 12 with server side rendering, computing flows, dark mode, better developer experience with TSDoc, and more\",\"intro\":\"The scoop on our latest release with Server side rendering, computing flows, dark mode, better developer experience with TSDoc, and more\",\"date\":\"9 July 2024\",\"authors\":[\"moritz\",\"john\"],\"tags\":[\"react-flow\"],\"image\":\"/img/blog/v11-reactflow-header.png\",\"filePath\":\"src/content/react-flow-12-release.mdx\",\"timestamp\":1742924306000},\"title\":\"React Flow 12 release\"},{\"name\":\"react-flow-components\",\"route\":\"/blog/react-flow-components\",\"frontMatter\":{\"title\":\"Introducing React Flow Components - powered by shadcn CLI\",\"description\":\"Some words\",\"date\":\"4 November 2024\",\"authors\":[\"hayleigh\"],\"tags\":[\"react-flow\",\"components\",\"update\"],\"image\":\"/img/blog/react-flow-components/header.png\",\"filePath\":\"src/content/react-flow-components.mdx\",\"timestamp\":1742924306000},\"title\":\"Introducing React Flow Components - powered by shadcn CLI\"},{\"name\":\"react-flow-developer-survey-2023\",\"route\":\"/blog/react-flow-developer-survey-2023\",\"frontMatter\":{\"title\":\"React Flow Developer Survey 2023 Results\",\"htmlTitle\":\"React Flow Developer Survey 2023 Results\",\"description\":\"With our end-of-the-year survey, we uncovered current pain points for React Flow users in our library and ecosystem, providing us a compass as we move forward with development.\",\"intro\":\"With our end-of-the-year survey, we uncovered current pain points for React Flow users in our library and ecosystem, providing us a compass as we move forward with development.\",\"date\":\"5 June 2024\",\"authors\":[\"john\",\"hayleigh\"],\"tags\":[\"react-flow\"],\"image\":\"/img/blog/v11-reactflow-header.png\",\"filePath\":\"src/content/react-flow-developer-survey-2023.mdx\",\"timestamp\":1742924306000},\"title\":\"React Flow Developer Survey 2023 Results\"},{\"name\":\"react-flow-fall-2022\",\"route\":\"/blog/react-flow-fall-2022\",\"frontMatter\":{\"title\":\"What’s new at React Flow - Fall 2022 🍂\",\"intro\":\"A dispatch straight from our desks about what’s happened in the last couple of months at React Flow: updates, news, and a peek behind-the-scenes.\",\"date\":\"1 November 2022\",\"authors\":[\"john\"],\"tags\":[\"react-flow\",\"update\"],\"image\":\"/img/blog/v10-header.png\",\"filePath\":\"src/content/react-flow-fall-2022.mdx\",\"timestamp\":1742924306000},\"title\":\"What’s new at React Flow - Fall 2022 🍂\"},{\"name\":\"react-flow-pro-platform-open-source\",\"route\":\"/blog/react-flow-pro-platform-open-source\",\"frontMatter\":{\"title\":\"React Flow Pro Platform goes open source\",\"intro\":\"We rebuilt the Pro Platform from the ground up and it is now open source. We hope some folks can take inspiration for their own OSS projects, and the pro subscribers enjoy the new look and features.\",\"date\":\"6 December 2023\",\"authors\":[\"christopher\",\"john\"],\"tags\":[\"react-flow\",\"open-source\"],\"image\":\"/img/blog/v11-reactflow-header.png\",\"filePath\":\"src/content/react-flow-pro-platform-open-source.mdx\",\"timestamp\":1742924306000},\"title\":\"React Flow Pro Platform goes open source\"},{\"name\":\"react-flow-v-11-5\",\"route\":\"/blog/react-flow-v-11-5\",\"frontMatter\":{\"title\":\"v11.5.0 Release\",\"intro\":\"Hello again! I am super excited to share the latest improvements of React Flow. The new auto pan features and connection radius makes it way easier to connect nodes and work with bigger flows. On top of that we improved the usability on touch devices.\",\"date\":\"26 January 2023\",\"authors\":[\"moritz\"],\"tags\":[\"react-flow\",\"update\"],\"image\":\"/img/blog/v10-header.png\",\"filePath\":\"src/content/react-flow-v-11-5.mdx\",\"timestamp\":1742924306000},\"title\":\"v11.5.0 Release\"},{\"name\":\"react-flow-v10\",\"route\":\"/blog/react-flow-v10\",\"frontMatter\":{\"title\":\"Releasing React Flow 10 and React Flow Pro\",\"intro\":\"Almost two years ago we open sourced React Flow that was built for our flow-based data processing tool Datablocks. Since then we invested more and more time in React Flow and it got a lot of traction (25k+ website visitors per month, 9k+ stars on Github, 1k+ Discord members, 100k+ weekly downloads on npm).\",\"date\":\"15 March 2022\",\"authors\":[\"moritz\",\"christopher\"],\"tags\":[\"react-flow\",\"release\"],\"image\":\"/img/blog/v10-header.png\",\"filePath\":\"src/content/react-flow-v10.mdx\",\"timestamp\":1742924306000},\"title\":\"Releasing React Flow 10 and React Flow Pro\"},{\"name\":\"react-flow-v11\",\"route\":\"/blog/react-flow-v11\",\"frontMatter\":{\"title\":\"React Flow 11 Release\",\"intro\":\"A lot has happened since we published our last blog post six months ago. We got our first pro subscribers, we hired John who helps us with the docs, communication and community and we are all working full time on React Flow 🥳. Today we are releasing a new major version with lots of new features and very few breaking changes.\",\"date\":\"28 September 2022\",\"authors\":[\"moritz\"],\"tags\":[\"react-flow\",\"release\"],\"filePath\":\"src/content/react-flow-v11.mdx\",\"timestamp\":1742924306000},\"title\":\"React Flow 11 Release\"},{\"name\":\"react-flow-winter-2022\",\"route\":\"/blog/react-flow-winter-2022\",\"frontMatter\":{\"title\":\"v11.4.0, design-tool components, an awesome list, and new examples\",\"intro\":\"Hey! We wanted to share an update about what we’ve been up to before we wrap ourselves up in blankets to hibernate until the new year (we’ll be shutting our laptops from today until January 2nd ⛄). Let’s get into what’s been up the past few months, what’s coming, and what we’re excited about right now.\",\"date\":\"19 December 2022\",\"authors\":[\"john\"],\"tags\":[\"react-flow\",\"update\"],\"image\":\"/img/blog/v10-header.png\",\"filePath\":\"src/content/react-flow-winter-2022.mdx\",\"timestamp\":1742924306000},\"title\":\"v11.4.0, design-tool components, an awesome list, and new examples\"},{\"name\":\"reactflow-npm-package-name\",\"route\":\"/blog/reactflow-npm-package-name\",\"frontMatter\":{\"title\":\"How we lost our slick new npm package name (and then got it back)\",\"intro\":\"In 2019 we started building a library for building node based UIs, and decided to call it “React Flow.” It’s a nice name, so of course “reactflow” and “react-flow” were already taken. The best option we had for us was “react-flow-renderer,” so we took what we could get.\",\"date\":\"16 November 2022\",\"authors\":[\"moritz\"],\"tags\":[\"react-flow\",\"npm\"],\"image\":\"/img/blog/v10-header.png\",\"filePath\":\"src/content/reactflow-npm-package-name.mdx\",\"timestamp\":1742924306000},\"title\":\"How we lost our slick new npm package name (and then got it back)\"},{\"name\":\"spring-update-2023\",\"route\":\"/blog/spring-update-2023\",\"frontMatter\":{\"title\":\"Team update – v11.6.0, Hayleigh is here, and talking about money\",\"intro\":\"To kick it off, v11.5.0 was released! 🎉 It comes with Auto pan, snappy connections, error handling, the NodeResizer component, and more goodies that I won’t get into here, because there’s already a write-up about the release by Moritz.\",\"date\":\"23 March 2023\",\"authors\":[\"john\"],\"tags\":[\"react-flow\",\"update\"],\"image\":\"/img/blog/v10-header.png\",\"filePath\":\"src/content/spring-update-2023.mdx\",\"timestamp\":1742924306000},\"title\":\"Team update – v11.6.0, Hayleigh is here, and talking about money\"},{\"name\":\"spring-update-2025\",\"route\":\"/blog/spring-update-2025\",\"frontMatter\":{\"title\":\"Flowing into Spring: Library, Docs \u0026 Community Updates\",\"intro\":\"A lot has happened in the last few months. In this update, we’ll give you an overview of what we’ve been working on—and what’s coming next.\",\"date\":\"24 March 2025\",\"authors\":[\"moritz\",\"abbey\"],\"tags\":[\"react-flow\",\"update\"],\"image\":\"/img/blog/v10-header.png\",\"filePath\":\"src/content/spring-update-2025.mdx\",\"timestamp\":1742924306000},\"title\":\"Flowing into Spring: Library, Docs \u0026 Community Updates\"},{\"name\":\"svelte-flow-alpha-xyflow\",\"route\":\"/blog/svelte-flow-alpha-xyflow\",\"frontMatter\":{\"title\":\"Team Update – Welcoming Peter, Svelte Flow alpha and v11.9.0\",\"intro\":\"Try out the Svelte Flow alpha, many fixed React Flow bugs, our name will change to “xyflow” soon, and we're welcoming Peter to the core team.\",\"date\":\"26 September 2023\",\"authors\":[\"john\"],\"tags\":[\"react-flow\",\"update\"],\"image\":\"/img/blog/v11-reactflow-header.png\",\"filePath\":\"src/content/svelte-flow-alpha-xyflow.mdx\",\"timestamp\":1742924306000},\"title\":\"Team Update – Welcoming Peter, Svelte Flow alpha and v11.9.0\"},{\"name\":\"svelte-flow-launch\",\"route\":\"/blog/svelte-flow-launch\",\"frontMatter\":{\"title\":\"Svelte Flow – a library for rendering interactive node-based UIs\",\"intro\":\"Today we are excited to launch Svelte Flow, a library for creating workflow builders, database visualizers, data processing tools, and more.\",\"date\":\"1 November 2023\",\"authors\":[\"john\"],\"tags\":[\"react-flow\",\"update\"],\"image\":\"/img/blog/v11-reactflow-header.png\",\"filePath\":\"src/content/svelte-flow-launch.mdx\",\"timestamp\":1742924306000},\"title\":\"Svelte Flow – a library for rendering interactive node-based UIs\"},{\"name\":\"update-react-flow-12-svelte-flow-1\",\"route\":\"/blog/update-react-flow-12-svelte-flow-1\",\"frontMatter\":{\"title\":\"Team Update – React Flow 12, Svelte Flow for Svelte 5, editable edges\",\"intro\":\"Let’s get into React Flow 12, Svelte Flow 1.0.0 in Svelte 5, a user survey, editable edges, and investigating our team’s working rhythm.\",\"date\":\"29 April 2024\",\"authors\":[\"john\"],\"tags\":[\"update\"],\"image\":\"/img/blog/v11-reactflow-header.png\",\"filePath\":\"src/content/update-react-flow-12-svelte-flow-1.mdx\",\"timestamp\":1742924306000},\"title\":\"Team Update – React Flow 12, Svelte Flow for Svelte 5, editable edges\"},{\"name\":\"why-svelte-flow\",\"route\":\"/blog/why-svelte-flow\",\"frontMatter\":{\"title\":\"Why Svelte Flow?\",\"htmlTitle\":\"Why \u003cspan style=\\\"font-style: italic;\\\"\u003eSvelte\u003c/span\u003e Flow?\",\"intro\":\"We receive so many requests of people asking if React Flow will be ported to their favorite front-end framework, and we stuck with React until now.\",\"date\":\"15 November 2023\",\"authors\":[\"moritz\",\"john\"],\"tags\":[\"svelte-flow\"],\"image\":\"/img/blog/2023-why-svelte/svelteflow.png\",\"imageWidth\":1200,\"imageHeight\":640,\"filePath\":\"src/content/why-svelte-flow.mdx\",\"timestamp\":1742924306000},\"title\":\"Why Svelte Flow?\"}],\"frontMatter\":{\"asIndexPage\":true,\"title\":\"Blog\",\"description\":\"All the latest news and updates from React Flow and Svelte Flow\"},\"title\":\"Blog\"},{\"name\":\"about\",\"route\":\"/about\",\"frontMatter\":{\"title\":\"About Us\",\"description\":\"Get to know the team behind xyflow, React Flow, and Svelte Flow.\"},\"title\":\"About Us\"},{\"name\":\"open-source\",\"route\":\"/open-source\",\"frontMatter\":{\"title\":\"Open Source\",\"description\":\"At xyflow we're committed to open source. We believe that the best way to build software is in the open.\"},\"title\":\"Open Source\"},{\"name\":\"libraries\",\"type\":\"menu\",\"items\":\"$11:props:children:props:children:2:props:pageMap:0:data:libraries:items\",\"title\":\"Libraries\"},{\"name\":\"index\",\"route\":\"/\",\"frontMatter\":{\"title\":\"Node-Based UIs for React and Svelte\",\"description\":\"Powerful open source libraries for building node-based UIs with React or Svelte. Ready out-of-the-box and infinitely customizable.\"},\"title\":\"Node-Based UIs for React and Svelte\"},{\"name\":\"careers\",\"route\":\"/careers\",\"frontMatter\":{\"title\":\"Careers\",\"description\":\"Keep up to date with our open jobs and opportunities.\"},\"title\":\"Careers\"},{\"name\":\"contact\",\"route\":\"/contact\",\"frontMatter\":{\"title\":\"Contact Us\",\"description\":\"Got questions about xyflow or any of our libraries? Here's how to reach us.\"},\"title\":\"Contact Us\"},{\"name\":\"ethical-standards\",\"route\":\"/ethical-standards\",\"frontMatter\":{\"description\":\"Subscribers of our Pro platform must adhere to our ethical standards.\",\"title\":\"Ethical Standards\",\"filePath\":\"src/app/(content-pages)/ethical-standards/page.mdx\",\"timestamp\":1742924306000},\"title\":\"Ethical Standards\"},{\"name\":\"imprint\",\"route\":\"/imprint\",\"frontMatter\":{\"title\":\"Imprint\",\"filePath\":\"src/app/(content-pages)/imprint/page.mdx\",\"timestamp\":1742924306000},\"title\":\"Imprint\"},{\"name\":\"privacy\",\"route\":\"/privacy\",\"frontMatter\":{\"title\":\"Privacy Policy\",\"filePath\":\"src/app/(content-pages)/privacy/page.mdx\",\"timestamp\":1742924306000},\"title\":\"Privacy Policy\"},{\"name\":\"terms-of-use\",\"route\":\"/terms-of-use\",\"frontMatter\":{\"title\":\"Terms of Use\",\"filePath\":\"src/app/(content-pages)/terms-of-use/page.mdx\",\"timestamp\":1742924306000},\"title\":\"Terms of Use\"}],\"navbar\":[\"$\",\"header\",null,{\"className\":\"nextra-navbar x:sticky x:top-0 x:z-30 x:w-full x:bg-transparent x:print:hidden x:max-md:[.nextra-banner:not([class$=hidden])~\u0026]:top-(--nextra-banner-height)\",\"children\":[[\"$\",\"div\",null,{\"className\":\"nextra-navbar-blur x:absolute x:-z-1 x:size-full nextra-border x:border-b x:backdrop-blur-md x:bg-nextra-bg/70\"}],[\"$\",\"nav\",null,{\"style\":{\"height\":\"var(--nextra-navbar-height)\"},\"className\":\"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:items-center x:gap-4 x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)] x:justify-end\",\"children\":[[\"$\",\"div\",null,{\"className\":\"x:flex x:items-center x:max-md:me-auto\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex space-x-2 items-center\",\"children\":[[\"$\",\"$L7\",null,{\"className\":\"flex space-x-2 items-center\",\"href\":\"/\",\"children\":[[\"$\",\"$L17\",null,{\"className\":\"h-9 w-9\"}],[\"$\",\"p\",null,{\"className\":\"font-black text-xl leading-none\",\"ref\":\"$undefined\",\"children\":\"xyflow\"}]]}],[\"$\",\"$L7\",null,{\"className\":\"max-md:hidden bg-primary rounded-full px-2 font-bold text-primary-foreground text-sm hover:opacity-80\",\"href\":\"/careers\",\"children\":\"hiring\"}]]}]}],[\"$\",\"$L18\",null,{\"className\":\"x:me-auto\",\"children\":[\"$undefined\",\"$undefined\",[\"$\",\"$L7\",null,{\"className\":\"inline-flex items-center justify-center rounded-full text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background shadow-md font-bold bg-primary text-primary-foreground hover:bg-primary/80 py-2 h-9 px-6 shrink-0\",\"href\":\"/contact\",\"children\":\"Contact Us\",\"ref\":null}]]}]]}]]}],\"footer\":[\"$\",\"footer\",null,{\"className\":\"print:bg-transparent py-12 lg:py-18 bg-black text-white\",\"ref\":\"$undefined\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto lg:flex x:max-w-(--nextra-content-width) pl-[max(env(safe-area-inset-left),1.5rem)] pr-[max(env(safe-area-inset-right),1.5rem)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"lg:max-w-[300px] md:max-w-[600px] lg:mr-24 shrink-0\",\"children\":[[[\"$\",\"p\",null,{\"className\":\"text-light text-base leading-relaxed mb-2\",\"ref\":\"$undefined\",\"children\":\"Hello from the xyflow team\"}],[\"$\",\"div\",null,{\"className\":\"font-black text-3xl tracking-tight leading-none mb-6 lg:mb-10\",\"children\":\"xyflow is building and maintaining open source software for node-based UIs since 2019.\"}]],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"grow\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col grow h-[100%]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-cols-2 lg:grid-cols-4 grid-gap-4\",\"children\":[[\"$\",\"div\",\"Projects\",{\"className\":\"mt-4 lg:mt-0\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-base leading-relaxed text-light mb-2\",\"ref\":\"$undefined\",\"children\":\"Projects\"}],[[\"$\",\"$L7\",\"https://reactflow.dev/\",{\"href\":\"https://reactflow.dev/\",\"className\":\"block\",\"children\":\"React Flow\"}],[\"$\",\"$L7\",\"https://svelteflow.dev/\",{\"href\":\"https://svelteflow.dev/\",\"className\":\"block\",\"children\":\"Svelte Flow\"}]]]}],[\"$\",\"div\",\"Social\",{\"className\":\"mt-4 lg:mt-0\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-base leading-relaxed text-light mb-2\",\"ref\":\"$undefined\",\"children\":\"Social\"}],[[\"$\",\"$L7\",\"https://discord.gg/RVmnytFmGW\",{\"href\":\"https://discord.gg/RVmnytFmGW\",\"className\":\"block\",\"children\":\"Discord\"}],[\"$\",\"$L7\",\"https://github.com/xyflow\",{\"href\":\"https://github.com/xyflow\",\"className\":\"block\",\"children\":\"Github\"}],[\"$\",\"$L7\",\"https://x.com/xyflowdev\",{\"href\":\"https://x.com/xyflowdev\",\"className\":\"block\",\"children\":\"X / Twitter\"}],[\"$\",\"$L7\",\"https://bsky.app/profile/xyflow.com\",{\"href\":\"https://bsky.app/profile/xyflow.com\",\"className\":\"block\",\"children\":\"Bluesky\"}]]]}],[\"$\",\"div\",\"xyflow\",{\"className\":\"mt-4 lg:mt-0\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-base leading-relaxed text-light mb-2\",\"ref\":\"$undefined\",\"children\":\"xyflow\"}],[[\"$\",\"$L7\",\"https://xyflow.com/blog\",{\"href\":\"/blog\",\"className\":\"block\",\"children\":\"Blog\"}],[\"$\",\"$L7\",\"https://xyflow.com/open-source\",{\"href\":\"/open-source\",\"className\":\"block\",\"children\":\"Open Source\"}],[\"$\",\"$L7\",\"https://xyflow.com/about\",{\"href\":\"/about\",\"className\":\"block\",\"children\":\"About\"}],[\"$\",\"$L7\",\"https://xyflow.com/contact\",{\"href\":\"/contact\",\"className\":\"block\",\"children\":\"Contact\"}],[\"$\",\"$L7\",\"https://xyflow.com/careers\",{\"href\":\"/careers\",\"className\":\"block\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[\"Careers\",\" \",[\"$\",\"span\",null,{\"className\":\"bg-primary-foreground text-primary rounded-full text-xs px-1 py-0.5\",\"children\":\"hiring\"}]]}]}]]]}],[\"$\",\"div\",\"Legal\",{\"className\":\"mt-4 lg:mt-0\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-base leading-relaxed text-light mb-2\",\"ref\":\"$undefined\",\"children\":\"Legal\"}],[[\"$\",\"$L7\",\"https://xyflow.com/terms-of-use\",{\"href\":\"/terms-of-use\",\"className\":\"block\",\"children\":\"Terms of Use\"}],[\"$\",\"$L7\",\"https://xyflow.com/ethical-standards\",{\"href\":\"/ethical-standards\",\"className\":\"block\",\"children\":\"Ethical Standards\"}],[\"$\",\"$L7\",\"https://xyflow.com/privacy\",{\"href\":\"/privacy\",\"className\":\"block\",\"children\":\"Privacy Policy\"}],[\"$\",\"$L7\",\"https://xyflow.com/imprint\",{\"href\":\"/imprint\",\"className\":\"block\",\"children\":\"Imprint\"}]]]}]]}],[\"$\",\"p\",null,{\"className\":\"text-light pt-6 text-sm mt-auto\",\"ref\":\"$undefined\",\"children\":[[\"$\",\"a\",null,{\"href\":\"mailto:info@xyflow.com\",\"children\":\"info@xyflow.com\"}],\" — Copyright © \",2025,\" \",[\"$\",\"a\",null,{\"href\":\"https://webkid.io\",\"target\":\"_blank\",\"children\":\"webkid GmbH\"}],\". All rights reserved\",[\" \",\"— website design by\",\" \",[\"$\",\"a\",null,{\"target\":\"_blank\",\"href\":\"https://facumontanaro.com/\",\"children\":\"Facu Montanaro\"}]]]}]]}]}]]}]}],\"children\":[[\"$\",\"$L19\",null,{}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[],[\"$\",\"$L1a\",null,{}]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Open Source - xyflow\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"At xyflow we're committed to open source. We believe that the best way to build software is in the open.\"}],[\"$\",\"meta\",\"3\",{\"name\":\"application-name\",\"content\":\"xyflow\"}],[\"$\",\"meta\",\"4\",{\"name\":\"generator\",\"content\":\"Next.js\"}],[\"$\",\"meta\",\"5\",{\"name\":\"keywords\",\"content\":\"xyflow,node-based UI,graph,diagram,workflow,react-flow,svelte-flow,react,svelte\"}],[\"$\",\"meta\",\"6\",{\"name\":\"robots\",\"content\":\"index,follow\"}],[\"$\",\"link\",\"7\",{\"rel\":\"canonical\",\"href\":\"https://xyflow.com/open-source\"}],[\"$\",\"meta\",\"8\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"9\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"xyflow\"}],[\"$\",\"meta\",\"10\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:title\",\"content\":\"Open Source - xyflow\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:description\",\"content\":\"At xyflow we're committed to open source. We believe that the best way to build software is in the open.\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:url\",\"content\":\"https://xyflow.com/open-source\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:site_name\",\"content\":\"xyflow\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:type\",\"content\":\"image/jpeg\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image:height\",\"content\":\"640\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:image\",\"content\":\"https://xyflow.com/opengraph-image.jpg?1a087ad6628a3c36\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:site\",\"content\":\"https://x.com/xyflowdev\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:creator\",\"content\":\"@xyflowdev\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:title\",\"content\":\"Open Source - xyflow\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:description\",\"content\":\"At xyflow we're committed to open source. We believe that the best way to build software is in the open.\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:image:type\",\"content\":\"image/jpeg\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image:height\",\"content\":\"640\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image\",\"content\":\"https://xyflow.com/opengraph-image.jpg?1a087ad6628a3c36\"}],[\"$\",\"link\",\"30\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"256x256\"}],[\"$\",\"link\",\"31\",{\"rel\":\"icon\",\"href\":\"/icon.svg?243a142a0a787f15\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"link\",\"32\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?73bbc5751dfb45ee\",\"type\":\"image/png\",\"sizes\":\"180x180\"}]]\n"])</script><script>self.__next_f.push([1,"9:null\n"])</script></body></html>

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