1<!DOCTYPE html><html lang="en-GB" dir="ltr" data-astro-cid-ju4pidww><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="sitemap" href="/sitemap-index.xml"><!-- AI / LLM discovery feeds --><link rel="alternate" type="text/plain" title="llms.txt" href="/llms.txt"><!-- hreflang: UK-English primary, with x-default for search engines serving other locales --><link rel="alternate" hreflang="en-GB" href="https://zorinto.com/blog/"><link rel="alternate" hreflang="en" href="https://zorinto.com/blog/"><link rel="alternate" hreflang="x-default" href="https://zorinto.com/blog/"><link rel="icon" type="image/svg+xml" href="/favicons/favicon.svg"><link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16.png"><link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png"><link rel="mask-icon" href="/favicons/favicon.svg" color="#E67A2C"><link rel="manifest" href="/site.webmanifest"><meta name="theme-color" content="#0E0E0E"><meta name="application-name" content="Zorinto"><meta name="apple-mobile-web-app-title" content="Zorinto">
1<script>(function(){const defaultTheme = "system"; 2 3 function applyTheme(theme) { 4 if (theme === 'dark') { 5 document.documentElement.classList.add('dark'); 6 } else { 7 document.documentElement.classList.remove('dark'); 8 } 9 const matches = document.querySelectorAll('[data-aw-toggle-color-scheme] > input'); 10 11 if (matches && matches.length) { 12 matches.forEach((elem) => { 13 elem.checked = theme !== 'dark'; 14 }); 15 } 16 } 17 18 if ((defaultTheme && defaultTheme.endsWith(':only')) || (!localStorage.theme && defaultTheme !== 'system')) { 19 applyTheme(defaultTheme.replace(':only', '')); 20 } else if ( 21 localStorage.theme === 'dark' || 22 (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) 23 ) { 24 applyTheme('dark'); 25 } else { 26 applyTheme('light'); 27 } 28})();</script>
28<title>Blog â Zorinto</title> 29<meta name="description" content="Zorinto blog â technical insights on Astro, Ruby on Rails, Django, Laravel, n8n automation and web performance. Written by our UK engineering team."> 30<meta name="robots" content="index,follow"> 31<link rel="canonical" href="https://zorinto.com/blog/"> 32<meta property="og:title" content="Blog"> 33<meta property="og:description" content="Zorinto blog â technical insights on Astro, Ruby on Rails, Django, Laravel, n8n automation and web performance. Written by our UK engineering team."> 34<meta property="og:url" content="https://zorinto.com/blog/"> 35<meta property="og:type" content="blog"> 36<meta property="og:image" content="https://zorinto.com/_astro/default.DsPUVhda_Z1GBlud.jpg"> 37<meta property="og:image:width" content="1200"> 38<meta property="og:image:height" content="628"> 39 40<meta property="og:locale" content="en-GB"> 41<meta property="og:site_name" content="Zorinto - Web & Software Development (Astro, Rails, Django)"> 42<meta name="twitter:card" content="summary_large_image"> 43<meta name="twitter:site" content="@zorintohq"> 44<meta name="twitter:creator" content="@zorintohq"><!-- Enhanced SEO Meta Tags --><meta name="author" content="Zorinto"><!-- Structured Data --><!-- Additional SEO Meta Tags --><meta name="theme-color" content="#3b82f6"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><!-- Enhanced Open Graph Meta Tags --><meta property="og:locale" content="en-GB"><meta property="og:site_name" content="Zorinto - Web & Software Development (Astro, Rails, Django)"><!-- Enhanced Twitter Card Meta Tags --><meta name="twitter:site" content="@zorintohq"><meta name="google-site-verification" content="orcPxI47GSa-cRvY11tUe6iGg2IO_RPvnA1q95iEM3M">
44<script>window.dataLayer=window.dataLayer||[];window.gtag=window.gtag||function(){window.dataLayer.push(arguments)};gtag('consent','default',{ad_storage:'denied',ad_user_data:'denied',ad_personalization:'denied',analytics_storage:'denied',wait_for_update:500});</script>
vendor: 63 bytes, line 44
44<script async src="https://www.googletagmanager.com/gtag/js?id=
44G-FWD7NG5K08
vendor: 11 bytes, line 44
44"></script>
44<script>(function(){const id = "G-FWD7NG5K08"; 45 46 window.dataLayer = window.dataLayer || []; 47 function gtag() { 48 window.dataLayer.push(arguments); 49 } 50 gtag("js", new Date()); 51 gtag("config", id); 52})();</script>
52<!-- WebSite Schema -->
52<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Zorinto","alternateName":["Zorinto"],"url":"https://zorinto.com","description":"Expert web & software development (Astro, Ruby on Rails, Django) and business automation with n8n for teams in the UK, Europe, and worldwide.","publisher":{"@id":"https://zorinto.com/#organization"},"inLanguage":"en-GB"}</script>
52<script type="application/ld+json">{"@context":"https://schema.org","@type":["Organization","ProfessionalService"],"@id":"https://zorinto.com/#organization","name":"Zorinto","url":"https://zorinto.com","telephone":"+44 7404 979307","priceRange":"££","logo":{"@type":"ImageObject","url":"https://assets.zorinto.com/zorinto-logo.png","width":512,"height":512},"image":"https://assets.zorinto.com/zorinto-logo.png","description":"UK software development company building custom & bespoke software, SaaS & product engineering, enterprise systems & digital transformation, and cloud, DevOps, data & AI for SMEs and mid-market teams. Thames Valley HQ, UK-wide delivery.","address":{"@type":"PostalAddress","streetAddress":"268 Bath Road","addressLocality":"Slough","addressRegion":"Berkshire","postalCode":"SL1 4DX","addressCountry":"GB"},"geo":{"@type":"GeoCoordinates","latitude":51.519829,"longitude":-0.631649},"contactPoint":[{"@type":"ContactPoint","telephone":"+44 7404 979307","contactType":"customer service","areaServed":["GB","EU","Worldwide"],"availableLanguage":"English"},{"@type":"ContactPoint","email":"[email protected]","contactType":"sales"}],"sameAs":["https://www.linkedin.com/company/zorintohq","https://www.instagram.com/zorintohq","https://www.facebook.com/zorintohq","https://x.com/zorintohq","https://github.com/vimalhari"],"aggregateRating":{"@type":"AggregateRating","ratingValue":"5.0","reviewCount":9,"bestRating":"5","worstRating":"1"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Gaurav Shukla"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"reviewBody":"A great experience working with [Zorinto] on our new website. We struggled with our previous web developers, but the team at [Zorinto] listened to our needs and modernised our website. Beyond happy! Our team and clients love the new website and functionality. A nice modern approach and amazing results!"},{"@type":"Review","author":{"@type":"Person","name":"Shivani Talluri"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"reviewBody":"Good and prompt service and delivered the work on time."},{"@type":"Review","author":{"@type":"Person","name":"arunkumar RP"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"reviewBody":"Great service and support throughout the journey. Great effort."}],"foundingDate":"2024","founders":[{"@type":"Person","name":"Vimal Hari"}],"slogan":"Building Digital Excellence","knowsAbout":["Custom Software Development","Bespoke Software Development","SaaS Product Engineering","Enterprise Software","Digital Transformation","Cloud Engineering","DevOps","Data Engineering","Artificial Intelligence","Business Automation","n8n","Ruby on Rails","Django","Astro"],"makesOffer":[{"@type":"Offer","itemOffered":{"@type":"Service","name":"Custom & Bespoke Software Development","description":"Tailored business applications, internal tools and line-of-business systems."}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"SaaS & Product Engineering","description":"Building and scaling software products and platforms."}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Enterprise Systems & Digital Transformation","description":"Integrations, legacy modernisation and transformation for established teams."}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Cloud, DevOps, Data & AI","description":"Cloud migration, DevOps, data engineering, AI solutions and n8n automation."}}]}</script>
52<!-- Prevent flash of unstyled content â brand colors per mode --><!-- Comment the line below to disable View Transitions --><!-- <ViewTransitions /> --><link rel="stylesheet" href="/_astro/Layout.-3WMC2ko.css"><style>.logo-marquee[data-astro-cid-w622twah]{mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.logo-marquee__track[data-astro-cid-w622twah]{padding-right:3rem;animation:45s linear infinite logo-marquee-scroll}@media (width>=768px){.logo-marquee__track[data-astro-cid-w622twah]{padding-right:4rem}}.logo-marquee[data-astro-cid-w622twah]:hover .logo-marquee__track[data-astro-cid-w622twah]{animation-play-state:paused}@keyframes logo-marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.logo-badge[data-astro-cid-w622twah]{filter:grayscale();opacity:.6;transition:filter .3s,opacity .3s,transform .3s}.logo-badge[data-astro-cid-w622twah]:hover{filter:grayscale(0);opacity:1;transform:scale(1.1)}.dark .logo-badge[data-astro-cid-w622twah]{filter:grayscale()invert();opacity:.6}.dark .logo-badge[data-astro-cid-w622twah]:hover{filter:grayscale()invert();opacity:1;transform:scale(1.1)}@media (prefers-reduced-motion:reduce){.logo-marquee__track[data-astro-cid-w622twah]{flex-wrap:wrap;justify-content:center;gap:2rem;width:100%;padding-right:0;animation:none}.logo-marquee[data-astro-cid-w622twah]{mask-image:none}} 53</style></head><body class="antialiased text-default bg-page tracking-tight" data-astro-cid-ju4pidww> 54 55 <header class="sticky top-0 z-40 flex-none mx-auto w-full bg-bone dark:bg-carbon border-b border-fog dark:border-graphite transition-shadow duration-200 [&.scroll]:shadow-soft" data-aw-sticky-header="true" id="header"><div class="relative py-3 px-4 xl:px-6 mx-auto w-full xl:grid xl:grid-cols-[auto_1fr_auto] xl:items-center max-w-7xl"><!-- Logo --><div class="flex justify-between"><a class="flex items-center" href="/"><span class="inline-flex items-center"><img src="/_astro/zorinto-logo-primary-transparent.DiQz3wC1.png" alt="Zorinto" height="40" loading="eager" decoding="async" class="block dark:hidden w-auto" style="height:40px"><img src="/_astro/zorinto-logo-reversed.sJ6c7qVY.png" alt="" aria-hidden="true" height="40" loading="eager" decoding="async" class="hidden dark:block w-auto" style="height:40px"></span></a><div class="flex items-center xl:hidden"><button type="button" class="flex flex-col h-12 w-12 rounded justify-center items-center cursor-pointer group" aria-label="Toggle Menu" data-aw-toggle-menu><span class="sr-only">Toggle Menu</span> 56 <span aria-hidden="true" class="h-0.5 w-6 my-1 rounded-full bg-white transition ease transform duration-200 opacity-80 group-[.expanded]:rotate-45 group-[.expanded]:translate-y-2.5"></span> 57 <span aria-hidden="true" class="h-0.5 w-6 my-1 rounded-full bg-white transition ease transform duration-200 opacity-80 group-[.expanded]:opacity-0"></span> 58 <span aria-hidden="true" class="h-0.5 w-6 my-1 rounded-full bg-white transition ease transform duration-200 opacity-80 group-[.expanded]:-rotate-45 group-[.expanded]:-translate-y-2.5"></span> 59 </button></div></div><!-- Navigation --><nav class="items-center w-full xl:w-auto hidden xl:flex xl:mx-5 overflow-y-auto overflow-x-hidden xl:overflow-visible xl:justify-self-center" aria-label="Main navigation" id="header-nav"><ul class="flex flex-col xl:flex-row xl:self-center w-full xl:w-auto text-xl xl:text-[0.9rem] font-medium xl:justify-center xl:gap-0.5"><li class="dropdown group relative"><button type="button" class="dropdown-toggle w-full flex items-center justify-between gap-1 px-4 py-3 xl:py-2 rounded-lg hover:bg-primary-light transition-colors whitespace-nowrap cursor-pointer" aria-haspopup="true" aria-expanded="false"><span class="text-carbon dark:text-bone group-hover:text-link-accent transition-colors">Services</span><svg width="1em" height="1em" class="w-4 h-4 text-muted transition-transform duration-200" data-icon="tabler:chevron-down"><symbol id="ai:tabler:chevron-down" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></symbol><use href="#ai:tabler:chevron-down"></use> 60 </svg></button><ul class="dropdown-menu pl-4 xl:pl-0 font-medium xl:absolute xl:left-0 xl:top-full bg-transparent xl:bg-surface xl:shadow-xl xl:border xl:border-border xl:rounded-xl xl:min-w-[600px] xl:p-5 xl:grid xl:grid-cols-2 xl:gap-x-8 xl:gap-y-4"><li class="py-2 xl:py-0"><span class="block px-4 py-1 text-xs font-semibold uppercase tracking-wider text-muted mb-1 font-mono">Websites</span><ul class="space-y-0.5"><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/website-development/"><span>Website development</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/astro-site/"><span>Astro Websites</span><span class="inline-flex items-center rounded-full bg-pulse text-on-primary text-[10px] font-semibold uppercase tracking-wider px-1.5 py-0.5 leading-none font-mono">Popular</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/website-development/#wordpress-cms"><span>WordPress websites</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/wordpress-to-astro-migration/"><span>WordPress â Astro migration</span></a></li></ul></li><li class="py-2 xl:py-0"><span class="block px-4 py-1 text-xs font-semibold uppercase tracking-wider text-muted mb-1 font-mono">Apps</span><ul class="space-y-0.5"><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/software-development/"><span>Software development</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/mobile-app/"><span>Mobile Apps</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/laravel-development/"><span>Laravel Development</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/ruby-on-rails-development/"><span>Ruby on Rails Development</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/django-development/"><span>Django Development</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/nextjs-development/"><span>Next.js & React Development</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/saas-development/"><span>SaaS Development</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/laravel-rescue/"><span>Laravel Rescue</span></a></li></ul></li><li class="py-2 xl:py-0"><span class="block px-4 py-1 text-xs font-semibold uppercase tracking-wider text-muted mb-1 font-mono">Marketing</span><ul class="space-y-0.5"><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/digital-marketing/"><span>Digital Marketing</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/seo/"><span>SEO</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/free-seo-audit/"><span>Free SEO Audit</span><span class="inline-flex items-center rounded-full bg-pulse text-on-primary text-[10px] font-semibold uppercase tracking-wider px-1.5 py-0.5 leading-none font-mono">Free</span></a></li></ul></li><li class="py-2 xl:py-0"><span class="block px-4 py-1 text-xs font-semibold uppercase tracking-wider text-muted mb-1 font-mono">Operations</span><ul class="space-y-0.5"><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/business-automation/"><span>Business Automation (n8n)</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/business-intelligence/"><span>Business Intelligence</span></a></li><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/it-support/"><span>Managed IT Support</span></a></li></ul></li><li class="py-2 xl:py-0"><span class="block px-4 py-1 text-xs font-semibold uppercase tracking-wider text-muted mb-1 font-mono">Not sure where to start?</span><ul class="space-y-0.5"><li><a class="flex items-center gap-2 px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/contact/"><span>Get a free recommendation</span><span class="inline-flex items-center rounded-full bg-pulse text-on-primary text-[10px] font-semibold uppercase tracking-wider px-1.5 py-0.5 leading-none font-mono">Help</span></a></li></ul></li></ul></li><li class>
60<a class="block px-4 py-2 text-carbon dark:text-bone hover:text-link-accent rounded-lg hover:bg-primary-light transition-colors whitespace-nowrap" href="/case-studies/">Case Studies</a></li><li class><a class="block px-4 py-2 text-carbon dark:text-bone hover:text-link-accent rounded-lg hover:bg-primary-light transition-colors whitespace-nowrap" href="/pricing/">Pricing</a></li><li class><a class="block px-4 py-2 text-carbon dark:text-bone hover:text-link-accent rounded-lg hover:bg-primary-light transition-colors whitespace-nowrap" href="/blog/">Blog</a></li><li class="dropdown group relative"><button type="button" class="dropdown-toggle w-full flex items-center justify-between gap-1 px-4 py-3 xl:py-2 rounded-lg hover:bg-primary-light transition-colors whitespace-nowrap cursor-pointer" aria-haspopup="true" aria-expanded="false"><span class="text-carbon dark:text-bone group-hover:text-link-accent transition-colors">Company</span><svg width="1em" height="1em" viewBox="0 0 24 24" class="w-4 h-4 text-muted transition-transform duration-200" data-icon="tabler:chevron-down"><use href="#ai:tabler:chevron-down"></use> 61 </svg></button><ul class="dropdown-menu pl-4 xl:pl-0 font-medium xl:absolute xl:left-0 xl:top-full bg-transparent xl:bg-surface xl:shadow-xl xl:border xl:border-border xl:rounded-xl xl:min-w-[200px] xl:py-2"><li><a class="block px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/about/">About Us</a></li><li><a class="block px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/careers/">Careers</a></li><li><a class="block px-4 py-2 text-sm text-default hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" href="/locations/">Locations</a></li></ul></li></ul><div class="mt-6 xl:hidden px-4"><div class="grid gap-3"><a class="btn-secondary w-full justify-center py-3 px-5 text-base font-semibold rounded-lg" href="/free-seo-audit/">Free SEO Audit</a><a class="btn-primary w-full justify-center py-3 px-5 text-base font-semibold rounded-lg" href="/start-a-project/">Start a Project</a></div></div></nav><!-- Actions --><div class="hidden xl:flex items-center justify-end gap-3 xl:justify-self-end"><button type="button" class="text-muted dark:text-muted hover:bg-primary-muted focus:outline-none focus:ring-4 focus:ring-primary-muted rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-aw-toggle-color-scheme><svg width="1em" height="1em" class="w-5 h-5 text-muted hover:text-link-accent" data-icon="tabler:sun"><symbol id="ai:tabler:sun" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12a4 4 0 1 0 8 0a4 4 0 1 0-8 0m-5 0h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7l-.7.7m0 11.4l.7.7m-12.1-.7l-.7.7"/></symbol><use href="#ai:tabler:sun"></use> 62 </svg></button><a class="p-2 text-muted hover:text-link-accent hover:bg-primary-light rounded-lg transition-colors" aria-label="RSS Feed" href="/rss.xml"><svg width="1em" height="1em" class="w-5 h-5" data-icon="tabler:rss"><symbol id="ai:tabler:rss" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 19a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"/></symbol><use href="#ai:tabler:rss"></use> 63 </svg></a><div class="flex gap-2"><a class="btn-secondary py-2 px-5 text-sm font-semibold rounded-lg" href="/free-seo-audit/">Free SEO Audit</a><a class="btn-primary py-2 px-5 text-sm font-semibold rounded-lg" href="/start-a-project/">Start a Project</a></div></div></div></header> 64 65 <main> 66 <section class="px-6 sm:px-6 py-12 sm:py-16 lg:py-20 mx-auto max-w-7xl"><header class="mb-8 md:mb-12 text-center max-w-3xl mx-auto"><h1 class="text-4xl font-bold leading-tight tracking-tight font-heading"> The Blog </h1><div class="mt-2 md:mt-3 mx-auto text-base md:text-lg text-muted dark:text-muted">Stay up-to-date with the latest news and developments at Zorinto</div></header><div class="grid gap-6 sm:grid-cols-2 auto-rows-fr lg:grid-cols-3 xl:grid-cols-3"><article class="h-full flex flex-col bg-surface rounded-xl shadow-sm hover:shadow-md transition-all duration-200 overflow-hidden intersect-once intersect-quarter motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade group"><div class="relative aspect-square bg-fog dark:bg-graphite overflow-hidden"><a href="/custom-software-uk-protect-your-ip-escrow-exit/" class="block h-full"><img src="https://assets.zorinto.com/custom-software-uk-protect-your-ip-escrow-exit.webp" referrerpolicy="no-referrer" width="400" height="400" srcset="/_astro/custom-software-uk-protect-your-ip-escrow-exit_VFo1j.webp 400w, /_astro/custom-software-uk-protect-your-ip-escrow-exit_tVbiE.webp 600w, /_astro/custom-software-uk-protect-your-ip-escrow-exit_1uG2ja.webp 800w" sizes="(max-width: 640px) 100v
66w, (max-width: 1024px) 50vw, 33vw" style="object-fit: cover; object-position: center; max-width: 100%; max-height: 100%;" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" alt="Custom Software UK: Protect Your IP, Escrow & Exit" loading="lazy" decoding="async"></a></div><div class="flex-1 flex flex-col p-5"><h3 class="text-base sm:text-lg font-semibold leading-snug mb-2 font-heading dark:text-muted line-clamp-2"><a class="inline-block hover:text-primary dark:hover:text-pulse transition ease-in duration-200" href="/custom-software-uk-protect-your-ip-escrow-exit/">Custom Software UK: Protect Your IP, Escrow & Exit</a></h3><p class="text-muted dark:text-muted text-sm flex-1 line-clamp-3 mb-4">A UK buyer's guide to IP ownership, source code escrow and exit planning for custom software â what to demand before you sign.</p><div class="flex items-center justify-between mt-auto pt-4 border-t border-border dark:border-border"><div class="text-xs text-muted">Oct 9, 2026</div><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-primary/10 text-primary dark:bg-primary/20">WordPress & Headless Migration</span></div></div></article><article class="h-full flex flex-col bg-surface rounded-xl shadow-sm hover:shadow-md transition-all duration-200 overflow-hidden intersect-once intersect-quarter motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade group"><div class="relative aspect-square bg-fog dark:bg-graphite overflow-hidden"><a href="/uk-sme-third-party-security-risk-the-hidden/" class="block h-full"><img src="https://assets.zorinto.com/uk-sme-third-party-security-risk-the-hidden.webp" referrerpolicy="no-referrer" width="400" height="400" srcset="/_astro/uk-sme-third-party-security-risk-the-hidden_ntzAr.webp 400w, /_astro/uk-sme-third-party-security-risk-the-hidden_ZXcC4G.webp 600w, /_astro/uk-sme-third-party-security-risk-the-hidden_2qwWk6.webp 800w" sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw" style="object-fit: cover; object-position: center; max-width: 100%; max-height: 100%;" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" alt="UK SME Third-Party Security Risk: The Hidden Costs" loading="lazy" decoding="async"></a></div><div class="flex-1 flex flex-col p-5"><h3 class="text-base sm:text-lg font-semibold leading-snug mb-2 font-heading dark:text-muted line-clamp-2"><a class="inline-block hover:text-primary dark:hover:text-pulse transition ease-in duration-200" href="/uk-sme-third-party-security-risk-the-hidden/">UK SME Third-Party Security Risk: The Hidden Costs</a></h3><p class="text-muted dark:text-muted text-sm flex-1 line-clamp-3 mb-4">Most UK SMEs skip supplier security checks, risking fines, lost clients and downtime. Here's what proper due diligence actually costs.</p><div class="flex items-center justify-between mt-auto pt-4 border-t border-border dark:border-border"><div class="text-xs text-muted">Oct 6, 2026</div><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-primary/10 text-primary dark:bg-primary/20">Cybersecurity & UK Compliance</span></div></div></article><article class="h-full flex flex-col bg-surface rounded-xl shadow-sm hover:shadow-md transition-all duration-200 overflow-hidden intersect-once intersect-quarter motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade group"><div class="relative aspect-square bg-fog dark:bg-graphite overflow-hidden"><a href="/it-support-handover-risks-uk-switching-msps-safely/" class="block h-full"><img src="https://assets.zorinto.com/it-support-handover-risks-uk-switching-msps-safely.webp" referrerpolicy="no-referrer" width="400" height="400" srcset="/_astro/it-support-handover-risks-uk-switching-msps-safely_Z29wa1I.webp 400w, /_astro/it-support-handover-risks-uk-switching-msps-safely_1tgWal.webp 600w, /_astro/it-support-handover-risks-uk-switching-msps-safely_ZtsUNm.webp 800w" sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw" style="object-fit: cover; object-position: center; max-width: 100%; max-height: 100%;" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" alt="IT Support Handover Risks UK: Switching MSPs Safely" loading="lazy" decoding="async"></a></div><div class="flex-1 flex flex-col p-5"><h3 class="text-base sm:text-lg font-semibold leading-snug mb-2 font-heading dark:text-muted line-clamp-2"><a class="inline-block hover:text-primary dark:hover:text-pulse transition ease-in duration-200" href="/it-support-handover-risks-uk-switching-msps-safely/">IT Support Handover Risks UK: Switching MSPs Safely</a></h3><p class="text-muted dark:text-muted text-sm flex-1 line-clamp-3 mb-4">Switching IT provider in the UK? Learn how to prevent downtime and data loss during an MSP handover with a clear checklist and timeline.</p><div class="flex items-center justify-between mt-auto pt-4 border-t border-border dark:border-border"><div class="text-xs text-muted">Oct 5, 2026</div><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-primary/10 text-primary dark:bg-primary/20">Managed IT (Microsoft 365 &
66 Google Workspace)</span></div></div></article><article class="h-full flex flex-col bg-surface rounded-xl shadow-sm hover:shadow-md transition-all duration-200 overflow-hidden intersect-once intersect-quarter motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade group"><div class="relative aspect-square bg-fog dark:bg-graphite overflow-hidden"><a href="/overcoming-data-silos-sme-accounting-crm-integration/" class="block h-full"><img src="https://assets.zorinto.com/overcoming-data-silos-sme-accounting-crm-integration.webp" referrerpolicy="no-referrer" width="400" height="400" srcset="/_astro/overcoming-data-silos-sme-accounting-crm-integration_ZF26qV.webp 400w, /_astro/overcoming-data-silos-sme-accounting-crm-integration_1p4VhB.webp 600w, /_astro/overcoming-data-silos-sme-accounting-crm-integration_Z2l2YoB.webp 800w" sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw" style="object-fit: cover; object-position: center; max-width: 100%; max-height: 100%;" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" alt="Overcoming Data Silos: SME Accounting & CRM Integration" loading="lazy" decoding="async"></a></div><div class="flex-1 flex flex-col p-5"><h3 class="text-base sm:text-lg font-semibold leading-snug mb-2 font-heading dark:text-muted line-clamp-2"><a class="inline-block hover:text-primary dark:hover:text-pulse transition ease-in duration-200" href="/overcoming-data-silos-sme-accounting-crm-integration/">Overcoming Data Silos: SME Accounting & CRM Integration</a></h3><p class="text-muted dark:text-muted text-sm flex-1 line-clamp-3 mb-4">UK SMEs lose days to manual data entry. Learn what accounting-CRM integration costs, what good looks like, and when to buy.</p><div class="flex items-center justify-between mt-auto pt-4 border-t border-border dark:border-border"><div class="text-xs text-muted">Oct 2, 2026</div><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-primary/10 text-primary dark:bg-primary/20">Business Intelligence</span></div></div></article><article class="h-full flex flex-col bg-surface rounded-xl shadow-sm hover:shadow-md transition-all duration-200 overflow-hidden intersect-once intersect-quarter motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade group"><div class="relative aspect-square bg-fog dark:bg-graphite overflow-hidden"><a href="/the-true-cost-of-manual-data-extraction-for/" class="block h-full"><img src="https://assets.zorinto.com/the-true-cost-of-manual-data-extraction-for.webp" referrerpolicy="no-referrer" width="400" height="400" srcset="/_astro/the-true-cost-of-manual-data-extraction-for_Z2pkbN.webp 400w, /_astro/the-true-cost-of-manual-data-extraction-for_Z1o6wQV.webp 600w, /_astro/the-true-cost-of-manual-data-extraction-for_20D2wQ.webp 800w" sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw" style="object-fit: cover; object-position: center; max-width: 100%; max-height: 100%;" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" alt="The True Cost of Manual Data Extraction for UK SMEs" loading="lazy" decoding="async"></a></div><div class="flex-1 flex flex-col p-5"><h3 class="text-base sm:text-lg font-semibold leading-snug mb-2 font-heading dark:text-muted line-clamp-2"><a class="inline-block hover:text-primary dark:hover:text-pulse transition ease-in duration-200" href="/the-true-cost-of-manual-data-extraction-for/">The True Cost of Manual Data Extraction for UK SMEs</a></h3><p class="text-muted dark:text-muted text-sm flex-1 line-clamp-3 mb-4">UK SMEs lose thousands yearly to manual finance admin. See the real cost breakdown and a decision framework before you buy automation.</p><div class="flex items-center justify-between mt-auto pt-4 border-t border-border dark:border-border"><div class="text-xs text-muted">Oct 1, 2026</div><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-primary/10 text-primary dark:bg-primary/20">Business Automation (n8n)</span></div></div></article><article class="h-full flex flex-col bg-surface rounded-xl shadow-sm hover:shadow-md transition-all duration-200 overflow-hidden intersect-once intersect-quarter motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade group"><div class="relative aspect-square bg-fog dark:bg-graphite overflow-hidden"><a href="/silent-automation-failure-the-hidden-cost-for-uk/" class="block h-full"><img src="https://assets.zorinto.com/silent-automation-failure-the-hidden-cost-for-uk.webp" referrerpolicy="no-referrer" width="400" height="400" srcset="/_astro/silent-automation-failure-the-hidden-cost-for-uk_Z1lVsnT.webp 400w, /_astro/silent-automation-failure-the-hidden-cost-for-uk_e2BgL.webp 600w, /_astro/silent-automation-failure-the-hidden-cost-for-uk_Z1YIOQM.webp 800w" sizes="(max-width: 640px) 100v
66w, (max-width: 1024px) 50vw, 33vw" style="object-fit: cover; object-position: center; max-width: 100%; max-height: 100%;" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" alt="Silent Automation Failure: The Hidden Cost for UK SMEs" loading="lazy" decoding="async"></a></div><div class="flex-1 flex flex-col p-5"><h3 class="text-base sm:text-lg font-semibold leading-snug mb-2 font-heading dark:text-muted line-clamp-2"><a class="inline-block hover:text-primary dark:hover:text-pulse transition ease-in duration-200" href="/silent-automation-failure-the-hidden-cost-for-uk/">Silent Automation Failure: The Hidden Cost for UK SMEs</a></h3><p class="text-muted dark:text-muted text-sm flex-1 line-clamp-3 mb-4">UK SMEs lose thousands to silent automation failures each year. Learn the real costs, warning signs, and how to protect your business in 2026.</p><div class="flex items-center justify-between mt-auto pt-4 border-t border-border dark:border-border"><div class="text-xs text-muted">Sep 29, 2026</div><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-primary/10 text-primary dark:bg-primary/20">Digital & Content Marketing</span></div></div></article><article class="h-full flex flex-col bg-surface rounded-xl shadow-sm hover:shadow-md transition-all duration-200 overflow-hidden intersect-once intersect-quarter motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade group"><div class="relative aspect-square bg-fog dark:bg-graphite overflow-hidden"><a href="/b2b-content-marketing-conversion-uk-2026-lead-tactics/" class="block h-full"><img src="https://assets.zorinto.com/b2b-content-marketing-conversion-uk-2026-lead-tactics.webp" referrerpolicy="no-referrer" width="400" height="400" srcset="/_astro/b2b-content-marketing-conversion-uk-2026-lead-tactics_Z26Pe0u.webp 400w, /_astro/b2b-content-marketing-conversion-uk-2026-lead-tactics_Z1ywqS0.webp 600w, /_astro/b2b-content-marketing-conversion-uk-2026-lead-tactics_Z11dDKv.webp 800w" sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw" style="object-fit: cover; object-position: center; max-width: 100%; max-height: 100%;" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" alt="B2B Content Marketing Conversion UK: 2026 Lead Tactics" loading="lazy" decoding="async"></a></div><div class="flex-1 flex flex-col p-5"><h3 class="text-base sm:text-lg font-semibold leading-snug mb-2 font-heading dark:text-muted line-clamp-2"><a class="inline-block hover:text-primary dark:hover:text-pulse transition ease-in duration-200" href="/b2b-content-marketing-conversion-uk-2026-lead-tactics/">B2B Content Marketing Conversion UK: 2026 Lead Tactics</a></h3><p class="text-muted dark:text-muted text-sm flex-1 line-clamp-3 mb-4">UK SME guide to converting B2B content readers into leads in 2026, with real conversion benchmarks, costs and a provider checklist.</p><div class="flex items-center justify-between mt-auto pt-4 border-t border-border dark:border-border"><div class="text-xs text-muted">Sep 25, 2026</div><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-primary/10 text-primary dark:bg-primary/20">Mobile App Development</span></div></div></article><article class="h-full flex flex-col bg-surface rounded-xl shadow-sm hover:shadow-md transition-all duration-200 overflow-hidden intersect-once intersect-quarter motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade group"><div class="relative aspect-square bg-fog dark:bg-graphite overflow-hidden"><a href="/uk-bespoke-software-quotes-red-flags-real-value/" class="block h-full"><img src="https://assets.zorinto.com/uk-bespoke-software-quotes-red-flags-real-value.webp" referrerpolicy="no-referrer" width="400" height="400" srcset="/_astro/uk-bespoke-software-quotes-red-flags-real-value_Z1TBfEf.webp 400w, /_astro/uk-bespoke-software-quotes-red-flags-real-value_Z1ju3Fx.webp 600w, /_astro/uk-bespoke-software-quotes-red-flags-real-value_ZImQGP.webp 800w" sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw" style="object-fit: cover; object-position: center; max-width: 100%; max-height: 100%;" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" alt="UK Bespoke Software Quotes: Red Flags & Real Value 2026" loading="lazy" decoding="async"></a></div><div class="flex-1 flex flex-col p-5"><h3 class="text-base sm:text-lg font-semibold leading-snug mb-2 font-heading dark:text-muted line-clamp-2"><a class="inline-block hover:text-primary dark:hover:text-pulse transition ease-in duration-200" href="/uk-bespoke-software-quotes-red-flags-real-value/">UK Bespoke Software Quotes: Red Flags & Real Value 2026</a></h3><p class="text-muted dark:text-muted text-sm flex-1 line-clamp-3 mb-4">
66Learn how to compare bespoke software quotes UK-wide, spot red flags, and understand true costs before signing a development contract.</p><div class="flex items-center justify-between mt-auto pt-4 border-t border-border dark:border-border"><div class="text-xs text-muted">Sep 24, 2026</div><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-primary/10 text-primary dark:bg-primary/20">Custom Software Development</span></div></div></article><article class="h-full flex flex-col bg-surface rounded-xl shadow-sm hover:shadow-md transition-all duration-200 overflow-hidden intersect-once intersect-quarter motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade group"><div class="relative aspect-square bg-fog dark:bg-graphite overflow-hidden"><a href="/contractual-seo-protection-for-headless-migration-uk/" class="block h-full"><img src="https://assets.zorinto.com/contractual-seo-protection-for-headless-migration-uk.webp" referrerpolicy="no-referrer" width="400" height="400" srcset="/_astro/contractual-seo-protection-for-headless-migration-uk_66P4H.webp 400w, /_astro/contractual-seo-protection-for-headless-migration-uk_1acP88.webp 600w, /_astro/contractual-seo-protection-for-headless-migration-uk_2eiPby.webp 800w" sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw" style="object-fit: cover; object-position: center; max-width: 100%; max-height: 100%;" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300" alt="Contractual SEO Protection for Headless Migration (UK)" loading="lazy" decoding="async"></a></div><div class="flex-1 flex flex-col p-5"><h3 class="text-base sm:text-lg font-semibold leading-snug mb-2 font-heading dark:text-muted line-clamp-2"><a class="inline-block hover:text-primary dark:hover:text-pulse transition ease-in duration-200" href="/contractual-seo-protection-for-headless-migration-uk/">Contractual SEO Protection for Headless Migration (UK)</a></h3><p class="text-muted dark:text-muted text-sm flex-1 line-clamp-3 mb-4">Learn how UK SMEs can contractually protect SEO rankings during a website migration to headless platforms like Astro, with SLAs and redirect maps.</p><div class="flex items-center justify-between mt-auto pt-4 border-t border-border dark:border-border"><div class="text-xs text-muted">Sep 22, 2026</div><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-primary/10 text-primary dark:bg-primary/20">WordPress & Headless Migration</span></div></div></article></div><div class="container flex"><div class="flex flex-row mx-auto container justify-between"><a class="btn btn-tertiary md:px-3 px-3 mr-2 invisible" href="/"> 67 <svg width="1em" height="1em" class="w-5 h-5" data-icon="tabler:chevron-left"><symbol id="ai:tabler:chevron-left" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m15 6l-6 6l6 6"/></symbol><use href="#ai:tabler:chevron-left"></use> 68 </svg> 69 <p class="ml-2">Newer posts</p> 70 </a><a class="btn btn-tertiary md:px-3 px-3" href="/blog/2/"> 71 <span class="mr-2">Older posts</span> 72 <svg width="1em" height="1em" class="w-5 h-5" data-icon="tabler:chevron-right"><symbol id="ai:tabler:chevron-right" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m9 6l6 6l-6 6"/></symbol><use href="#ai:tabler:chevron-right"></use> 73 </svg> 74 </a></div></div><!-- 75 <PostTags tags={allCategories} class="mb-2" title="Search by Categories:" isCategory /> 76 <PostTags tags={allTags} title="Search by Tags:" /> 77 --></section> 78</main> 79 80 <footer class="relative not-prose overflow-hidden" role="contentinfo" aria-label="Site footer" data-astro-cid-w622twah><div class="relative bg-bone dark:bg-carbon pt-10 pb-24 md:pb-6 border-t border-fog dark:border-graphite" data-astro-cid-w622twah><div class="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8" data-astro-cid-w622twah><div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-12 gap-8 lg:gap-6" data-astro-cid-w622twah><div class="lg:col-span-3 space-y-4" data-astro-cid-w622twah><a class="inline-flex items-center group" href="/" aria-label="Zorinto home" data-astro-cid-w622twah><span class="inline-flex items-center"><img src="/_astro/zorinto-logo-primary-transparent.DiQz3wC1.png" alt="Zorinto" height="32" loading="eager" decoding="async" class="block dark:hidden w-auto" style="height:32px"><img src="/_astro/zorinto-logo-reversed.sJ6c7qVY.png" alt="" aria-hidden="true" height="32" loading="eager" decoding="async" class="hidden dark:block w-auto" style="height:32px"></span></a><p class="text-muted text-xs leading-relaxed" data-astro-cid-w622twah>Built to move. Web & software for teams that ship.</p><div class="flex flex-col gap-2 text-xs" data-astro-cid-w622twah><a href="mailto:[email protected]" class="inline-flex items-center gap-2 text-muted hover:text-link-accent transition-colors" data-astro-cid-w622twah><svg width="1em" height="1em" class="w-3.5 h-3.5 text-link-accent/70" data-astro-cid-w622twah="true" data-icon="tabler:mail"><symbol id="ai:tabler:mail" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><path d="m3 7l9 6l9-6"/></g></symbol><use href="#ai:tabler:mail"></use> 81 </svg>[email protected]</a><a href="tel:+447404979307" class="inline-flex items-center gap-2 text-muted hover:text-link-accent transition-colors" data-astro-cid-w622twah><svg width="1em" height="1em" class="w-3.5 h-3.5 text-link-accent/70" data-astro-cid-w622twah="true" data-icon="tabler:phone"><symbol id="ai:tabler:phone" viewBox="0 0 24 24">
81<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2"/></symbol><use href="#ai:tabler:phone"></use> 82 </svg>+44 7404 979307</a><address class="not-italic inline-flex items-start gap-2 text-muted" data-astro-cid-w622twah><svg width="1em" height="1em" class="w-3.5 h-3.5 text-link-accent/70 mt-0.5 flex-shrink-0" data-astro-cid-w622twah="true" data-icon="tabler:map-pin"><symbol id="ai:tabler:map-pin" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M9 11a3 3 0 1 0 6 0a3 3 0 0 0-6 0"/><path d="M17.657 16.657L13.414 20.9a2 2 0 0 1-2.827 0l-4.244-4.243a8 8 0 1 1 11.314 0"/></g></symbol><use href="#ai:tabler:map-pin"></use> 83 </svg><span data-astro-cid-w622twah>268 Bath Road, Slough, Berkshire SL1 4DX, UK</span></address></div><div class="flex flex-wrap gap-2 pt-1" data-astro-cid-w622twah><a class="group w-8 h-8 rounded-lg bg-surface border border-border flex items-center justify-center hover:border-pulse/50 hover:bg-primary-light transition-all duration-200" aria-label="LinkedIn" href="https://www.linkedin.com/company/zorintohq" target="_blank" rel="noopener noreferrer" data-astro-cid-w622twah><div class="text-muted group-hover:text-link-accent transition-colors" data-astro-cid-w622twah><svg width="1em" height="1em" class="w-4 h-4" data-astro-cid-w622twah="true" data-icon="tabler:brand-linkedin"><symbol id="ai:tabler:brand-linkedin" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M8 11v5m0-8v.01M12 16v-5m4 5v-3a2 2 0 1 0-4 0"/><path d="M3 7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v10a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4z"/></g></symbol><use href="#ai:tabler:brand-linkedin"></use> 84 </svg></div></a><a class="group w-8 h-8 rounded-lg bg-surface border border-border flex items-center justify-center hover:border-pulse/50 hover:bg-primary-light transition-all duration-200" aria-label="X" href="https://x.com/zorintohq" target="_blank" rel="noopener noreferrer" data-astro-cid-w622twah><div class="text-muted group-hover:text-link-accent transition-colors" data-astro-cid-w622twah><svg width="1em" height="1em" class="w-4 h-4" data-astro-cid-w622twah="true" data-icon="tabler:brand-x"><symbol id="ai:tabler:brand-x" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 4l11.733 16H20L8.267 4zm0 16l6.768-6.768m2.46-2.46L20 4"/></symbol><use href="#ai:tabler:brand-x"></use> 85 </svg></div></a><a class="group w-8 h-8 rounded-lg bg-surface border border-border flex items-center justify-center hover:border-pulse/50 hover:bg-primary-light transition-all duration-200" aria-label="Instagram" href="https://www.instagram.com/zorintohq" target="_blank" rel="noopener noreferrer" data-astro-cid-w622twah><div class="text-muted group-hover:text-link-accent transition-colors" data-astro-cid-w622twah><svg width="1em" height="1em" class="w-4 h-4" data-astro-cid-w622twah="true" data-icon="tabler:brand-instagram"><symbol id="ai:tabler:brand-instagram" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M4 8a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v8a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4z"/><path d="M9 12a3 3 0 1 0 6 0a3 3 0 0 0-6 0m7.5-4.5v.01"/></g></symbol><use href="#ai:tabler:brand-instagram"></use> 86 </svg></div></a><a class="group w-8 h-8 rounded-lg bg-surface border border-border flex items-center justify-center hover:border-pulse/50 hover:bg-primary-light transition-all duration-200" aria-label="Facebook" href="https://www.facebook.com/zorintohq" target="_blank" rel="noopener noreferrer" data-astro-cid-w622twah><div class="text-muted group-hover:text-link-accent transition-colors" data-astro-cid-w622twah><svg width="1em" height="1em" class="w-4 h-4" data-astro-cid-w622twah="true" data-icon="tabler:brand-facebook">
86<symbol id="ai:tabler:brand-facebook" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2z"/></symbol><use href="#ai:tabler:brand-facebook"></use> 87 </svg></div></a><a class="group w-8 h-8 rounded-lg bg-surface border border-border flex items-center justify-center hover:border-pulse/50 hover:bg-primary-light transition-all duration-200" aria-label="GitHub" href="https://github.com/vimalhari" target="_blank" rel="noopener noreferrer" data-astro-cid-w622twah><div class="text-muted group-hover:text-link-accent transition-colors" data-astro-cid-w622twah><svg width="1em" height="1em" class="w-4 h-4" data-astro-cid-w622twah="true" data-icon="tabler:brand-github"><symbol id="ai:tabler:brand-github" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21"/></symbol><use href="#ai:tabler:brand-github"></use> 88 </svg></div></a><a class="group w-8 h-8 rounded-lg bg-surface border border-border flex items-center justify-center hover:border-pulse/50 hover:bg-primary-light transition-all duration-200" aria-label="RSS" href="/rss.xml" target="_blank" rel="noopener noreferrer" data-astro-cid-w622twah><div class="text-muted group-hover:text-link-accent transition-colors" data-astro-cid-w622twah><svg width="1em" height="1em" viewBox="0 0 24 24" class="w-4 h-4" data-astro-cid-w622twah="true" data-icon="tabler:rss"><use href="#ai:tabler:rss"></use> 89 </svg></div></a></div><div class="pt-4" data-astro-cid-w622twah><a href="https://share.google/4DfExVCVOVpUHDR94" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 px-3 py-2 rounded-lg bg-surface border border-border hover:border-pulse/50 transition-all group" data-astro-cid-w622twah><div class="flex items-center justify-center w-8 h-8 rounded-full bg-paper" data-astro-cid-w622twah><svg width="0.98em" height="1em" class="w-5 h-5" data-astro-cid-w622twah="true" data-icon="logos:google-icon"><symbol id="ai:logos:google-icon" viewBox="0 0 256 262"><path fill="#4285f4" d="M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622l38.755 30.023l2.685.268c24.659-22.774 38.875-56.282 38.875-96.027"/><path fill="#34a853" d="M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055c-34.523 0-63.824-22.773-74.269-54.25l-1.531.13l-40.298 31.187l-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1"/><path fill="#fbbc05" d="M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82c0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602z"/><path fill="#eb4335" d="M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0C79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251"/></symbol><use href="#ai:logos:google-icon"></use> 90 </svg></div><div class="flex flex-col" data-astro-cid-w622twah><div class="flex items-center gap-1" data-astro-cid-w622twah><span class="text-default font-medium text-sm" data-astro-cid-w622twah>5.0</span><div class="flex text-pulse" data-astro-cid-w622twah><svg width="1em" height="1em" class="w-3 h-3" data-astro-cid-w622twah="true" data-icon="tabler:star-filled"><symbol id="ai:tabler:star-filled" viewBox="0 0 24 24"><path fill="currentColor" d="m8.243 7.34l-6.38.925l-.113.023a1 1 0 0 0-.44 1.684l4.622 4.499l-1.09 6.355l-.013.11a1 1 0 0 0 1.464.944l5.706-3l5.693 3l.1.046a1 1 0 0 0 1.352-1.1l-1.091-6.355l4.624-4.5l.078-.085a1 1 0 0 0-.633-1.62l-6.38-.926l-2.852-5.78a1 1 0 0 0-1.794 0z"/></symbol><use href="#ai:tabler:star-filled"></use> 91 </svg><svg width="1em" height="1em" viewBox="0 0 24 24" class="w-3 h-3" data-astro-cid-w622twah="true" data-icon="tabler:star-filled"><use href="#ai:tabler:star-filled"></use> 92 </svg><svg width="1em" height="1em" viewBox="0 0 24 24" class="w-3 h-3" data-astro-cid-w622twah="true" data-icon="tabler:star-filled"><use href="#ai:tabler:star-filled"></use> 93 </svg><svg width="1em" height="1em" viewBox="0 0 24 24" class="w-3 h-3" data-astro-cid-w622twah="true" data-icon="tabler:star-filled"><use href="#ai:tabler:star-filled"></use> 94 </svg><svg width="1em" height="1em" viewBox="0 0 24 24" class="w-3 h-3" data-astro-cid-w622twah="true" data-icon="tabler:star-filled"><use href="#ai:tabler:star-filled"></use> 95 </svg></div></div><span class="text-muted text-[10px]" data-astro-cid-w622twah>Verified Google reviews</span></div></a></div></div><div class="lg:col-span-9" data-astro-cid-w622twah><div class="grid grid-cols-2 md:grid-cols-3 gap-6" data-astro-cid-w622twah><nav aria-labelledby="footer-company-heading" data-astro-cid-w622twah><h3 id="footer-company-heading" class="text-default font-mono font-medium text-xs uppercase tracking-wider mb-3" data-astro-cid-w622twah>Company</h3><ul class="space-y-1.5" role="list" data-astro-cid-w622twah><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/about/" data-astro-cid-w622twah>About Us</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/case-studies/" data-astro-cid-w622twah>Case Studies</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/careers/" data-astro-cid-w622twah>Careers</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/start-a-project/" data-astro-cid-w622twah>Start a Project</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/pricing/" data-astro-cid-w622twah>Pricing</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/contact/" data-astro-cid-w622twah>Contact Us</a></li></ul></nav><nav aria-labelledby="footer-websites-heading" data-astro-cid-w622twah><h3 id="footer-websites-heading" class="text-default font-mono font-medium text-xs uppercase tracking-wider mb-3" data-astro-cid-w622twah>Websites</h3><ul class="space-y-1.5" role="list" data-astro-cid-w622twah><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/astro-site/" data-astro-cid-w622twah>Astro Websites</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/website-development/" data-astro-cid-w622twah>Website development</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/website-development/#wordpress-cms" data-astro-cid-w622twah>WordPress websites</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/services/#websites" data-astro-cid-w622twah>All website services</a></li></ul></nav><nav aria-labelledby="footer-apps-heading" data-astro-cid-w622twah><h3 id="footer-apps-heading" class="text-default font-mono font-medium text-xs uppercase tracking-wider mb-3" data-astro-cid-w622twah>Apps</h3><ul class="space-y-1.5" role="list" data-astro-cid-w622twah><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/software-development/" data-astro-cid-w622twah>Software development</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/mobile-app/" data-astro-cid-w622twah>Mobile Apps</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/laravel-development/" data-astro-cid-w622twah>Laravel Development</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/ruby-on-rails-development/" data-astro-cid-w622twah>Ruby on Rails Development</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/django-development/" data-astro-cid-w622twah>Django Development</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/nextjs-development/" data-astro-cid-w622twah>Next.js & React Development</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/saas-development/" data-astro-cid-w622twah>SaaS Development</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/laravel-rescue/" data-astro-cid-w622twah>Laravel Rescue</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/services/#apps" data-astro-cid-w622twah>All app services</a></li></ul></nav><nav aria-labelledby="footer-marketing-heading" data-astro-cid-w622twah><h3 id="footer-marketing-heading" class="text-default font-mono font-medium text-xs uppercase tracking-wider mb-3" data-astro-cid-w622twah>Marketing</h3><ul class="space-y-1.5" role="list" data-astro-cid-w622twah><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/digital-marketing/" data-astro-cid-w622twah>Digital Marketing</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/seo/" data-astro-cid-w622twah>SEO Services</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/free-seo-audit/" data-astro-cid-w622twah>Free SEO Audit</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/services/#marketing" data-astro-cid-w622twah>All marketing services</a></li></ul></nav><nav aria-labelledby="footer-operations-heading" data-astro-cid-w622twah><h3 id="footer-operations-heading" class="text-default font-mono font-medium text-xs uppercase tracking-wider mb-3" data-astro-cid-w622twah>Operations</h3><ul class="space-y-1.5" role="list" data-astro-cid-w622twah><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/business-automation/" data-astro-cid-w622twah>Business Automation (n8n)</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/business-intelligence/" data-astro-cid-w622twah>Business Intelligence</a></li><li data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors duration-200" href="/it-support/" data-astro-cid-w622twah>Managed IT Support</a></li></ul></nav></div></div></div><nav class="mt-10 pt-8 border-t border-border bg-surface/40 -mx-4 px-4 sm:-mx-6 sm:px-6 lg:-mx-8 lg:px-8 rounded-lg" aria-label="Service areas and local pages" data-astro-cid-w622twah><div class="flex flex-col sm:flex-row sm:flex-wrap sm:items-baseline sm:justify-between gap-2 mb-5" data-astro-cid-w622twah><h3 class="text-default font-mono font-medium text-xs uppercase tracking-wider" data-astro-cid-w622twah>Areas we serve</h3><a href="/locations/" class="text-xs font-medium text-link-accent hover:text-pulse-deep transition-colors shrink-0" data-astro-cid-w622twah>All locations â</a></div><div class="space-y-5" data-astro-cid-w622twah><div data-astro-cid-w622twah><p class="text-muted text-[10px] font-mono uppercase tracking-wider mb-2" data-astro-cid-w622twah>Berkshire</p><ul class="flex flex-wrap gap-x-3 gap-y-2" role="list" data-astro-cid-w622twah><li data-astro-cid-w622twah><a href="/locations/bracknell/website-development/" class="text-muted text-xs hover:text-link-accent transition-colors whitespace-nowrap" data-astro-cid-w622twah>Bracknell</a></li><li data-astro-cid-w622twah><a href="/locations/maidenhead/website-development/" class="text-muted text-xs hover:text-link-accent transition-colors whitespace-nowrap" data-astro-cid-w622twah>Maidenhead</a></li><li data-astro-cid-w622twah><a href="/locations/reading/website-development/" class="text-muted text-xs hover:text-link-accent transition-colors whitespace-nowrap" data-astro-cid-w622twah>Reading</a></li><li data-astro-cid-w622twah><a href="/locations/slough/website-development/" class="text-muted text-xs hover:text-link-accent transition-colors whitespace-nowrap" data-astro-cid-w622twah>Slough</a></li></ul></div><div data-astro-cid-w622twah><p class="text-muted text-[10px] font-mono uppercase tracking-wider mb-2" data-astro-cid-w622twah>Surrey</p><ul class="flex flex-wrap gap-x-3 gap-y-2" role="list" data-astro-cid-w622twah><li data-astro-cid-w622twah><a href="/locations/staines-upon-thames/website-development/" class="text-muted text-xs hover:text-link-accent transition-colors whitespace-nowrap" data-astro-cid-w622twah>Staines-upon-Thames</a></li></ul></div></div></nav><div class="border-t border-border pt-8 mt-8" data-astro-cid-w622twah><div class="logo-marquee group relative overflow-hidden" data-astro-cid-w622twah><div class="logo-marquee__track flex w-max items-center gap-12 md:gap-16" data-astro-cid-w622twah><a href="https://astro.build" aria-label="Astro" target="_blank" rel="noopener noreferrer" title="Astro" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="3.8em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:astro">
95<symbol id="ai:logos:astro" viewBox="0 0 512 135"><defs><linearGradient id="SVGxAS53bCX" x1="0%" x2="116.842%" y1="91.269%" y2="41.115%"><stop offset="0%" stop-color="#d83333"/><stop offset="100%" stop-color="#f041ff"/></linearGradient></defs><path fill="#fff" d="M34.698 114.618c-6.08-5.558-7.854-17.234-5.321-25.693c4.391 5.333 10.476 7.023 16.78 7.976c9.73 1.472 19.286.922 28.325-3.526c1.034-.509 1.99-1.187 3.12-1.872c.847 2.46 1.068 4.944.772 7.473c-.72 6.158-3.785 10.915-8.659 14.52c-1.949 1.442-4.01 2.731-6.024 4.092c-6.184 4.178-7.857 9.08-5.533 16.208c.055.174.105.348.23.772c-3.158-1.413-5.464-3.47-7.221-6.176c-1.856-2.855-2.74-6.014-2.786-9.43c-.023-1.663-.023-3.342-.247-4.98c-.546-3.997-2.422-5.787-5.957-5.89c-3.628-.106-6.498 2.136-7.259 5.669c-.058.27-.142.538-.226.853z"/><path fill="url(#SVGxAS53bCX)" d="M34.698 114.618c-6.08-5.558-7.854-17.234-5.321-25.693c4.391 5.333 10.476 7.023 16.78 7.976c9.73 1.472 19.286.922 28.325-3.526c1.034-.509 1.99-1.187 3.12-1.872c.847 2.46 1.068 4.944.772 7.473c-.72 6.158-3.785 10.915-8.659 14.52c-1.949 1.442-4.01 2.731-6.024 4.092c-6.184 4.178-7.857 9.08-5.533 16.208c.055.174.105.348.23.772c-3.158-1.413-5.464-3.47-7.221-6.176c-1.856-2.855-2.74-6.014-2.786-9.43c-.023-1.663-.023-3.342-.247-4.98c-.546-3.997-2.422-5.787-5.957-5.89c-3.628-.106-6.498 2.136-7.259 5.669c-.058.27-.142.538-.226.853z"/><path fill="#17191e" d="M0 87.515s18.002-8.77 36.054-8.77l13.61-42.122c.51-2.037 1.998-3.421 3.678-3.421s3.167 1.384 3.677 3.421l13.61 42.123c21.38 0 36.055 8.769 36.055 8.769S76.106 4.216 76.046 4.049C75.168 1.586 73.686 0 71.69 0H34.997C33 0 31.577 1.586 30.64 4.049C30.574 4.213 0 87.515 0 87.515M189.798 60.72c0 7.382-9.181 11.79-21.894 11.79c-8.275 0-11.2-2.05-11.2-6.356c0-4.51 3.632-6.664 11.905-6.664c7.467 0 13.823.103 21.19 1.025zm.101-9.124c-4.54-1.025-11.402-1.64-19.574-1.64c-23.812 0-35.01 5.639-35.01 18.76c0 13.636 7.667 18.865 25.425 18.865c15.034 0 25.223-3.794 28.957-13.123h.604l-.087 2.016a124 124 0 0 0-.11 3.7l-.003.538c0 4.711.77 5.208 4.483 5.227l18.823.001c-.983-2.795-1.582-10.547-1.613-17.388v-.553c0-7.484.3-13.122.3-20.708c0-15.48-9.28-25.323-38.339-25.323c-12.51 0-26.434 2.153-37.028 5.331c1.008 4.204 2.421 12.713 3.128 18.249c9.181-4.306 22.197-6.151 32.287-6.151c13.922 0 17.757 3.178 17.757 9.636zm50.938 13.43c-2.018.246-4.617.295-7.384.305l-2.1.003c-3.733 0-7.163-.103-9.485-.41c0 .82-.1 1.743-.1 2.563c0 12.815 8.375 20.298 37.836 20.298c27.745 0 36.725-7.38 36.725-20.4l-.008-.731c-.239-11.812-6.471-17.647-32.278-18.953l-2.416-.12c-17.824-.967-19.803-3.071-19.88-5.465l-.002-.156c0-2.973 2.623-4.511 16.345-4.511l1.748.01c12.795.158 16.312 2.11 16.312 6.038v.923l1.393-.06a217 217 0 0 1 7.432-.144l1.744.003c3.178.02 6.426.121 8.4.303c0-.922.1-1.742.1-2.46c0-15.07-12.511-19.991-36.725-19.991c-27.242 0-36.424 6.664-36.424 19.683c0 11.688 7.366 18.967 33.498 20.094l2.393.088c17.056.714 18.997 2.808 18.997 5.653l-.009.272c-.181 2.988-3.51 4.342-16.639 4.342l-1.187-.005c-14.359-.107-18.185-2.206-18.284-6.386zM329.63 11c-7.365 6.869-20.582 13.737-27.947 15.583l.029 1.296c.072 3.93.072 9.867.072 13.261l6.76.103l-.12 9.573c-.045 4.213-.078 8.325-.082 11.62v.746c0 13.635 7.162 23.887 29.46 23.887c9.384 0 15.64-1.025 23.408-2.666c-.807-5.023-1.715-12.712-2.018-18.556c-4.64 1.538-10.492 2.358-16.95 2.358c-8.98 0-12.612-2.46-12.612-9.534l.005-6.548c.008-3.724.032-7.283.096-10.675l7.22.077c8.915.112 17.207.274 22.544.436c-.101-5.332.1-13.02.403-18.146l-3.499.068c-8.848.16-18.353.24-26.365.24L330.336 11zm61.068 27.167l-.807-.102l.28-13.304l.022-.946h-20.28l.071 2.274c.232 8.12.232 16.698.232 28.789l-.013 7.472c-.032 9.386-.129 16.62-.29 23.591h23.206c-.378-5.754-.49-15.187-.503-23.598l-.002-1.724c0-13.943 5.65-17.94 18.464-17.94c5.954 0 10.191.717 13.924 2.05c.101-5.229 1.11-15.378 1.714-19.89c-3.62-1.064-7.601-1.763-12.367-1.838l-.85-.006c-10.997-.103-19.068 4.408-22.8 15.172m100.215 16.3c0 11.175-8.071 16.404-20.784 16.404c-12.611 0-20.683-4.921-20.683-16.403c0-11.333 7.962-15.675 20.198-15.786l.485-.002c12.612 0 20.784 4.613 20.784 15.788M512 53.955c0-22.246-17.354-32.19-41.87-32.19c-24.618 0-41.367 9.944-41.367 32.19c0 22.144 15.638 34.037 41.265 34.037c25.83 0 41.972-11.893 41.972-34.037"/></symbol><use href="#ai:logos:astro"></use> 96 </svg></a><a href="https://laravel.com" aria-label="Laravel" target="_blank" rel="noopener noreferrer" title="Laravel" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="3.43em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="laravel"><symbol id="ai:local:laravel" viewBox="0 0 178 52"><path fill="#FF2D20" fill-rule="evenodd" d="M49.626 11.564a.8.8 0 0 1 .028.209v10.972a.8.8 0 0 1-.402.694l-9.209 5.302V39.25c0 .286-.152.55-.4.694L20.42 51.01c-.044.025-.092.041-.14.058-.018.006-.035.017-.054.022a.8.8 0 0 1-.41 0c-.022-.006-.042-.018-.063-.026-.044-.016-.09-.03-.132-.054L.402 39.944A.8.8 0 0 1 0 39.25V6.334q0-.108.028-.21c.006-.023.02-.044.028-.067.015-.042.029-.085.051-.124.015-.026.037-.047.055-.071q.033-.05.071-.093c.023-.023.053-.04.079-.06.029-.024.055-.05.088-.069h.001l9.61-5.533a.8.8 0 0 1 .8 0l9.61 5.533h.002q.046.032.088.068c.026.02.055.038.078.06.028.029.048.062.072.094.017.024.04.045.054.071.023.04.036.082.052.124.008.023.022.044.028.068a.8.8 0 0 1 .028.209v20.559l8.008-4.611v-10.51q0-.106.028-.208c.007-.024.02-.045.028-.068.016-.042.03-.085.052-.124.015-.026.037-.047.054-.071.024-.032.044-.065.072-.093.023-.023.052-.04.078-.06.03-.024.056-.05.088-.069h.001l9.611-5.533a.8.8 0 0 1 .8 0l9.61 5.533c.034.02.06.045.09.068.025.02.054.038.077.06.028.029.048.062.072.094.018.024.04.045.054.071.023.039.036.082.052.124.009.023.022.044.028.068m-1.574 10.718v-9.124l-3.363 1.936-4.646 2.675v9.124zm-9.61 16.505v-9.13l-4.57 2.61-13.05 7.448v9.216zM1.602 7.719v31.068L19.22 48.93v-9.214l-9.204-5.209-.003-.002-.004-.002c-.031-.018-.057-.044-.086-.066-.025-.02-.054-.036-.076-.058l-.002-.003c-.026-.025-.044-.056-.066-.084-.02-.027-.044-.05-.06-.078l-.001-.003c-.018-.03-.029-.066-.042-.1-.013-.03-.03-.058-.038-.09v-.001c-.01-.038-.012-.078-.016-.117-.004-.03-.012-.06-.012-.09V12.33L4.965 9.654zm8.81-5.994L2.405 6.334l8.005 4.609 8.006-4.61-8.006-4.608zm4.164 28.764 4.645-2.674V7.719l-3.363 1.936-4.646 2.675v20.096zM39.243 7.164l-8.006 4.609 8.006 4.609 8.005-4.61zm-.801 10.605-4.646-2.675-3.363-1.936v9.124l4.645 2.674 3.364 1.937zM20.02 38.33l11.743-6.704 5.87-3.35-8-4.606-9.211 5.303-8.395 4.833zm48.753-25.913v23.046h8.338v3.976H64.333V12.417zm24.01 11.465V21.45h4.208v17.99h-4.207v-2.433q-.85 1.352-2.413 2.123t-3.146.772q-2.047 0-3.745-.752a8.8 8.8 0 0 1-2.915-2.066 9.6 9.6 0 0 1-1.89-3.01 9.7 9.7 0 0 1-.677-3.63q0-1.89.676-3.61a9.6 9.6 0 0 1 1.891-3.03 8.8 8.8 0 0 1 2.915-2.065q1.698-.753 3.745-.752 1.583 0 3.146.772t2.413 2.123zm-.386 8.763a6.3 6.3 0 0 0 .387-2.2q0-1.16-.387-2.2a5.6 5.6 0 0 0-1.08-1.815 5.2 5.2 0 0 0-1.68-1.236 5.1 5.1 0 0 0-2.18-.463q-1.
96199 0-2.163.463a5.3 5.3 0 0 0-1.66 1.236 5.3 5.3 0 0 0-1.06 1.814 6.6 6.6 0 0 0-.368 2.2q0 1.159.367 2.2.366 1.043 1.062 1.815a5.3 5.3 0 0 0 1.66 1.236q.963.463 2.161.463c1.198 0 1.525-.154 2.181-.463a5.2 5.2 0 0 0 1.68-1.236 5.6 5.6 0 0 0 1.08-1.814m7.914 6.794V21.45h11.427v4.141h-7.22v13.85h-4.207zm26.675-15.557V21.45h4.208v17.99h-4.208v-2.433q-.849 1.352-2.413 2.123-1.562.772-3.146.772-2.046 0-3.744-.752a8.8 8.8 0 0 1-2.915-2.066 9.6 9.6 0 0 1-1.891-3.01 9.7 9.7 0 0 1-.676-3.63q0-1.89.676-3.61a9.6 9.6 0 0 1 1.89-3.03 8.8 8.8 0 0 1 2.916-2.065q1.698-.753 3.744-.752 1.583 0 3.146.772 1.564.772 2.413 2.123m-.386 8.763a6.3 6.3 0 0 0 .386-2.2q-.001-1.16-.386-2.2a5.6 5.6 0 0 0-1.08-1.815 5.2 5.2 0 0 0-1.68-1.236q-.985-.463-2.181-.463t-2.162.463a5.3 5.3 0 0 0-1.66 1.236 5.3 5.3 0 0 0-1.061 1.814 6.6 6.6 0 0 0-.367 2.2q-.001 1.159.367 2.2.366 1.043 1.061 1.815a5.3 5.3 0 0 0 1.66 1.236q.965.463 2.162.463 1.196 0 2.181-.463a5.2 5.2 0 0 0 1.68-1.236 5.6 5.6 0 0 0 1.08-1.814m21.463-11.195h4.262l-6.905 17.99h-5.29l-6.906-17.99h4.262l5.289 13.776zm13.44-.463c5.729 0 9.636 5.078 8.902 11.021h-13.959c0 1.552 1.567 4.552 5.288 4.552 3.2 0 5.345-2.815 5.346-2.817l2.843 2.2c-2.542 2.713-4.623 3.96-7.882 3.96-5.823 0-9.77-3.684-9.77-9.458 0-5.223 4.079-9.458 9.231-9.458zm-5.046 7.894h10.084c-.031-.346-.578-4.552-5.072-4.552-4.495 0-4.98 4.206-5.012 4.552m16.688 10.558V12.417h4.208v27.022z"/></symbol><use href="#ai:local:laravel"></use> 97 </svg></a><a href="https://rubyonrails.org" aria-label="Ruby on Rails" target="_blank" rel="noopener noreferrer" title="Ruby on Rails" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="2.85em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:rails"><symbol id="ai:logos:rails" viewBox="0 0 512 180"><g fill="#c00"><path d="M219.115 150.634s22.57-1.935 22.57-31.081s-27.341-31.855-27.341-31.855h-49.266v91.953h24.762V157.47l21.408 22.182h36.627zm-9.543-18.83H189.84v-21.021h19.86s5.546 2.063 5.546 10.446s-5.674 10.576-5.674 10.576m93.243-43.461h-25.149c-17.926 0-23.987 16.25-23.987 23.987v67.321h25.148v-16.12h23.601v16.12h24.375v-67.32c0-19.604-17.797-23.988-23.988-23.988m-.387 49.136h-23.73v-22.311s0-5.03 7.867-5.03h8.641c6.964 0 7.093 5.03 7.093 5.03v22.311zm35.853-49.136h26.18v91.308h-26.18zm62.936 67.707V88.343h-26.051v91.308h61.259v-23.6zm43.849.258v23.343h42.172c8.641 0 23.472-6.319 23.988-23.988v-9.027c0-15.09-12.38-23.988-23.988-23.988h-21.021v-10.833h41.656V88.343h-39.98c-10.317 0-24.117 8.511-24.117 24.374v8.125c0 15.863 13.67 23.988 24.117 23.988c29.018.13-6.964 0 19.861 0v11.35z"/><path d="M9.028 179.522h101.884s-19.474-88.858 45.01-124.84c14.057-6.835 58.808-32.37 132.062 21.796c2.321-1.935 4.514-3.483 4.514-3.483S225.435 6.061 150.763 13.542c-37.53 3.353-83.7 37.529-110.783 82.668c-27.083 45.138-30.952 83.312-30.952 83.312m212.28-158.758l.516-8.641c-1.161-.645-4.385-2.193-12.51-4.514l-.516 8.512a207 207 0 0 1 12.51 4.643m-12.252 27.34l-.516 8.126q6.384.194 12.768 1.547l.516-7.996c-4.385-.902-8.641-1.418-12.768-1.676M161.338 7.868h1.29L160.048 0q-5.997 0-12.38.774l2.45 7.609c3.74-.387 7.48-.516 11.22-.516m6.19 47.46l2.967 8.899c3.74-1.806 7.48-3.353 11.22-4.514l-2.837-8.512a94 94 0 0 0-11.35 4.127m-58.55-33.918l-5.804-8.9c-3.224 1.677-6.578 3.483-10.06 5.546l5.933 9.028c3.353-2.063 6.577-3.998 9.93-5.674m26.438 58.035l6.19 9.285c2.192-3.224 4.772-6.19 7.61-9.156l-5.804-8.77a71.4 71.4 0 0 0-7.996 8.64m-18.7 41.527l10.446 8.254q.773-7.545 2.708-15.089l-9.286-7.351c-1.676 4.772-2.837 9.543-3.869 14.186M60.226 59.71l-9.157-7.995c-3.353 3.224-6.577 6.448-9.544 9.672l9.93 8.512c2.71-3.482 5.675-6.964 8.77-10.188m-38.948 57.65l-14.832-5.417C3.998 117.489 1.29 123.938 0 127.42l14.831 5.416c1.677-4.385 4.385-10.704 6.449-15.476m93.5 36.368c.259 6.835.904 12.38 1.548 16.25l15.477 5.545c-1.161-5.03-2.322-10.704-3.096-16.765z"/></g></symbol><use href="#ai:logos:rails"></use> 98 </svg></a><a href="https://www.djangoproject.com" aria-label="Django" target="_blank" rel="noopener noreferrer" title="Django" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="2.87em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:django">
98<symbol id="ai:logos:django" viewBox="0 0 512 179"><path fill="#092e20" d="M386.892 41.423c12.001 0 23.093 1.271 36.548 3.998l-9.588 20.198c-7.455-1.455-.597-.195-6.23-.74v2.91l.362 11.816l.18 15.274c.182 3.817.182 7.636.365 11.454v7.637c0 24.001-2 35.273-8 44.545c-8.727 13.638-23.819 20.365-45.273 20.365c-10.91 0-20.363-1.636-30.183-5.455v-25.818h.002c9.82 5.09 19.637 7.453 30 7.453c18.363 0 26.182-7.453 26.182-25.273v-.545c-5.454 2.726-10.91 3.818-18.181 3.818c-24.546 0-40.185-16.182-40.185-41.818c0-31.821 23.093-49.82 64-49.82M132.91 43.24v64.909c0 22.365-1.637 33.091-6.545 42.365c-4.547 8.91-10.548 14.545-22.91 20.728l-26.001-12.364c12.364-5.818 18.363-10.907 22.181-18.729c4.001-8 5.275-17.273 5.275-41.636V43.241zm333.998-2.364c28 0 45.092 17.638 45.092 46.183c0 29.275-17.817 47.638-46.183 47.638c-28.002 0-45.275-17.637-45.275-46c.002-29.458 17.821-47.82 46.366-47.82m-279.993.365c14.364 0 23.818 3.817 28 11.272c2.363 4.182 3.09 9.636 3.09 21.274v56.908c-12.547 1.818-28.364 3.092-40 3.092c-23.454 0-34.002-8.185-34.002-26.365c0-19.638 14-28.728 48.366-31.638v-6.182c0-5.09-2.545-6.907-9.637-6.907c-10.363 0-22 2.908-32.91 8.546V49.604c12.366-5.816 24.183-8.362 37.093-8.362M88.365 0v129.607c-14.363 2.727-24.91 3.818-36.363 3.818C17.818 133.425 0 117.97 0 88.333c0-28.546 18.91-47.09 48.183-47.09c4.545 0 8 .362 12.182 1.453V0zm187.278 41.242c14.364 0 24.728 3.272 30.912 9.636c5.818 5.999 7.635 12.544 7.635 26.546v54.909h-28.001V78.515c0-10.727-3.636-14.729-13.636-14.729c-3.818 0-7.272.364-12.91 2v66.547h-28V47.604c16.545-4.363 30.181-6.362 44-6.362m-82.001 52.909c-18.547 1.818-24.547 4.728-24.547 12c0 5.454 3.456 8 11.092 8c4.182 0 8-.363 13.455-1.272zm272.904-30.728c-11.093 0-17.459 8.91-17.459 24.363c.002 15.456 6.366 24.365 17.273 24.365c10.73 0 17.094-8.91 17.094-24.365c0-15.272-6.183-24.363-16.908-24.363m-415.635.363c-14.182 0-22.365 8.728-22.365 24c0 14.91 7.82 23.092 22.183 23.092c3.09 0 5.636-.182 9.636-.726V65.24c-3.273-1.09-6-1.454-9.454-1.454m310.71 4.18c-6.725 3.82-10.182 10.73-10.182 20.547c0 14.002 6.911 22.001 19.274 22.001c3.818 0 6.91-.728 10.545-1.818v-9.635c0-3.273-.18-6.911-.18-10.728l-.181-12.909l-.183-9.273v-2.183h-2.91c-5.453-.182-11.817 1.272-16.182 3.999M132.91.15v28.728h-28V.149z"/></symbol><use href="#ai:logos:django"></use> 99 </svg></a><a href="https://aws.amazon.com" aria-label="AWS" target="_blank" rel="noopener noreferrer" title="AWS" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="1.68em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:aws"><symbol id="ai:logos:aws" viewBox="0 0 256 153"><path fill="#252f3e" d="M72.392 55.438c0 3.137.34 5.68.933 7.545a45.4 45.4 0 0 0 2.712 6.103c.424.678.593 1.356.593 1.95c0 .847-.508 1.695-1.61 2.543l-5.34 3.56c-.763.509-1.526.763-2.205.763c-.847 0-1.695-.424-2.543-1.187a26 26 0 0 1-3.051-3.984c-.848-1.44-1.696-3.052-2.628-5.001q-9.919 11.697-24.922 11.698c-7.12 0-12.8-2.035-16.954-6.103c-4.153-4.07-6.272-9.495-6.272-16.276c0-7.205 2.543-13.054 7.714-17.462c5.17-4.408 12.037-6.612 20.768-6.612c2.882 0 5.849.254 8.985.678c3.137.424 6.358 1.102 9.749 1.865V29.33c0-6.443-1.357-10.935-3.985-13.563c-2.712-2.628-7.29-3.9-13.817-3.9c-2.967 0-6.018.34-9.155 1.103s-6.188 1.695-9.155 2.882c-1.356.593-2.373.932-2.967 1.102s-1.017.254-1.356.254c-1.187 0-1.78-.848-1.78-2.628v-4.154c0-1.356.17-2.373.593-2.966c.424-.594 1.187-1.187 2.374-1.78q4.45-2.29 10.68-3.815C33.908.763 38.316.255 42.978.255c10.088 0 17.463 2.288 22.21 6.866c4.662 4.577 7.036 11.528 7.036 20.853v27.464zM37.976 68.323c2.798 0 5.68-.508 8.731-1.526c3.052-1.017 5.765-2.882 8.053-5.425c1.357-1.61 2.374-3.39 2.882-5.425c.509-2.034.848-4.493.848-7.375v-3.56a71 71 0 0 0-7.799-1.441a64 64 0 0 0-7.968-.509c-5.68 0-9.833 1.102-12.63 3.391s-4.154 5.51-4.154 9.748c0 3.984 1.017 6.951 3.136 8.986c2.035 2.119 5.002 3.136 8.901 3.136m68.069 9.155c-1.526 0-2.543-.254-3.221-.848c-.678-.508-1.272-1.695-1.78-3.305L81.124 7.799c-.51-1.696-.764-2.798-.764-3.391c0-1.356.678-2.12 2.035-2.12h8.307c1.61 0 2.713.255 3.306.848c.678.509 1.187 1.696 1.695 3.306l14.241 56.117l13.224-56.117c.424-1.695.933-2.797 1.61-3.306c.679-.508 1.866-.847 3.392-.847h6.781c1.61 0 2.713.254 3.39.847c.679.509 1.272 1.696 1.611 3.306l13.394 56.795L168.01 6.442c.508-1.695 1.102-2.797 1.695-3.306c.678-.508 1.78-.847 3.306-.847h7.883c1.357 0 2.12.678 2.12 2.119c0 .424-.085.848-.17 1.356s-.254 1.187-.593 2.12l-20.43 65.525q-.762 2.544-1.78 3.306c-.678.509-1.78.848-3.22.848h-7.29c-1.611 0-2.713-.254-3.392-.848c-.678-.593-1.271-1.695-1.61-3.39l-13.14-54.676l-13.054 54.59c-.423 1.696-.932 2.798-1.61 3.391c-.678.594-1.865.848-3.39.848zm108.927 2.289c-4.408 0-8.816-.509-13.054-1.526c-4.239-1.017-7.544-2.12-9.748-3.39c-1.357-.764-2.29-1.611-2.628-2.374a6 6 0 0 1-.509-2.374V65.78c0-1.78.678-2.628 1.95-2.628a4.8 4.8 0 0 1 1.526.255c.508.17 1.271.508 2.119.847a46 46 0 0 0 9.324 2.967a51 51 0 0 0 10.088 1.01
997c5.34 0 9.494-.932 12.376-2.797s4.408-4.577 4.408-8.053c0-2.373-.763-4.323-2.289-5.934s-4.408-3.051-8.561-4.408l-12.292-3.814c-6.188-1.95-10.765-4.832-13.563-8.647c-2.797-3.73-4.238-7.883-4.238-12.291q0-5.34 2.289-9.41c1.525-2.712 3.56-5.085 6.103-6.95c2.543-1.95 5.425-3.391 8.816-4.408c3.39-1.017 6.95-1.441 10.68-1.441c1.865 0 3.815.085 5.68.339c1.95.254 3.73.593 5.51.932c1.695.424 3.306.848 4.832 1.357q2.288.762 3.56 1.525c1.187.679 2.034 1.357 2.543 2.12q.763 1.017.763 2.797v3.984c0 1.78-.678 2.713-1.95 2.713c-.678 0-1.78-.34-3.22-1.018q-7.25-3.306-16.276-3.306c-4.832 0-8.647.763-11.275 2.374c-2.627 1.61-3.984 4.069-3.984 7.544c0 2.374.848 4.408 2.543 6.019s4.832 3.221 9.325 4.662l12.037 3.815c6.103 1.95 10.511 4.662 13.139 8.137s3.9 7.46 3.9 11.868c0 3.645-.764 6.951-2.205 9.833c-1.525 2.882-3.56 5.425-6.188 7.46c-2.628 2.119-5.764 3.645-9.409 4.747c-3.815 1.187-7.799 1.78-12.122 1.78"/><path fill="#f90" d="M230.993 120.964c-27.888 20.599-68.408 31.534-103.247 31.534c-48.827 0-92.821-18.056-126.05-48.064c-2.628-2.373-.255-5.594 2.881-3.73c35.942 20.854 80.276 33.484 126.136 33.484c30.94 0 64.932-6.442 96.212-19.666c4.662-2.12 8.646 3.052 4.068 6.442m11.614-13.224c-3.56-4.577-23.566-2.204-32.636-1.102c-2.713.34-3.137-2.034-.678-3.814c15.936-11.19 42.13-7.968 45.181-4.239c3.052 3.815-.848 30.008-15.767 42.554c-2.288 1.95-4.492.933-3.475-1.61c3.39-8.393 10.935-27.296 7.375-31.789"/></symbol><use href="#ai:logos:aws"></use> 100 </svg></a><a href="https://cloud.google.com" aria-label="Google Cloud" target="_blank" rel="noopener noreferrer" title="Google Cloud" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="6.17em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="googlecloud"><symbol id="ai:local:googlecloud" viewBox="0.4 -0.5 178.1 28.9"><path fill="#ea4335" d="M21.85 7.41h1l2.85-2.85.14-1.21A12.81 12.81 0 0 0 5 9.6a1.55 1.55 0 0 1 1-.06l5.7-.94s.29-.48.44-.45a7.11 7.11 0 0 1 9.73-.74z"/><path fill="#4285f4" d="M29.76 9.6a12.84 12.84 0 0 0-3.87-6.24l-4 4A7.11 7.11 0 0 1 24.5 13v.71a3.56 3.56 0 1 1 0 7.12h-7.12l-.71.72v4.27l.71.71h7.12A9.26 9.26 0 0 0 29.76 9.6"/><path fill="#34a853" d="M10.25 26.49h7.12v-5.7h-7.12a3.5 3.5 0 0 1-1.47-.32l-1 .31-2.87 2.85-.25 1a9.2 9.2 0 0 0 5.59 1.86"/><path fill="#fbbc05" d="M10.25 8a9.26 9.26 0 0 0-5.59 16.6l4.13-4.13a3.56 3.56 0 1 1 4.71-4.71l4.13-4.13A9.25 9.25 0 0 0 10.25 8"/><path fill="#5f6368" d="M52.79 22.51a9.1 9.1 0 0 1-6.6-2.71 8.8 8.8 0 0 1-2.77-6.52 8.8 8.8 0 0 1 2.77-6.52A9.1 9.1 0 0 1 52.79 4a8.84 8.84 0 0 1 6.33 2.55l-1.78 1.81a6.4 6.4 0 0 0-4.55-1.8 6.34 6.34 0 0 0-4.7 2 6.53 6.53 0 0 0-1.93 4.75A6.53 6.53 0 0 0 48.09 18a6.71 6.71 0 0 0 9.36.11A5.32 5.32 0 0 0 58.82 15h-6v-2.56h8.49a8 8 0 0 1 .1 1.56 8 8 0 0 1-2.19 5.9 8.5 8.5 0 0 1-6.43 2.61m19.74-1.7a6.12 6.12 0 0 1-8.47 0 5.7 5.7 0 0 1-1.73-4.25 5.7 5.7 0 0 1 1.73-4.25 6.13 6.13 0 0 1 8.47 0 5.7 5.7 0 0 1 1.73 4.25 5.7 5.7 0 0 1-1.74 4.25zm-6.6-1.67a3.24 3.24 0 0 0 4.73 0 3.56 3.56 0 0 0 1-2.58 3.57 3.57 0 0 0-1-2.59 3.29 3.29 0 0 0-4.75 0 3.57 3.57 0 0 0-1 2.59 3.56 3.56 0 0 0 1.01 2.58zm19.62 1.67a6.12 6.12 0 0 1-8.47 0 5.7 5.7 0 0 1-1.73-4.25 5.7 5.7 0 0 1 1.73-4.25 6.12 6.12 0 0 1 8.47 0 5.7 5.7 0 0 1 1.73 4.25 5.7 5.7 0 0 1-1.73 4.25m-6.6-1.67a3.24 3.24 0 0 0 4.73 0 3.56 3.56 0 0 0 1-2.58 3.57 3.57 0 0 0-1-2.59 3.29 3.29 0 0 0-4.75 0 3.57 3.57 0 0 0-1 2.59 3.56 3.56 0 0 0 1.01 2.58zm15.16 8.71a5.24 5.24 0 0 1-3.33-1.06 6.13 6.13 0 0 1-1.94-2.46l2.28-.95a3.84 3.84 0 0 0 1.13 1.49 2.85 2.85 0 0 0 1.87.63 3 3 0 0 0 2.33-.9 3.65 3.65 0 0 0 .83-2.6v-.86h-.09a3.81 3.81 0 0 1-3.13 1.35 5.43 5.43 0 0 1-4-1.74 5.75 5.75 0 0 1-1.71-4.19 5.8 5.8 0 0 1 1.71-4.22 5.42 5.42 0 0 1 4-1.75 4.3 4.3 0 0 1 1.84.41 3.7 3.7 0 0 1 1.3.95h.09V11h2.48v10.65a6.2 6.2 0 0 1-1.59 4.65 5.6 5.6 0 0 1-4.07 1.55m.18-7.68a2.91 2.91 0 0 0 2.26-1 3.7 3.7 0 0 0 .91-2.56 3.78 3.78 0 0 0-.91-2.61 2.9 2.9 0 0 0-2.26-1 3.1 3.1 0 0 0-2.34 1 3.65 3.65 0 0 0-1 2.59 3.58 3.58 0 0 0 1 2.56 3.1 3.1 0 0 0 2.34 1.02m9.89-15.5v17.48h-2.61V4.67zm7.16 17.84a5.68 5.68 0 0 1-4.21-1.71 5.8 5.8 0 0 1-1.69-4.24 5.86 5.86 0 0 1 1.63-4.28 5.36 5.36 0 0 1 4-1.67 5.05 5.05 0 0 1 2 .39 4.7 4.7 0 0 1 1.53 1 7 7 0 0 1 1 1.21 7 7 0 0 1 .59 1.17l.27.68-8 3.29a3 3 0 0 0 2.88 1.8 3.41 3.41 0 0 0 2.93-1.65l2 1.35a6.6 6.6 0 0 1-1.92 1.82 5.44 5.44 0 0 1-3.01.84M108 16.38l5.32-2.21a1.84 1.84 0 0 0-.83-.91 2.7 2.7 0 0 0-1.37-.35 3.1 3.1 0 0 0-2.15.95 3.17 3.17 0 0 0-.97 2.52m22.13 6.13a8.24 8.24 0 0 1-8.38-8.43 8.24 8.24 0 0 1 8.38-8.43 7.46 7.46 0 0 1 5.93 2.64l-1.44 1.4a5.44 5.44 0 0 0-4.48-2.05 6.1 6.1 0 0 0-4.45 1.78 6.24 6.24 0 0 0-1.81 4.66 6.24 6.24 0 0 0 1.81 4.66 6.1 6.1 0 0 0 4.45 1.78 6.36 6.36 0 0 0 5-2.34l1.44 1.44a7.86 7.86 0 0 1-2.77 2.11 8.5 8.5 0 0 1-3.68.78m10.32-.36h-2.07V6h2.07zm3.38-9.72a5.79 5.79 0 0 1 8.16 0 5.85 5.85 0 0 1 1.6 4.2 5.85 5.85 0 0 1-1.6 4.2 5.79 5.79 0 0 1-8.16 0 5.85 5.85 0 0 1-1.6-4.2 5.85 5.85 0 0 1 1.6-4.2m1.54 7.1a3.49 3.49 0 0 0 5.07 0 4 4 0 0 0 1.07-2.9 4 4 0 0 0-1.07-2.9 3.49 3.49 0 0 0-5.07 0 4 4 0 0 0-1.07 2.9 4 4 0 0 0 1.08 2.89zm19.69 2.62h-2v-1.53H163a3.85 3.85 0 0 1-1.46 1.38 4.1 4.1 0 0 1-2.05.55 3.89 3.89 0 0 1-3.14-1.26 5 5 0 0 1-1.07-3.38v-6.8h2.07v6.42q0 3.09 2.73 3.09a2.54 2.54 0 0 0 2.1-1 3.77 3.77 0 0 0 .81-2.39v-6.12h2.07zm7.
10003.36a4.86 4.86 0 0 1-3.7-1.69 6 6 0 0 1-1.55-4.19 6 6 0 0 1 1.55-4.19 4.86 4.86 0 0 1 3.7-1.69 4.7 4.7 0 0 1 2.26.54 3.83 3.83 0 0 1 1.5 1.35h.09l-.09-1.53V6h2.07v16.15h-2v-1.53h-.09a3.83 3.83 0 0 1-1.5 1.35 4.7 4.7 0 0 1-2.24.54m.34-1.89a3.3 3.3 0 0 0 2.49-1.08 4.05 4.05 0 0 0 1-2.91 4.05 4.05 0 0 0-1-2.91 3.38 3.38 0 0 0-5 0 4 4 0 0 0-1 2.9 4 4 0 0 0 1 2.9 3.3 3.3 0 0 0 2.51 1.1"/></symbol><use href="#ai:local:googlecloud"></use> 101 </svg></a><a href="https://www.digitalocean.com" aria-label="DigitalOcean" target="_blank" rel="noopener noreferrer" title="DigitalOcean" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="5.93em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="digitalocean"><symbol id="ai:local:digitalocean" viewBox="0 0 1002 169"><path fill="#0080ff" d="M84.16 169v-32.88c34.86 0 61.75-34.37 48.31-70.74A49 49 0 0 0 103.09 36a51.94 51.94 0 0 0-70.22 48.31H0c0-54.8 53.29-98.14 111.55-80.2a81.43 81.43 0 0 1 53.29 53.3C182.77 115.7 139.44 169 84.16 169"/><path fill="#0080ff" d="M84.66 136.12H51.79v-32.38h32.87m-32.87 57.79h-24.9v-25.41h24.9zm-24.9-25.41H6V115.2h20.89M300.3 48.94c-9.46-6.48-21.91-10-35.86-10h-30.37v97.14h30.38q20.92 0 35.86-10.46a38.1 38.1 0 0 0 12.45-15.44c3-6.48 4.48-14.45 4.48-22.92s-1.49-16.44-4.48-22.42c-3-7.43-6.98-12.41-12.46-15.9M252 55.42h9.46c10.46 0 19.42 2 26.39 6.48 7.47 4.48 11 13 11 25.41s-4 21.42-11 26.4c-6.47 4-14.94 6.48-25.9 6.48H252zm86.65-17.93a10.13 10.13 0 0 0-7.47 3 9 9 0 0 0-3.49 7.47 10.46 10.46 0 1 0 20.92 0 10.14 10.14 0 0 0-3-7.47c-1.49-2-4-3-7-3m-9 29.89h17.43v68.25h-17.36V67.38m79.68 6c-5-4.48-11-7.47-17.43-7.47a30.82 30.82 0 0 0-23.41 10 34.7 34.7 0 0 0-9.46 24.41c0 9.47 3 17.93 9 24.41s13.94 9.47 23.41 9.47a27.56 27.56 0 0 0 16.93-5.48v1.49c0 5.48-1.49 10-4.48 13s-7 4.48-12.45 4.48c-8 0-12.95-3-18.92-11.46l-12 11.46.5.5c2.49 3.49 6.47 7 11.45 10.46s11.45 5 18.92 5c10.46 0 18.43-3 24.4-9.47s9.46-14.45 9.46-24.91V67.38h-16.91v6h1m-4.48 40.35c-3 3.49-7 5-12 5s-9-1.49-12-5-4.48-8-4.48-13.45S378 90.29 381 86.8s7-5 12-5 9 1.49 12 5 4.48 8 4.48 13.45-1.49 10-4.48 13.45m36.35-46.33h17.43v68.25h-17.54V67.38m8.47-29.89a10.21 10.21 0 0 0-10.46 10.46 10.46 10.46 0 1 0 20.92 0 10.21 10.21 0 0 0-10.47-10.46M496 48.94h-16.91v18.44h-10v15.44h10v28.4c0 9 2 15.44 5.48 18.93s10 5.48 18.43 5.48a48.3 48.3 0 0 0 8.47-.5h1v-15.45l-6 .5c-4 0-7-.5-8-2-1.49-1.49-2-4.48-2-9V83.32h15.94V67.87h-15.89zm96.61-10h17.43v97.14h-17.41V39m191.24 72.73a57.8 57.8 0 0 1-8.47 8 17.2 17.2 0 0 1-9 2.49 17 17 0 0 1-12.4-5.53c-3.49-4-5-8.47-5-14.45s1.49-10.46 5-14.45a15.31 15.31 0 0 1 12.45-5.48c5.48 0 11.45 3.49 16.43 9.47l11.45-11c-7.47-9.47-16.93-13.95-28.39-13.95-9.46 0-17.43 3.49-24.4 10.46a36.2 36.2 0 0 0-10 25.41c0 10 3.49 18.93 10 25.41a32.4 32.4 0 0 0 24.4 10.46c12.45 0 22.41-5.48 29.38-15.44l-11.45-11.46m70.22-34.37a26.2 26.2 0 0 0-10-8 32.5 32.5 0 0 0-14.44-3c-9.46 0-17.43 3.49-23.41 10.46a40 40 0 0 0-8.47 25.41c0 10.46 3 18.93 9.46 25.41s14.44 10 24.9 10c11.45 0 20.92-4.48 28.39-13.95l.5-.5-11.45-11c-1 1.49-2.49 2.49-4 4a15.2 15.2 0 0 1-5 3.49 16.36 16.36 0 0 1-8.47 2 19.17 19.17 0 0 1-12-4c-3-2.49-4.48-6-5-10.46h45.82v-6.48a37.2 37.2 0 0 0-2-13 22.6 22.6 0 0 0-5-10.46m-37.18 16.06a17.64 17.64 0 0 1 4.48-8 12 12 0 0 1 9-3.49c4 0 7.47 1 9.46 3.49 2 2 3 5 3.49 8zm103.59-20.43c-5-4.48-12.45-6.48-21.41-6.48a43.6 43.6 0 0 0-15.92 3.5c-4.48 2.49-9 6-11.45 11l11 10.46c4.48-7.47 9.46-10 16.43-10a13.9 13.9 0 0 1 9 3 9 9 0 0 1 3.49 7.47v3.49a38.1 38.1 0 0 0-12.45-2q-12.7 0-20.92 6c-5.48 4-8 10-8 16.94 0 6.48 2 11.46 6.47 15.44s10 5.48 16.43 5.48 12.45-2.49 18.43-7v5.48h16.93V91.79c0-8-2.49-14.45-8-18.93m-30.38 36.86c2-1.49 4.48-2 8-2a42.4 42.4 0 0 1 12.95 2.49v6.48a22 22 0 0 1-14.94 5.48c-3 0-5.48-.5-7-2s-2.49-3-2.49-5a8.17 8.17 0 0 1 3.49-5.48m104.54-35.84c-5-5.48-11.45-8-19.92-8q-10.46 0-16.43 6v-4h-16.94v68.25h17.43V98.26c0-5 1-9.47 3.49-12.45a12.54 12.54 0 0 1 10-4.48 10.94 10.94 0 0 1 9 4 18 18 0 0 1 3.49 11v39.85H1002V96.27q-.75-14.2-7.47-22.42m-423.31-1c-5-4.48-12.45-6.48-21.41-6.48a43.6 43.6 0 0 0-15.94 3.49c-4.48 2.49-9 6-11.45 11l11 10.46c4.48-7.47 9.46-10 16.43-10a13.9 13.9 0 0 1 9 3 9 9 0 0 1 3.49 7.47v3.49a38.1 38.1 0 0 0-12.45-2q-12.7 0-20.92 6c-5.48 4-8 10-8 16.94 0 6.48 2 11.46 6.47 15.44s10 5.48 16.43 5.48 12.45-2.49 18.43-7v5.48h16.93V91.79c0-8-3-14.45-8-18.93m-30.88 36.86c2-1.49 4.48-2 8-2a42.4 42.4 0 0 1 12.95 2.49v6.48a22 22 0 0 1-14.94 5.48c-3 0-5.48-.5-7-2s-2.49-3-2.49-5a14.8 14.8 0 0 1 3.49-5.48m132 27.9a49.82 49.82 0 1 1 49.8-49.82 50 50 0 0 1-49.8 49.82m0-82.69a32.38 32.38 0 1 0 32.33 32.4 32.31 32.31 0 0 0-32.37-32.38"/></symbol><use href="#ai:local:digitalocean"></use> 102 </svg></a><a href="https://www.hetzner.com" aria-label="Hetzner" target="_blank" rel="noopener noreferrer" title="Hetzner" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="8.16em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="hetzner"><symbol id="ai:local:hetzner" viewBox="0 0 181.42 22.24"><path fill="#d50c2d" d="M174.05 14.12a10.2 10.2 0 0 0 4.53-2 6.15 6.15 0 0 0 1.68-4.78 7.7 7.7 0 0 0-1.14-4.06 6.47 6.47 0 0 0-5.28-3.19h-1.09L170.2 0h-11.54c-.7 0-1 .29-1 1v20.22c0 .7.29 1 1 1h3c.7 0 1-.29 1-1v-6.7h3.67a3.48 3.48 0 0 1 2.17.91l5.82 5.85a3.08 3.08 0 0 0 2 .92h4.47c.7 0 .87-.41.38-.91Zm-.76-4.3h-10.65v-5.1h10.65a2.13 2.13 0 0 1 1.87 2.15v.79a2.14 2.14 0 0 1-1.87 2.16M153 17.52h-16.53v-4.17h13.19c.7 0 1-.29 1-1V9.92c0-.7-.29-1-1-1h-13.2V4.76H153c.7 0 1-.29 1-1V1c0-.7-.29-1-1-1h-20.62c-.7 0-1 .29-1 1v20.24c0 .7.29 1 1 1H153c.7 0 1-.29 1-1v-2.73c0-.7-.33-.99-1-.99M127.73 7.3a7.25 7.25 0 0 0-1.13-4 6.61 6.61 0 0 0-5.36-3.3h-15.16c-.71 0-1 .29-1 1v20.22c0 .7.29 1 1 1h3.26c.7 0 1-.28 1-1V4.73h8.78c1.87 0 3.69 1.24 3.69 3.11v13.4c0 .7.29 1 1 1h2.95c.71 0 1-.29 1-1Zm-27.26 10.09H86.22L100.5 4.84a2.57 2.57 0 0 0 1-1.84V1c0-.7-.3-1-1-1H79.83c-.7 0-1 .29-1 1v2.77c0 .7.29 1 1 1h13.25L79.79 17.24a2.62 2.62 0 0 0-1 1.84v2.17c0 .7.29 1 1 1h20.65c.7 0 1-.29 1-1v-2.87c.02-.7-.27-.99-.97-.99M74.19 0H53.55c-.71 0-1 .28-1 1v2.76c0 .7.28 1 1 1h7.78v16.48c0 .7.29 1 1 1h3.3c.7 0 1-.29 1-1V4.75h7.57c.7 0 1-.29 1-1V1c-.02-.68-.31-1-1.01-1M47.91 17.52h-16.5v-4.17H44.6c.7 0 1-.29 1-1V9.92c0-.7-.28-1-1-1H31.41V4.76h16.5c.7 0 1-.29 1-1V1c0-.7-.29-1-1-1H27.33c-.7 0-1 .29-1 1v20.24c0 .7.29 1 1 1h20.58c.7 0 1-.29 1-1v-2.73c-.01-.7-.3-.99-1-.99M21.63 0h-3.11c-.7 0-1 .29-1 1v7.87H5.13V1c0-.7-.29-1-1-1H1C.29 0 0 .29 0 1v20.25c0 .71.29 1 1 1h3.13c.7 0 1-.28 1-1v-8h12.4v8c0 .7.29 1 1 1h3.11c.7 0 1-.29 1-1V1c-.02-.68-.31-1-1.01-1"/></symbol><use href="#ai:local:hetzner"></use> 103 </svg></a><a href="https://www.microsoft.com/microsoft-365" aria-label="Microsoft 365" target="_blank" rel="noopener noreferrer" title="Microsoft 365" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="4.66em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:microsoft"><symbol id="ai:logos:microsoft" viewBox="0 0 512 110"><path fill="#706d6e" d="M512 49.449v-9.005h-11.182V26.446l-.376.115l-10.503 3.214l-.206.063v10.606h-16.577v-5.908c0-2.751.615-4.857 1.828-6.26c1.204-1.388 2.926-2.093 5.122-2.093c1.58 0 3.214.372 4.86 1.105l.412.184V17.99l-.194-.07c-1.535-.553-3.623-.83-6.21-.83c-3.262 0-6.225.709-8.81 2.116s-4.62 3.419-6.045 5.976c-1.42 2.554-2.14 5.503-2.14 8.767v6.496h-7.786v9.005h7.786v37.933h11.177V49.449h16.577v24.106c0 9.928 4.682 14.96 13.918 14.96a22.8 22.8 0 0 0 4.746-.528c1.66-.357 2.79-.714 3.456-1.095l.147-.087v-9.088l-.454.301c-.607.405-1.362.735-2.248.98c-.89.25-1.633.376-2.208.376c-2.164 0-3.764-.583-4.758-1.734c-1.004-1.16-1.514-3.191-1.514-6.031v-22.16zm-82.768 29.926c-4.057 0-7.255-1.346-9.51-3.995c-2.267-2.664-3.417-6.46-3.417-11.285c0-4.977 1.15-8.872 3.419-11.583c2.25
1035-2.692 5.423-4.059 9.417-4.059c3.875 0 6.96 1.305 9.17 3.882c2.221 2.589 3.348 6.453 3.348 11.488c0 5.097-1.06 9.013-3.15 11.632c-2.075 2.6-5.196 3.92-9.277 3.92m.498-40.062c-7.74 0-13.888 2.268-18.27 6.741c-4.381 4.474-6.602 10.664-6.602 18.402c0 7.349 2.168 13.26 6.444 17.567s10.096 6.49 17.295 6.49c7.503 0 13.528-2.299 17.91-6.834c4.38-4.53 6.6-10.662 6.6-18.22c0-7.463-2.083-13.418-6.192-17.696c-4.112-4.28-9.895-6.45-17.185-6.45m-42.894 0c-5.265 0-9.62 1.347-12.947 4.002c-3.346 2.671-5.044 6.175-5.044 10.414c0 2.203.366 4.16 1.088 5.82c.725 1.666 1.848 3.132 3.34 4.363c1.48 1.221 3.765 2.5 6.794 3.8c2.545 1.048 4.444 1.935 5.65 2.633c1.179.685 2.016 1.373 2.488 2.043c.459.655.692 1.553.692 2.66c0 3.154-2.361 4.688-7.22 4.688c-1.803 0-3.859-.376-6.111-1.118a23 23 0 0 1-6.257-3.173l-.464-.332v10.76l.17.08c1.582.73 3.576 1.345 5.926 1.83c2.346.484 4.476.731 6.328.731c5.713 0 10.314-1.353 13.67-4.024c3.38-2.69 5.092-6.275 5.092-10.662c0-3.163-.922-5.877-2.74-8.065c-1.803-2.17-4.935-4.163-9.303-5.924c-3.48-1.397-5.71-2.556-6.629-3.446c-.887-.86-1.337-2.076-1.337-3.615c0-1.366.556-2.459 1.697-3.345c1.15-.89 2.75-1.343 4.756-1.343c1.863 0 3.768.294 5.663.87c1.894.577 3.556 1.35 4.945 2.294l.456.312V41.358l-.175-.075c-1.28-.55-2.97-1.02-5.02-1.4c-2.044-.378-3.897-.57-5.508-.57m-47.13 40.062c-4.056 0-7.255-1.346-9.509-3.995c-2.268-2.664-3.415-6.46-3.415-11.285c0-4.977 1.148-8.872 3.418-11.583c2.253-2.692 5.42-4.059 9.416-4.059c3.875 0 6.96 1.305 9.17 3.882c2.221 2.589 3.348 6.453 3.348 11.488c0 5.097-1.06 9.013-3.15 11.632c-2.076 2.6-5.196 3.92-9.278 3.92m.499-40.062c-7.742 0-13.89 2.268-18.27 6.741c-4.38 4.474-6.603 10.664-6.603 18.402c0 7.352 2.17 13.26 6.445 17.567s10.095 6.49 17.296 6.49c7.5 0 13.528-2.299 17.91-6.834c4.379-4.53 6.6-10.662 6.6-18.22c0-7.463-2.084-13.418-6.194-17.696c-4.113-4.28-9.895-6.45-17.184-6.45m-41.84 9.26v-8.129h-11.041v46.937h11.04V63.37c0-4.083.926-7.437 2.753-9.97c1.803-2.503 4.207-3.772 7.14-3.772c.995 0 2.111.164 3.32.489c1.197.322 2.064.672 2.575 1.04l.464.337v-11.13l-.18-.077c-1.027-.437-2.482-.657-4.322-.657c-2.775 0-5.258.891-7.384 2.646c-1.867 1.543-3.217 3.659-4.248 6.297zm-30.813-9.26c-5.065 0-9.584 1.087-13.427 3.228c-3.85 2.145-6.829 5.21-8.855 9.105c-2.017 3.887-3.041 8.427-3.041 13.49c0 4.434.993 8.504 2.955 12.09c1.964 3.593 4.744 6.404 8.262 8.354c3.514 1.947 7.575 2.934 12.07 2.934c5.247 0 9.727-1.049 13.32-3.117l.144-.084V75.198l-.463.339a20.8 20.8 0 0 1-5.402 2.812c-1.952.681-3.73 1.025-5.29 1.025c-4.333 0-7.81-1.355-10.335-4.027c-2.53-2.677-3.813-6.434-3.813-11.163c0-4.758 1.338-8.612 3.974-11.457c2.629-2.835 6.113-4.273 10.356-4.273c3.629 0 7.165 1.229 10.51 3.656l.463.336V41.788l-.149-.084c-1.26-.705-2.976-1.287-5.108-1.728c-2.122-.44-4.198-.663-6.171-.663m-32.927 1.131h-11.042v46.937h11.042zm-5.408-19.995c-1.817 0-3.402.619-4.704 1.844c-1.308 1.23-1.972 2.778-1.972 4.604c0 1.798.656 3.317 1.95 4.514c1.287 1.193 2.877 1.798 4.726 1.798c1.848 0 3.444-.605 4.746-1.796c1.31-1.199 1.975-2.718 1.975-4.516c0-1.762-.647-3.295-1.921-4.554c-1.273-1.257-2.889-1.894-4.8-1.894m-27.548 16.533V87.38h11.268V21.886h-15.595l-19.823 48.647l-19.236-48.647h-16.23v65.495h10.589V36.977h.364l20.313 50.404h7.99l19.996-50.4z"/><path fill="#f1511b" d="M51.939 51.939H0V0h51.939z"/><path fill="#80cc28" d="M109.287 51.939H57.348V0h51.939z"/><path fill="#00adef" d="M51.938 109.307H0V57.368h51.938z"/><path fill="#fbbc09" d="M109.287 109.307H57.348V57.368h51.939z"/></symbol><use href="#ai:logos:microsoft"></use> 104 </svg></a><a href="https://stripe.com" aria-label="Stripe" target="_blank" rel="noopener noreferrer" title="Stripe" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="2.4em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:stripe"><symbol id="ai:logos:stripe" viewBox="0 0 512 214"><path fill="#635bff" d="M512 110.08c0-36.409-17.636-65.138-51.342-65.138c-33.85 0-54.33 28.73-54.33 64.854c0 42.808 24.179 64.426 58.88 64.426c16.925 0 29.725-3.84 39.396-9.244v-28.445c-9.67 4.836-20.764 7.823-34.844 7.823c-13.796 0-26.027-4.836-27.591-21.618h69.547c0-1.85.284-9.245.284-12.658m-70.258-13.511c0-16.071 9.814-22.756 18.774-22.756c8.675 0 17.92 6.685 17.92 22.756zm-90.31-51.627c-13.939 0-22.899 6.542-27.876 11.094l-1.85-8.818h-31.288v165.83l35.555-7.537l.143-40.249c5.12 3.698 12.657 8.96 25.173 8.96c25.458 0 48.64-20.48 48.64-65.564c-.142-41.245-23.609-63.716-48.498-63.716m-8.534 97.991c-8.391 0-13.37-2.986-16.782-6.684l-.143-52.765c3.698-4.124 8.818-6.968 16.925-6.968c12.942 0 21.902 14.506 21.902 33.137c0 19.058-8.818 33.28-21.902 33.28M241.493 36.551l35.698-7.68V0l-35.698 7.538zm0 10.809h35.698v124.444h-35.698zm-38.257 10.524L200.96 47.36h-30.72v124.444h35.556V87.467c8.39-10.951 22.613-8.96 27.022-7.396V47.36c-4.551-1.707-21.191-4.836-29.582 10.524m-71.112-41.386l-34.702 7.395l-.142 113.92c0 21.05 15.787 36.551 36.836 36.551c11.662 0 20.195-2.133 24.888-4.693V140.8c-4.55 1.849-27.022 8.391-27.022-12.658V77.653h27.
104022V47.36h-27.022zM35.982 83.484c0-5.546 4.551-7.68 12.09-7.68c10.808 0 24.461 3.272 35.27 9.103V51.484c-11.804-4.693-23.466-6.542-35.27-6.542C19.2 44.942 0 60.018 0 85.192c0 39.252 54.044 32.995 54.044 49.92c0 6.541-5.688 8.675-13.653 8.675c-11.804 0-26.88-4.836-38.827-11.378v33.849c13.227 5.689 26.596 8.106 38.827 8.106c29.582 0 49.92-14.648 49.92-40.106c-.142-42.382-54.329-34.845-54.329-50.774"/></symbol><use href="#ai:logos:stripe"></use> 105 </svg></a><a href="https://gocardless.com" aria-label="GoCardless" target="_blank" rel="noopener noreferrer" title="GoCardless" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="8.93em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="gocardless"><symbol id="ai:local:gocardless" viewBox="9.1 24.3 101.7 11.4"><path fill="#0854b3" fill-rule="evenodd" d="M14.9 35.3c-3.2 0-5.4-2.2-5.4-5.3 0-2.9 2.3-5.3 5.3-5.3 1.8 0 2.9.5 4 1.4l-1.4 1.7c-.8-.7-1.5-1-2.7-1-1.6 0-2.9 1.5-2.9 3.2 0 1.9 1.3 3.2 3.1 3.2q1.2 0 2.1-.6v-1.5h-2.3v-1.9h4.4v4.4c-.9.9-2.4 1.7-4.2 1.7m11.2 0c-3.1 0-5.4-2.4-5.4-5.3s2.3-5.3 5.4-5.3 5.4 2.4 5.4 5.3-2.2 5.3-5.4 5.3m3.1-5.3c0-1.8-1.3-3.2-3.1-3.2S23 28.2 23 30s1.3 3.2 3.1 3.2c1.9 0 3.1-1.4 3.1-3.2m8.8 5.3c-2.9 0-5.1-2.3-5.1-5.3 0-2.9 2.2-5.3 5.2-5.3 1.9 0 3 .7 4 1.6l-.8.8c-.9-.8-1.8-1.4-3.2-1.4-2.3 0-3.9 1.8-3.9 4.2s1.7 4.2 3.9 4.2c1.4 0 2.3-.5 3.3-1.5l.8.7c-1.2 1.3-2.4 2-4.2 2m15.4-.2h-1.2L51 32.4h-5.5l-1.2 2.7H43l4.6-10.3h1.1zm-5.2-8.9-2.3 5.2h4.6zM62 35.1l-3-4h-2.9v4H55V24.9h4.4c2.2 0 3.7 1.2 3.7 3 0 1.7-1.2 2.7-2.8 3l3.1 4.2zM59.3 26h-3.1v4.1h3.1c1.5 0 2.6-.8 2.6-2.1s-1-2-2.6-2m9.5 9.1h-3.5V24.9h3.5c3.2 0 5.4 2.2 5.4 5.1s-2.2 5.1-5.4 5.1m0-9.1h-2.4v8.1h2.4c2.6 0 4.2-1.8 4.2-4 0-2.4-1.6-4.1-4.2-4.1m7.6-1.1h1.1V34h5.7v1.1h-6.9V24.9zm15.9 1h-6.2v3.5h5.5v1h-5.5V34h6.3v1.1H85V24.9h7.4v1zm5.8 3.5c2.3.5 3.3 1.3 3.3 2.9 0 1.8-1.4 2.9-3.5 2.9-1.6 0-2.9-.5-4.2-1.6l.7-.8c1.1 1 2.1 1.5 3.5 1.5s2.3-.7 2.3-1.8c0-1-.5-1.5-2.6-2-2.3-.5-3.4-1.3-3.4-3 0-1.6 1.4-2.8 3.3-2.8 1.5 0 2.5.4 3.6 1.2l-.7.9c-.9-.8-1.9-1.1-2.9-1.1-1.3 0-2.2.7-2.2 1.7.1 1 .6 1.6 2.8 2m9 0c2.3.5 3.3 1.3 3.3 2.9 0 1.8-1.4 2.9-3.5 2.9-1.6 0-2.9-.5-4.2-1.6l.7-.8c1.1 1 2.1 1.5 3.5 1.5s2.3-.7 2.3-1.8c0-1-.5-1.5-2.6-2-2.3-.5-3.4-1.3-3.4-3 0-1.6 1.4-2.8 3.3-2.8 1.5 0 2.5.4 3.6 1.2l-.7.9c-.9-.8-1.9-1.1-2.9-1.1-1.3 0-2.2.7-2.2 1.7.1 1 .6 1.6 2.8 2" clip-rule="evenodd"/></symbol><use href="#ai:local:gocardless"></use> 106 </svg></a><a href="https://razorpay.com" aria-label="Razorpay" target="_blank" rel="noopener noreferrer" title="Razorpay" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="4.74em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="razorpay"><symbol id="ai:local:razorpay" viewBox="0.8 0.48 1894.74 400.27"><g fill="#072654"><path fill="#3395ff" d="m122.63 105.7-15.75 57.97 90.15-58.3-58.96 219.98 59.88.05L285.05.48"/><path d="M25.6 232.92.8 325.4h122.73l50.22-188.13zm426.32-81.42c-3 11.15-8.78 19.34-17.4 24.57-8.6 5.22-20.67 7.84-36.25 7.84h-49.5l17.38-64.8h49.5c15.56 0 26.25 2.6 32.05 7.9s7.2 13.4 4.22 24.6m51.25-1.4c6.3-23.4 3.7-41.4-7.82-54-11.5-12.5-31.68-18.8-60.48-18.8H324.4l-66.5 248.1h53.67l26.8-100h35.2c7.9 0 14.12 1.3 18.66 3.8 4.55 2.6 7.22 7.1 8.04 13.6l9.58 82.6h57.5l-9.32-77c-1.9-17.2-9.77-27.3-23.6-30.3 17.63-5.1 32.4-13.6 44.3-25.4a92.6 92.6 0 0 0 24.44-42.5m130.46 86.4c-4.5 16.8-11.4 29.5-20.73 38.4-9.34 8.9-20.5 13.3-33.52 13.3-13.26 0-22.25-4.3-27-13-4.76-8.7-4.92-21.3-.5-37.8s11.47-29.4 21.17-38.7 21.04-13.95 34.06-13.95c13 0 21.9 4.5 26.4 13.43 4.6 8.97 4.7 21.8.2 38.5zm23.52-87.8-6.72 25.1c-2.9-9-8.53-16.2-16.85-21.6-8.34-5.3-18.66-8-30.97-8q-22.65 0-43.5 11.7c-20.85 11.7-26.1 18.8-36.5 33s-18 30.3-22.9 48.4c-4.8 18.2-5.8 34.1-2.9 47.9 3 13.9 9.3 24.5 19 31.9 9.8 7.5 22.3 11.2 37.6 11.2a82.4 82.4 0 0 0 35.2-7.7 82.1 82.1 0 0 0 28.4-21.2l-7 26.16h51.9L709.3 149h-52zm238.65 0H744.87l-10.55 39.4h87.82l-116.1 100.3-9.92 37h155.8l10.55-39.4h-94.1l117.88-101.8m142.4 52c-4.67 17.4-11.6 30.48-20.75 39q-13.725 12.9-33.24 12.9c-27.2 0-36.14-17.3-26.86-51.9 4.6-17.2 11.56-30.13 20.86-38.84 9.3-8.74 20.57-13.1 33.82-13.1 13 0 21.78 4.33 26.3 13.05 4.52 8.7 4.48 21.67-.13 38.87m30.38-80.83c-11.95-7.44-27.2-11.16-45.8-11.16-18.83 0-36.26 3.7-52.3 11.1a113.1 113.1 0 0 0-41 32.06c-11.3 13.9-19.43 30.2-24.42 48.8-4.9 18.53-5.5 34.8-1.7 48.73 3.8 13.9 11.8 24.6 23.8 32 12.1 7.46 27.5 11.17 46.4 11.17 18.6 0 35.9-3.74 51.8-11.18 15.9-7.48 29.5-18.1 40.8-32.1 11.3-13.94 19.4-30.2 24.4-48.8s5.6-34.84 1.8-48.8c-3.8-13.9-11.7-24.6-23.6-32.05m185.1 40.8 13.3-48.1c-4.5-2.3-10.4-3.5-17.8-3.5-11.9 0-23.3 2.94-34.3 8.9-9.46 5.06-17.5 12.2-24.3 21.14l6.9-25.9-15.07.06h-37l-47.7 176.7h52.63l24.75-92.37c3.6-13.43 10.08-24 19.43-31.5 9.3-7.53 20.9-11.3 34.9-11.3 8.6 0 16.6 1.97 24.2 5.9m146.5 41.1c-4.5 16.5-11.3 29.1-20.6 37.8-9.3 8.74-20.5 13.1-33.5 13.1s-21.9-4.4-26.6-13.2c-4.8-8.85-4.9-21.6-.4-38.36 4.5-16.75 11.4-29.6 20.9-38.5 9.5-8.97 20.7-13.45 33.7-13.45 12.8 0 21.4 4.6 26 13.9s4.7 22.2.28 38.7m36.8-81.4c-9.75-7.8-22.2-11.7-37.3-11.7-13.23 0-25.84 3-37.8 9.06-11.95 6.05-21.65 14.3-29.1 24.74l.18-1.2 8.83-28.1h-51.4l-13.1 48.9-.4 1.7-54 201.44h52.7l27.2-101.4c2.7 9.02 8.2 16.1 16.6 21.22 8.4 5.1 18.77 7.63 31.1 7.63 15.3 0 29.9-3.7 43.75-11.1 13.9-7.42 25.9-18.1 36.1-31.9s17.77-29.8 22.6-47.9c4.9-18.13 5.9-34.3 3.1-48.45-2.85-14.17-9.16-25.14-18.9-32.9m174.65 80.65c-4.5 16.7-11.4 29.5-20.7 38.3-9.3 8.86-20.5 13.27-33.5 13.27-13.3 0-22.3-4.3-27-13-4.8-8.7-4.9-21.3-.5-37.8s11.42-29.4 21.12-38.7 21.05-13.94 34.07-13.94c13 0 21.8 4.5 26.4 13.4 4.6 8.93 4.63 21.76.15 38.5zm23.5-87.85-6.73 25.1q-4.35-13.575-16.8-21.6c-8.4-5.34-18.7-8-31-8-15.1 0-29.68 3.9-43.6 11.7-13.9 7.8-26.1 18.74-36.5 32.9s-18 30.3-22.9 48.4c-4.85 18.17-5.8 34.1-2.9 47.96 2.93 13.8 9.24 24.46 19 31.9 9.74 7.4 22.3 11.14 37.6 11.14 12.3 0 24.05-2.56 35.2-7.7a82.3 82.3 0 0 0 28.33-21.23l-7 26.18h51.9l47.38-176.7h-51.9zm269.87.06.03-.05h-31.9c-1.02 0-1.92.05-2.85.07h-16.55l-8.5 11.8-2.1 2.8-.9 1.4-67.25 93.68-13.9-109.7h-55.08l27.9 166.7-61.6 85.3h54.9l14.9-21.13c.42-.62.8-1.14 1.3-1.8l17.4-24.7.5-.7 77.93-110.5 65.7-93 .1-.06h-.03z"/>
106</g></symbol><use href="#ai:local:razorpay"></use> 107 </svg></a><a href="https://n8n.io" aria-label="n8n" target="_blank" rel="noopener noreferrer" title="n8n" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="3.63em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="n8n"><symbol id="ai:local:n8n" viewBox="0 0 87 24"><path fill="#ea4b71" fill-rule="evenodd" d="M47.986 4.8a4.8 4.8 0 0 1-9.45 1.2h-6.7a2.4 2.4 0 0 0-2.368 2.005L29.27 9.19A4.8 4.8 0 0 1 27.71 12a4.8 4.8 0 0 1 1.56 2.81l.197 1.185A2.4 2.4 0 0 0 31.835 18h1.902a4.802 4.802 0 0 1 9.448 1.2 4.8 4.8 0 0 1-9.448 1.2h-1.902a4.8 4.8 0 0 1-4.735-4.01l-.197-1.185a2.4 2.4 0 0 0-2.367-2.005h-1.958a4.802 4.802 0 0 1-9.185 0h-2.815a4.802 4.802 0 0 1-9.392-1.4 4.8 4.8 0 0 1 9.495-1h2.609a4.802 4.802 0 0 1 9.391 0h1.855a2.4 2.4 0 0 0 2.367-2.005l.198-1.184A4.8 4.8 0 0 1 31.835 3.6h6.702a4.802 4.802 0 0 1 9.449 1.2m-2.4 0a2.4 2.4 0 1 1-4.8 0 2.4 2.4 0 0 1 4.8 0m-39.6 9.4a2.4 2.4 0 1 0 0-4.8 2.4 2.4 0 0 0 0 4.8m12 0a2.4 2.4 0 1 0 0-4.8 2.4 2.4 0 0 0 0 4.8m20.4 7.4a2.4 2.4 0 1 0 0-4.8 2.4 2.4 0 0 0 0 4.8" clip-rule="evenodd"/><path fill-rule="evenodd" d="M71.738 11.403v-.118c.862-.43 1.723-1.175 1.723-2.643 0-2.114-1.743-3.387-4.15-3.387-2.468 0-4.23 1.35-4.23 3.426 0 1.41.823 2.173 1.723 2.604v.118a3.325 3.325 0 0 0-2.193 3.171c0 2.135 1.763 3.623 4.68 3.623s4.62-1.488 4.62-3.623c0-1.762-1.174-2.8-2.173-3.171m-2.447-4.347c.979 0 1.703.627 1.703 1.684s-.744 1.684-1.703 1.684-1.763-.627-1.763-1.684c0-1.077.764-1.684 1.763-1.684m0 9.261c-1.136 0-2.056-.724-2.056-1.958 0-1.116.763-1.958 2.036-1.958 1.253 0 2.017.822 2.017 1.997 0 1.195-.881 1.919-1.997 1.919M52.787 18h2.506v-5.305c0-1.743 1.057-2.507 2.252-2.507 1.174 0 2.095.784 2.095 2.389V18h2.506v-5.932c0-2.565-1.488-4.053-3.818-4.053-1.468 0-2.29.587-2.878 1.351h-.157l-.215-1.155h-2.29zm26.176 0h-2.506V8.21h2.29l.216 1.156h.157c.587-.764 1.41-1.35 2.878-1.35 2.33 0 3.818 1.487 3.818 4.052V18H83.31v-5.423c0-1.605-.92-2.389-2.095-2.389-1.195 0-2.252.764-2.252 2.506z" clip-rule="evenodd"/></symbol><use href="#ai:local:n8n"></use> 108 </svg></a><a href="https://superset.apache.org" aria-label="Apache Superset" target="_blank" rel="noopener noreferrer" title="Apache Superset" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="5.57em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="superset"><symbol id="ai:local:superset" viewBox="16.7 14.2 230.2 41.4"><g stroke-linejoin="round" stroke-miterlimit="2"><path fill="#484848" d="M73.79 15.23c-6.47 0-12.43 3.64-18.19 10-5.66-6.46-11.72-10-18.49-10-11.21 0-19.39 8-19.39 18.77s8.18 18.67 19.39 18.67c6.89 0 12.23-3.23 18.19-9.67 5.76 6.46 11.62 9.69 18.49 9.69C85 52.67 93.18 44.8 93.18 34S85 15.23 73.79 15.23m-36.6 26.14c-4.75 0-7.58-3.13-7.58-7.27s2.83-7.36 7.58-7.36c4 0 7.27 3.22 10.81 7.56-3.34 4.04-6.87 7.07-10.81 7.07m36.26 0c-3.94 0-7.27-3.13-10.81-7.27 3.64-4.34 6.77-7.36 10.81-7.36C78.2 26.74 81 30 81 34.1s-2.8 7.27-7.55 7.27"/><path fill="#20A7C9" d="m63.74 50 7.54-9c-3-.9-5.77-3.6-8.64-6.95L55.3 43a33 33 0 0 0 8.44 7"/><path fill="#484848" d="M116.72 40.39a3 3 0 0 0-1.06-2.39 10.8 10.8 0 0 0-3.73-1.72 21 21 0 0 1-7-3.18 6 6 0 0 1-2.38-5 6.24 6.24 0 0 1 2.73-5.22 11.27 11.27 0 0 1 7-2 10.46 10.46 0 0 1 7 2.28 6.83 6.83 0 0 1 2.6 5.62v.1h-5.06a3.8 3.8 0 0 0-1.21-2.92 4.8 4.8 0 0 0-3.38-1.11 5.08 5.08 0 0 0-3.24.92 3 3 0 0 0-1.14 2.38c.017.84.448 1.619 1.15 2.08a16.8 16.8 0 0 0 4.2 1.77 16.4 16.4 0 0 1 6.52 3.16 6.57 6.57 0 0 1 2.22 5.17 6.19 6.19 0 0 1-2.64 5.27 11.46 11.46 0 0 1-7 1.93 12.7 12.7 0 0 1-7.41-2.19 6.85 6.85 0 0 1-3.08-6.14v-.11H107a4 4 0 0 0 1.42 3.41 6.43 6.43 0 0 0 4 1.08 5.17 5.17 0 0 0 3.25-.88 2.78 2.78 0 0 0 1.05-2.31M137 44.4a6.54 6.54 0 0 1-2.27 2.34 6.715 6.715 0 0 1-8-1.14q-1.72-2-1.72-6.08V27.85h5.2v11.73a5.1 5.1 0 0 0 .71 3c.514.628 1.3.971 2.11.92a5.35 5.35 0 0 0 2.15-.4 3.63 3.63 0 0 0 1.46-1.2V27.85h5.22v19.33h-4.45zm25.87-6.35a11.06 11.06 0 0 1-2 6.9 6.57 6.57 0 0 1-5.54 2.61 6.3 6.3 0 0 1-2.7-.56 5.6 5.6 0 0 1-2-1.66v9.28h-5.2V27.85h4.7l.31 2.28a6.26 6.26 0 0 1 2.06-1.95 5.6 5.6 0 0 1 2.82-.69 6.44 6.44 0 0 1 5.57 2.81 12.47 12.47 0 0 1 2 7.38zm-5.22-.4a9.5 9.5 0 0 0-.91-4.44 3 3 0 0 0-2.79-1.7 3.94 3.94 0 0 0-2 .48 3.6 3.6 0 0 0-1.32 1.38v8.49c.312.534.77.968 1.32 1.25a4.34 4.34 0 0 0 2 .43 3 3 0 0 0 2.78-1.49 7.83 7.83 0 0 0 .89-4zm16.56 9.91a8.72 8.72 0 0 1-6.69-2.68 9.6 9.6 0 0 1-2.5-6.81v-.71a10.58 10.58 0 0 1 2.37-7.1c3.306-3.503 8.9-3.688 12.43-.41a9.08 9.08 0 0 1 2.18 6.38v2.84h-11.57v.11a5 5 0 0 0 1.28 3.13 4 4 0 0 0 3.08 1.23c.972.022 1.942-.096 2.88-.35a13.3 13.3 0 0 0 2.5-1.1l1.41 3.23a9.6 9.6 0 0 1-3.09 1.6 13.3 13.3 0 0 1-4.28.64m-.47-16a2.73 2.73 0 0 0-2.29 1.11 5.76 5.76 0 0 0-1 2.91l.05.09h6.4v-.46a4.2 4.2 0 0 0-.78-2.66 2.8 2.8 0 0 0-2.38-1.04zm21.56.77h-1.92a3.5 3.5 0 0 0-1.91.48 3.06 3.06 0 0 0-1.14 1.36v13.01h-5.2V27.85H190l.23 2.86a6.1 6.1 0 0 1 1.77-2.37 3.92 3.92 0 0 1 2.5-.85q.362-.003.72.06l.67.15zm13.02 9.53a1.82 1.82 0 0 0-.83-1.49 8.6 8.6 0 0 0-3.08-1.1 12.5 12.5 0 0 1-5.17-2.07 4.46 4.46 0 0 1-1.75-3.72 5.34 5.34 0 0 1 2.1-4.25 8.54 8.54 0 0 1 5.62-1.74 9.26 9.26 0 0 1 5.89 1.73 5.14 5.14 0 0 1 2.1 4.38v.11h-5a2.57 2.57 0 0 0-.74-1.9 3 3 0 0 0-2.18-.73c-.719-.04-1.43.18-2 .62a1.94 1.94 0 0 0-.72 1.54 1.75 1.75 0 0 0 .76 1.47 8.3 8.3 0 0 0 3.08 1c1.908.281 3.726 1 5.31 2.1a4.61 4.61 0 0 1 1.73 3.81 5.1 5.1 0 0 1-2.23 4.27 9.7 9.7 0 0 1-5.9 1.65 8.94 8.94 0 0 1-6.1-2 5.46 5.46 0 0 1-2.21-4.4v-.1h4.77a2.69 2.69 0 0 0 1 2.25 4.23 4.23 0 0 0 2.52.7 3.6 3.6 0 0 0 2.2-.58c.522-.341.836-.926.83-1.55m16.54 5.7a8.7 8.7 0 0 1-6.68-2.68 9.6 9.6 0 0 1-2.5-6.81v-.71a10.62 10.62 0 0 1 2.36-7.1c3.306-3.503 8.9-3.688 12.43-.41a9 9 0 0 1 2.17 6.38v2.84h-11.55v.11a5 5 0 0 0 1.27 3.13 4 4 0 0 0 3.09 1.23c.969.022 1.935-.096 2.87-.35a13 13 0 0 0 2.51-1.1l1.41 3.23a9.7 9.7 0 0 1-3.09 1.6 13.3 13.3 0 0 1-4.29.64m-.46-16a2.71 2.71 0 0 0-2.29 1.11 5.77 5.77 0 0 0-1 2.91l.06.09h6.4v-.46a4.2 4.2 0 0 0-.78-2.66 2.8 2.8 0 0 0-2.39-1.04zm17.95-8.45v4.74h3.26v3.66h-3.26v9.85a2.28 2.28 0 0 0 .47 1.61c.33.329.784.504 1.25.48a4.6 4.6 0 0 0 .7-.05q.35-.056.69-.15l.45 3.77q-.754.263-1.54.41a10 10 0 0 1-1.62.13 5.56 5.56 0 0 1-4.16-1.48 6.52 6.52 0 0 1-1.46-4.7v-9.87h-2.82v-3.66h2.82v-4.74z"/><path fill="#20A7C9" d="M55.6 25.22a34 34 0 0 0-8.39-7.16l-7.55 9.1c2.87 1 5.41 3.58 8.11 6.87l.3.21z"/></g></symbol><use href="#ai:local:superset"></use> 109 </svg></a><a href="https://www.anthropic.com/claude" aria-label="Claude" target="_blank" rel="noopener noreferrer" title="Claude" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="4.66em" height="1em" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:claude"><symbol id="ai:logos:claude" viewBox="0 0 512 110"><path fill="#d97757" d="m21.564 73.123l21.62-12.132l.361-1.057l-.361-.584h-1.058l-3.617-.223l-12.354-.334l-10.712-.445l-10.379-.556l-2.615-.557L0 54.007l.25-1.613l2.199-1.475l3.144.278l6.956.473l10.434.724l7.568.445l11.214 1.168h1.78l.25-.723l-.611-.445l-.473-.445l-10.796-7.318l-11.687-7.735l-6.12-4.452l-3.312-2.254l-1.67-2.115l-.723-4.619l3.005-3.31l4.035.277l1.03.279l4.09 3.144l8.736 6.761l11.408 8.403l1.67 1.391l.668-.473l.083-.333l-.751-1.253l-6.205-11.213l-6.622-11.408l-2.95-4.73l-.779-2.838c-.278-1.169-.473-2.143-.473-3.34L28.771.613L30.663 0l4.563.612l1.92 1.67l2.838 6.483l4.591 10.211l7.123 13.885l2.087 4.118l1.113 3.812l.417 1.168h.724v-.667l.584-7.819l1.085-9.6l1.058-12.354l.361-3.478l1.725-4.173l3.423-2.254l2.67 1.28l2.2 3.144l-.307 2.031l-1.308 8.487l-2.56 13.3l-1.67 8.904h.975l1.113-1.113l4.507-5.983l7.569-9.46l3.339-3.756l3.895-4.146l2.504-1.976h4.73l3.478 5.176l-1.558 5.342l-4.869 6.177l-4.035 5.231l-5.787 7.79l-3.617 6.234l.334.5l.862-.083l13.078-2.782l7.067-1.28l8.431-1.447l3.812 1.78l.417 1.81l-1.502 3.7l-9.015 2.226l-10.574 2.114l-15.748 3.729l-.195.139l.222.278l7.096.668l3.033.167h7.429l13.829 1.03l3.617 2.392l2.17 2.922l-.362 2.226l-5.565 2.838l-7.512-1.78l-17.53-4.174l-6.01-1.503h-.835v.5l5.009 4.898l9.182 8.292L97.776 88.12l.584 2.644l-1.475 2.087l-1.558-.223l-10.1-7.596l-3.896-3.423l-8.82-7.429h-.584v.78l2.03 2.977l10.741 16.138l.556 4.953l-.779 1.613l-2.782.974l-3.06-.556l-6.29-8.82l-6.482-9.934l-5.231-8.904l-.64.362l-3.089 33.25l-1.447 1.698l-3.339 1.28l-2.782-2.115l-1.475-3.423l1.475-6.76l1.78-8.821l1.448-7.012l1.307-8.71l.78-2.893l-.056-.195l-.64.084l-6.567 9.015l-9.989 13.495l-7.902 8.459l-1.892.75l-3.283-1.697l.306-3.032l1.836-2.7l10.935-13.912l6.595-8.625l4.257-4.98l-.028-.724h-.25L18.92 85.06l-5.175.668l-2.226-2.087l.279-3.423l1.057-1.113l8.737-6.01z"/><path d="M179.413 93.351c-13.968 0-23.512-7.79-28.02-19.783a53.4 53.4 0 0 1-3.422-19.56c0-20.118 9.015-34.086 28.938-34.086c13.383 0 21.647 5.844 26.35 19.784h5.731l-.779-19.227c-8.013-5.175-18.03-7.791-30.217-7.791c-17.168 0-31.776 7.68-39.9 21.536a46.66 46.66 0 0 0-6.178 24.068c0 15.387 7.263 29.022 20.897 36.59a48.7 48.7 0 0 0 24.29 5.732c13.3 0 23.846-2.532 33.195-6.956l2.42-21.203h-5.842c-3.506 9.683-7.68 15.498-14.608 18.587c-3.395 1.53-7.68 2.31-12.855 2.31m60.24-73.429l.5
10957-9.46h-3.952l-17.585 5.287v2.866l7.791 3.617V88.4c0 4.507-2.31 5.509-8.347 6.26v4.842h29.911V94.66c-6.065-.751-8.347-1.753-8.347-6.26V19.95zm118.95 80.692h2.31l20.228-3.84V91.82l-2.838-.222c-4.73-.446-5.955-1.42-5.955-5.287V51.03l.557-11.324h-3.2L350.59 42.46v4.842l1.864.334c5.175.75 6.706 2.198 6.706 5.815v31.442c-4.953 3.84-9.683 6.26-15.304 6.26c-6.233 0-10.1-3.172-10.1-10.573V51.058l.556-11.325h-3.283l-19.143 2.755v4.842l1.975.333c5.176.752 6.706 2.199 6.706 5.816v29.02c0 12.3 6.956 18.142 18.03 18.142c8.459 0 15.387-4.507 20.59-10.768l-.556 10.768zm-55.593-39.15c0-15.72-8.348-21.758-23.429-21.758c-13.3 0-22.955 5.509-22.955 14.635c0 2.727.974 4.814 2.95 6.26l10.128-1.335c-.446-3.06-.668-4.925-.668-5.704c0-5.175 2.754-7.79 8.347-7.79c8.264 0 12.438 5.815 12.438 15.164v3.06l-20.869 6.261c-6.956 1.892-10.907 3.534-13.55 7.374a13.9 13.9 0 0 0-1.948 7.79c0 8.904 6.121 15.193 16.583 15.193c7.569 0 14.275-3.423 20.118-9.906c2.087 6.483 5.286 9.906 10.99 9.906c4.62 0 8.793-1.865 12.521-5.51l-1.113-3.84a17.8 17.8 0 0 1-4.813.668c-3.2 0-4.73-2.532-4.73-7.484zM276.298 91.71c-5.704 0-9.238-3.311-9.238-9.127c0-3.95 1.865-6.26 5.843-7.596l16.918-5.37v16.25c-5.398 4.09-8.57 5.843-13.523 5.843m176.13 5.064V91.82l-2.866-.222c-4.73-.446-5.927-1.42-5.927-5.287v-66.39l.557-9.46h-3.98l-17.585 5.287v2.866l7.791 3.617V43.99a24.57 24.57 0 0 0-14.941-4.285c-17.474 0-31.108 13.3-31.108 33.194c0 16.39 9.794 27.714 25.932 27.714c8.348 0 15.61-4.063 20.117-10.351l-.556 10.35h2.337zM415.81 46.3c8.348 0 14.608 4.842 14.608 13.745v25.043a20.03 20.03 0 0 1-14.496 5.843c-11.965 0-18.03-9.46-18.03-22.093c0-14.19 6.928-22.538 17.918-22.538m79.384 12.521c-1.558-7.346-6.066-11.52-12.326-11.52c-9.35 0-15.833 7.04-15.833 17.14c0 14.943 7.903 24.625 20.674 24.625a23.93 23.93 0 0 0 20.563-12.103L512 77.964c-1.67 12.967-13.411 22.65-27.825 22.65c-16.917 0-28.575-12.521-28.575-30.33c0-17.946 12.66-30.578 29.577-30.578c12.632 0 21.536 7.596 24.402 20.785l-44.074 13.522V68.06l29.689-9.21z"/></symbol><use href="#ai:logos:claude"></use> 110 </svg></a><a href="https://astro.build" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="Astro" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="3.8em" height="1em" viewBox="0 0 512 135" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:astro"><use href="#ai:logos:astro"></use> 111 </svg></a><a href="https://laravel.com" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="Laravel" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="3.43em" height="1em" viewBox="0 0 178 52" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="laravel"><use href="#ai:local:laravel"></use> 112 </svg></a><a href="https://rubyonrails.org" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="Ruby on Rails" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="2.85em" height="1em" viewBox="0 0 512 180" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:rails"><use href="#ai:logos:rails"></use> 113 </svg></a><a href="https://www.djangoproject.com" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="Django" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="2.87em" height="1em" viewBox="0 0 512 179" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:django"><use href="#ai:logos:django"></use> 114 </svg></a><a href="https://aws.amazon.com" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="AWS" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="1.68em" height="1em" viewBox="0 0 256 153" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:aws"><use href="#ai:logos:aws"></use> 115 </svg></a><a href="https://cloud.google.com" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="Google Cloud" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="6.17em" height="1em" viewBox="0.4 -0.5 178.1 28.9" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="googlecloud"><use href="#ai:local:googlecloud"></use> 116 </svg></a><a href="https://www.digitalocean.com" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="DigitalOcean" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="5.93em" height="1em" viewBox="0 0 1002 169" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="digitalocean"><use href="#ai:local:digitalocean"></use> 117 </svg></a><a href="https://www.hetzner.com" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="Hetzner" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="8.16em" height="1em" viewBox="0 0 181.42 22.24" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="hetzner"><use href="#ai:local:hetzner"></use> 118 </svg></a><a href="https://www.microsoft.com/microsoft-365" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="Microsoft 365" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="4.66em" height="1em" viewBox="0 0 512 110" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:microsoft"><use href="#ai:logos:microsoft"></use> 119 </svg></a><a href="https://stripe.com" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="Str
119ipe" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="2.4em" height="1em" viewBox="0 0 512 214" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:stripe"><use href="#ai:logos:stripe"></use> 120 </svg></a><a href="https://gocardless.com" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="GoCardless" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="8.93em" height="1em" viewBox="9.1 24.3 101.7 11.4" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="gocardless"><use href="#ai:local:gocardless"></use> 121 </svg></a><a href="https://razorpay.com" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="Razorpay" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="4.74em" height="1em" viewBox="0.8 0.48 1894.74 400.27" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="razorpay"><use href="#ai:local:razorpay"></use> 122 </svg></a><a href="https://n8n.io" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="n8n" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="3.63em" height="1em" viewBox="0 0 87 24" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="n8n"><use href="#ai:local:n8n"></use> 123 </svg></a><a href="https://superset.apache.org" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="Apache Superset" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="5.57em" height="1em" viewBox="16.7 14.2 230.2 41.4" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="superset"><use href="#ai:local:superset"></use> 124 </svg></a><a href="https://www.anthropic.com/claude" aria-hidden="true" tabindex="-1" target="_blank" rel="noopener noreferrer" title="Claude" class="logo-badge shrink-0" data-astro-cid-w622twah><svg width="4.66em" height="1em" viewBox="0 0 512 110" class="h-5 md:h-6 w-auto" data-astro-cid-w622twah="true" data-icon="logos:claude"><use href="#ai:logos:claude"></use> 125 </svg></a></div></div></div><div class="mt-8 pt-5 border-t border-border" data-astro-cid-w622twah><div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3" data-astro-cid-w622twah><div class="flex flex-wrap items-center justify-center sm:justify-start gap-x-4 gap-y-1" data-astro-cid-w622twah><a class="text-muted text-xs hover:text-link-accent transition-colors" href="/terms/" data-astro-cid-w622twah>Terms & Conditions</a><a class="text-muted text-xs hover:text-link-accent transition-colors" href="/privacy/" data-astro-cid-w622twah>Privacy Policy</a><a class="text-muted text-xs hover:text-link-accent transition-colors" href="/sitemap-index.xml" data-astro-cid-w622twah>Sitemap</a><button type="button" data-cc="show-preferencesModal" class="text-muted text-xs hover:text-link-accent transition-colors cursor-pointer" data-astro-cid-w622twah>Cookie preferences</button></div><div class="text-center sm:text-right" data-astro-cid-w622twah><div class="text-muted text-xs" data-astro-cid-w622twah>© 2026 Zorinto Ltd. All rights reserved. <br>Registered in England & Wales. Company No. <a class="text-primary underline dark:text-muted" href="https://find-and-update.company-information.service.gov.uk/company/15494238" target="_blank" rel="noopener noreferrer">15494238</a>. <br class="block sm:hidden"><span class="hidden sm:inline">|</span> Custom software, web platforms & automation for UK teams.</div></div></div></div></div></div></footer><button id="back-to-top" class="fixed bottom-6 right-6 w-12 h-12 rounded-xl bg-pulse text-carbon flex items-center justify-center opacity-0 invisible translate-y-4 transition-all duration-300 z-50 shadow-lg hover:bg-pulse-deep hover:text-bone hover:-translate-y-1 group" aria-label="Back to top" data-astro-cid-w622twah><svg width="1em" height="1em" class="w-5 h-5 group-hover:-translate-y-0.5 transition-transform duration-300" data-astro-cid-w622twah="true" data-icon="tabler:chevron-up"><symbol id="ai:tabler:chevron-up" viewBox="0 0 24 24">
125<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 15l6-6l6 6"/></symbol><use href="#ai:tabler:chevron-up"></use> 126 </svg></button>
126<script type="module">globalThis.process??={},globalThis.process.env??={},document.addEventListener(`DOMContentLoaded`,()=>{let e=document.getElementById(`back-to-top`);e&&(window.addEventListener(`scroll`,()=>{window.scrollY>500?(e.classList.remove(`opacity-0`,`invisible`,`translate-y-4`),e.classList.add(`opacity-100`,`visible`,`translate-y-0`)):(e.classList.add(`opacity-0`,`invisible`,`translate-y-4`),e.classList.remove(`opacity-100`,`visible`,`translate-y-0`))},{passive:!0}),e.addEventListener(`click`,()=>{window.scrollTo({top:0,behavior:`smooth`})}))});</script>
126 127 128<div class="group fixed bottom-5 right-5 md:bottom-10 md:right-10 z-50 animate-pulse hover:animate-none transition-transform duration-300 hover:scale-110"><a href="https://wa.me/447404979307" target="_blank" rel="noopener noreferrer" class="relative flex items-center justify-center w-12 h-12 md:w-16 md:h-16 rounded-full bg-gradient-to-br from-green-400 to-green-600 text-white shadow-lg shadow-green-400/40 transition-all duration-300 hover:shadow-xl hover:shadow-green-400/60 hover:-translate-y-0.5 hover:from-green-600 hover:to-green-400 no-underline" aria-label="Chat with us on WhatsApp"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 md:w-7 md:h-7 fill-white transition-transform duration-300 group-hover:scale-110"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893A11.821 11.821 0 0020.893 3.690" fill="currentColor"></path></svg><span class="absolute right-full top-1/2 transform -translate-y-1/2 mr-2 px-3 py-2 bg-green-500 text-white text-sm font-medium rounded-full shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible group-hover:-translate-x-2 transition-all duration-300 whitespace-nowrap hidden md:inline-block">Chat with us<span class="absolute left-full top-1/2 transform -translate-y-1/2 border-l-8 border-l-green-500 border-t-8 border-t-transparent border-b-8 border-b-transparent"></span></span></a></div>
128<script type="module">globalThis.process??={},globalThis.process.env??={},document.addEventListener(`DOMContentLoaded`,function(){let e=document.querySelector(`a[aria-label="Chat with us on WhatsApp"]`);e&&e.addEventListener(`click`,function(){typeof gtag<`u`&>ag(`event`,`whatsapp_click`,{event_category:`engagement`,event_label:`whatsapp_chat`})})});</script>
128<!-- WhatsApp chat integration --><!-- 129 Inert carrier for the URL. It rides on a data attribute rather than 130 `define:vars`, because that directive forces `is:inline`, which skips bundling 131 and minification â the comments above would otherwise ship verbatim into all 132 ~976 pages. Deliberately NOT a `<link rel="preconnect">`: that would open a 133 connection to neetocal.com on every page, including the ~970 with no booking 134 link on them. 135--><span data-booking-url="https://zorinto.neetocal.com/scoping-call" hidden></span>
135<script type="module">globalThis.process??={},globalThis.process.env??={};var e=document.querySelector(`[data-booking-url]`)?.dataset.bookingUrl??``;document.addEventListener(`click`,t=>{if(!e)return;let n=t.target instanceof Element?t.target.closest(`a[href]`):null;n&&(n.getAttribute(`href`)||``).startsWith(e)&&typeof window.gtag==`function`&&window.gtag(`event`,`booking_click`,{method:`neetocal`,page_location:window.location.href,page_path:window.location.pathname,link_text:(n.textContent||``).trim().slice(0,100)})},!0);</script>
135<script type="module">globalThis.process??={},globalThis.process.env??={},document.addEventListener(`click`,e=>{if(!window.location.pathname.startsWith(`/careers`))return;let t=e.target instanceof Element?e.target.closest(`a[href]`):null;t&&(t.getAttribute(`href`)||``).toLowerCase().startsWith(`mailto:`)&&typeof window.gtag==`function`&&window.gtag(`event`,`job_application_click`,{method:`mailto`,page_location:window.location.href,page_path:window.location.pathname,link_text:(t.textContent||``).trim().slice(0,100)})},!0);</script>
135<script>(function(){const defaultTheme = "system"; 136 137 (function () { 138 if (window.basic_script) { 139 return; 140 } 141 142 window.basic_script = true; 143 144 // Theme is already applied by ApplyColorMode.astro in <head> 145 // This function is only used for toggle interactions, not initial load 146 function applyTheme(theme) { 147 if (theme === 'dark') { 148 document.documentElement.classList.add('dark'); 149 } else { 150 document.documentElement.classList.remove('dark'); 151 } 152 } 153 154 // initTheme is only called on View Transitions navigation, not initial page load 155 // Initial theme is handled by ApplyColorMode.astro to prevent FOUC 156 const initTheme = function () { 157 if ((defaultTheme && defaultTheme.endsWith(':only')) || (!localStorage.theme && defaultTheme !== 'system')) { 158 applyTheme(defaultTheme.replace(':only', '')); 159 } else if ( 160 localStorage.theme === 'dark' || 161 (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) 162 ) { 163 applyTheme('dark'); 164 } else { 165 applyTheme('light'); 166 } 167 }; 168 // Removed: initTheme() - theme is already set by ApplyColorMode.astro in <head> 169 170 function attachEvent(selector, event, fn) { 171 const matches = typeof selector === 'string' ? document.querySelectorAll(selector) : selector; 172 if (matches && matches.length) { 173 matches.forEach((elem) => { 174 elem.addEventListener(event, (e) => fn(e, elem), false); 175 }); 176 } 177 } 178 179 const onLoad = function () { 180 let lastKnownScrollPosition = window.scrollY; 181 let ticking = true; 182 183 function resetDropdowns() { 184 document.querySelectorAll('#header nav .dropdown.open').forEach((el) => el.classList.remove('open')); 185 } 186 187 function closeMobileMenu() { 188 const toggleBtn = document.querySelector('[data-aw-toggle-menu]'); 189 if (toggleBtn) toggleBtn.classList.remove('expanded'); 190 document.body.classList.remove('overflow-hidden'); 191 const header = document.getElementById('header'); 192 if (header) { 193 header.classList.remove('h-screen'); 194 header.classList.remove('expanded'); 195 } 196 const nav = document.querySelector('#header nav'); 197 if (nav) nav.classList.add('hidden'); 198 resetDropdowns(); 199 } 200 201 attachEvent('#header nav', 'click', function (e) { 202 const target = e?.target; 203 if (!target) return; 204 205 if (target.closest?.('.dropdown-toggle')) return; 206 207 const link = target.closest?.('a[href]'); 208 if (!link) return; 209 210 closeMobileMenu(); 211 }); 212 213 attachEvent('[data-aw-toggle-menu]', 'click', function (_, elem) { 214 const isExpanded = elem.classList.contains('expanded'); 215 216 if (isExpanded) { 217 closeMobileMenu(); 218 } else { 219 elem.classList.add('expanded'); 220 document.body.classList.add('overflow-hidden'); 221 document.getElementById('header')?.classList.add('h-screen'); 222 document.getElementById('header')?.classList.add('expanded'); 223 document.querySelector('#header nav')?.classList.remove('hidden'); 224 } 225 }); 226 227 // Mobile dropdown toggle - only for touch/click on mobile 228 attachEvent('#header nav .dropdown-toggle', 'click', function (e, elem) { 229 // Only handle below the xl breakpoint (< 1280px), where the menu is collapsed 230 if (window.innerWidth >= 1280) return; 231 232 e?.preventDefault?.(); 233 e?.stopPropagation?.(); 234 235 const dropdown = elem.closest?.('.dropdown'); 236 if (!dropdown) return; 237 238 const willOpen = !dropdown.classList.contains('open'); 239 240 // Close other dropdowns 241 dropdown.parentElement?.querySelectorAll?.('.dropdown.open')?.forEach((node) => { 242 if (node !== dropdown) node.classList.remove('open'); 243 }); 244 245 dropdown.classList.toggle('open', willOpen); 246 }); 247 248 // Close menu on Escape key 249 document.addEventListener('keydown', function (e) { 250 if (e.key === 'Escape') { 251 const toggleBtn = document.querySelector('[data-aw-toggle-menu]'); 252 if (toggleBtn?.classList.contains('expanded')) { 253 closeMobileMenu(); 254 } else { 255 resetDropdowns(); 256 } 257 } 258 }); 259 260 attachEvent('[data-aw-toggle-color-scheme]', 'click', function () { 261 if (defaultTheme.endsWith(':only')) { 262 return; 263 } 264 document.documentElement.classList.toggle('dark'); 265 localStorage.theme = document.documentElement.classList.contains('dark') ? 'dark' : 'light'; 266 }); 267 268 attachEvent('[data-aw-social-share]', 'click', function (_, elem) { 269 const network = elem.getAttribute('data-aw-social-share'); 270 const url = encodeURIComponent(elem.getAttribute('data-aw-url')); 271 const text = encodeURIComponent(elem.getAttribute('data-aw-text')); 272 273 let href; 274 switch (network) { 275 case 'facebook': 276 href = `https://www.facebook.com/sharer.php?u=${url}`; 277 break; 278 case 'twitter': 279 href = `https://twitter.com/intent/tweet?url=${url}&text=${text}`; 280 break; 281 case 'linkedin': 282 href = `https://www.linkedin.com/shareArticle?mini=true&url=${url}&title=${text}`; 283 break; 284 case 'whatsapp': 285 href = `https://wa.me/?text=${text}%20${url}`; 286 break; 287 case 'mail': 288 href = `mailto:?subject=%22${text}%22&body=${text}%20${url}`; 289 break; 290 291 default: 292 return; 293 } 294 295 const newlink = document.createElement('a'); 296 newlink.target = '_blank'; 297 newlink.href = href; 298 newlink.click(); 299 }); 300 301 const screenSize = window.matchMedia('(max-width: 1279px)'); 302 screenSize.addEventListener('change', function () { 303 closeMobileMenu(); 304 }); 305 306 function applyHeaderStylesOnScroll() { 307 const header = document.querySelector('#header[data-aw-sticky-header]'); 308 if (!header) return; 309 if (lastKnownScrollPosition > 60 && !header.classList.contains('scroll')) { 310 header.classList.add('scroll'); 311 } else if (lastKnownScrollPosition <= 60 && header.classList.contains('scroll')) { 312 header.classList.remove('scroll'); 313 } 314 ticking = false;
315 } 316 applyHeaderStylesOnScroll(); 317 318 attachEvent([document], 'scroll', function () { 319 lastKnownScrollPosition = window.scrollY; 320 321 if (!ticking) { 322 window.requestAnimationFrame(() => { 323 applyHeaderStylesOnScroll(); 324 }); 325 ticking = true; 326 } 327 }); 328 }; 329 const onPageShow = function () { 330 document.documentElement.classList.add('motion-safe:scroll-smooth'); 331 const elem = document.querySelector('[data-aw-toggle-menu]'); 332 if (elem) { 333 elem.classList.remove('expanded'); 334 } 335 document.body.classList.remove('overflow-hidden'); 336 document.getElementById('header')?.classList.remove('h-screen'); 337 document.getElementById('header')?.classList.remove('expanded'); 338 document.querySelector('#header nav')?.classList.add('hidden'); 339 document.querySelectorAll('#header nav .dropdown.open').forEach((el) => el.classList.remove('open')); 340 }; 341 342 window.onload = onLoad; 343 window.onpageshow = onPageShow; 344 345 document.addEventListener('astro:after-swap', () => { 346 initTheme(); 347 onLoad(); 348 onPageShow(); 349 }); 350 })(); 351})();</script>
351<script> 352 /* Inspired by: https://github.com/heidkaemper/tailwindcss-intersect */ 353 const Observer = { 354 observer: null, 355 delayBetweenAnimations: 100, 356 animationCounter: 0, 357 358 start() { 359 const selectors = [ 360 '[class*=" intersect:"]', 361 '[class*=":intersect:"]', 362 '[class^="intersect:"]', 363 '[class="intersect"]', 364 '[class*=" intersect "]', 365 '[class^="intersect "]', 366 '[class$=" intersect"]', 367 ]; 368 369 const elements = Array.from(document.querySelectorAll(selectors.join(','))); 370 371 const getThreshold = (element) => { 372 if (element.classList.contains('intersect-full')) return 0.99; 373 if (element.classList.contains('intersect-half')) return 0.5; 374 if (element.classList.contains('intersect-quarter')) return 0.25; 375 return 0; 376 }; 377 378 elements.forEach((el) => { 379 el.setAttribute('no-intersect', ''); 380 el._intersectionThreshold = getThreshold(el); 381 }); 382 383 const callback = (entries) => { 384 entries.forEach((entry) => { 385 requestAnimationFrame(() => { 386 const target = entry.target; 387 const intersectionRatio = entry.intersectionRatio; 388 const threshold = target._intersectionThreshold; 389 390 if (target.classList.contains('intersect-no-queue')) { 391 if (entry.isIntersecting) { 392 target.removeAttribute('no-intersect'); 393 if (target.classList.contains('intersect-once')) { 394 this.observer.unobserve(target); 395 } 396 } else { 397 target.setAttribute('no-intersect', ''); 398 } 399 return; 400 } 401 402 if (intersectionRatio >= threshold) { 403 if (!target.hasAttribute('data-animated')) { 404 target.removeAttribute('no-intersect'); 405 target.setAttribute('data-animated', 'true'); 406 407 const delay = this.animationCounter * this.delayBetweenAnimations; 408 this.animationCounter++; 409 410 target.style.transitionDelay = `${delay}ms`; 411 target.style.animationDelay = `${delay}ms`; 412 413 if (target.classList.contains('intersect-once')) { 414 this.observer.unobserve(target); 415 } 416 } 417 } else { 418 target.setAttribute('no-intersect', ''); 419 target.removeAttribute('data-animated'); 420 target.style.transitionDelay = ''; 421 target.style.animationDelay = ''; 422 423 this.animationCounter = 0; 424 } 425 }); 426 }); 427 }; 428 429 this.observer = new IntersectionObserver(callback.bind(this), { threshold: [0, 0.25, 0.5, 0.99] }); 430 431 elements.forEach((el) => { 432 this.observer.observe(el); 433 }); 434 }, 435 }; 436 437 Observer.start(); 438 439 document.addEventListener('astro:after-swap', () => { 440 Observer.start(); 441 }); 442</script>
442<script type="module" src="/_astro/CookieConsent.astro_astro_type_script_index_0_lang.9MFS8Ive.js"></script>
442<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"3612fc75e20f4ab49feb35837dcc27c2","r":1,"spa":2}' crossorigin="anonymous"></script>
442 443</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.