PageSourceSearch

https://devpages.io/contact

html devpages.io collected 2026-09-29 09:07:20 UTC 86,069 bytes, 7 lines download raw bytes

1<!DOCTYPE html><html data-dpl-id="dpl_7rpN3w3uZUKPvwAUH88ETniMKA5g" lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/immutable/media/GeistMono_Variable.p.0b02cdm7g7y6h.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/immutable/media/Geist_Variable-s.p.2-i4fw5gbtlb7.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/immutable/chunks/0has_pxrzxaze.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/2mvw1zuv32l2g.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/immutable/chunks/3vb5b74p5994d.js"/>
1<script src="/_next/static/immutable/chunks/1oyot7j31u_es.js" async=""></script>
1<script src="/_next/static/immutable/chunks/3n48d2t85385e.js" async=""></script>
1<script src="/_next/static/immutable/chunks/0ddx-p3-swan3.js" async=""></script>
1<script src="/_next/static/immutable/chunks/turbopack-0wyfecl1ldpwr.js" async=""></script>
1<script src="/_next/static/immutable/chunks/2corl6wyj4669.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/0julild6hvf5m.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/2p90h8en07pg-.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/1uzb-xnsciaz_.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/07ifqg-u6dag8.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/1p0q56mbc5ogg.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/1w-0_xgdvfr_p.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/158ebt4gn-ef-.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/1_trie9m4h1yr.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/42ilwylc4jt-l.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/0w5zy65f3zo66.js" async="" crossorigin=""></script>
1<script src="/_next/static/immutable/chunks/2mb-r17akmkgs.js" async="" crossorigin=""></script>
1<link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-2M20T1QV9T" as="script"/><title>Contact Us | DevPages</title><meta name="description" content="Get in touch with the DevPages team. Have questions about developer tools, feedback, or partnership inquiries? We&#x27;d love to hear from you."/><meta name="author" content="Dev Pages"/><meta name="keywords" content="developer tools,dev tools,programming tools,software development,coding resources"/><meta name="robots" content="index, follow"/><link rel="canonical" href="https://devpages.io/contact"/><meta property="og:title" content="Dev Pages - The Developer Tools Directory"/><meta property="og:description" content="Discover, Compare &amp; Master Software Development Tools"/><meta property="og:url" content="https://devpages.io"/><meta property="og:site_name" content="DevPages"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://devpages.io/opengraph-image?e7015c997be6e0ec"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="DevPages - The Developer Tools Directory"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@devpages_io"/><meta name="twitter:title" content="Dev Pages - The Developer Tools Directory"/><meta name="twitter:description" content="Discover, Compare &amp; Master Software Development Tools"/><meta name="twitter:image" content="https://devpages.io/opengraph-image?e7015c997be6e0ec"/><meta name="twitter:image:alt" content="DevPages - The Developer Tools Directory"/><meta name="twitter:image:type" content="image/png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/favicon.ico?favicon.0ej17a1qtm-ch.ico" sizes="64x64" type="image/x-icon"/><link rel="icon" href="/favicon.ico"/><meta name="next-size-adjust" content=""/><link rel="alternate" type="application/rss+xml" title="DevPages Blog" href="https://devpages.io/blog/feed.xml"/><link rel="alternate" type="application/rss+xml" title="DevPages — Recently Listed Tools" href="https://devpages.io/tools/feed.xml"/>
1<script>(function(){try{var s=localStorage.getItem('theme');var p=(s==='light'||s==='dark'||s==='system')?s:'dark';var t=p==='system'?(window.matchMedia('(prefers-color-scheme: light)').matches?'light':'dark'):p;if(t==='light'){document.documentElement.classList.remove('dark');}}catch(e){}})();</script>
1<script>(self.__next_s=self.__next_s||[]).push([0,{"children":"\n            window.dataLayer = window.dataLayer || [];\n            function gtag() { dataLayer.push(arguments); }\n            gtag('consent', 'default', {\n              'ad_storage': 'denied',\n              'analytics_storage': 'denied',\n              'functionality_storage': 'denied',\n              'personalization_storage': 'denied',\n              'security_storage': 'granted'\n            });\n          ","id":"google-consent-mode"}])</script>
1<script src="/_next/static/immutable/chunks/0c0hxoamwjsbw.js" noModule=""></script>
1</head><body class="geistsans_d5a4f12f-module__Ur3q_a__variable geistmono_157ca88a-module__iaM1Ya__variable font-sans antialiased min-h-screen bg-canvas text-foreground"><div hidden=""><!--$--><!--/$--></div><div class="min-h-dvh bg-canvas text-foreground"><a href="#main-content" class="sr-only focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-[60] focus:rounded-lg focus:bg-primary focus:px-4 focus:py-2 focus:text-sm focus:font-semibold focus:text-primary-foreground">Skip to content</a><style>
2        @keyframes dp-drawer-in { from { transform: translateX(-100%); } to { transform: none; } }
3        @keyframes dp-overlay-in { from { opacity: 0; } to { opacity: 1; } }
4        .dp-drawer[data-state="open"] { animation: dp-drawer-in 220ms cubic-bezier(0.32, 0.72, 0, 1); }
5        .dp-overlay[data-state="open"] { animation: dp-overlay-in 200ms ease-out; }
6      </style><aside aria-label="Sidebar" class="fixed inset-y-0 left-0 z-30 hidden w-64 flex-col border-r border-hairline bg-canvas lg:flex"><a aria-label="DevPages home" class="flex h-14 shrink-0 items-center gap-2.5 px-4 text-foreground" href="/"><svg viewBox="0 0 32 32" role="img" aria-label="DevPages" class="shrink-0 text-foreground h-7 w-7"><rect x="13" y="4" width="15" height="15" rx="4" fill="currentColor" fill-opacity="0.4"></rect><rect x="4" y="13" width="15" height="15" rx="4" fill="currentColor"></rect></svg><span class="font-display text-[1.05rem] font-semibold tracking-tight text-foreground">devpages</span></a><div class="flex min-h-0 flex-1 flex-col gap-5 overflow-y-auto px-3 pb-8 pt-4"><form role="search" action="/search" method="get"><label for="sidebar-search-_R_3adb_" class="sr-only">Search developer tools</label><div class="relative"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-neutral-400" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><input id="sidebar-search-_R_3adb_" type="search" placeholder="Search tools" autoComplete="off" aria-keyshortcuts="Meta+K Control+K" class="h-9 w-full rounded-lg border border-hairline bg-surface-raised pl-9 text-sm text-foreground placeholder:text-neutral-400 transition-colors hover:border-hairline-strong pr-12" name="q"/><kbd aria-hidden="true" class="pointer-events-none absolute right-2.5 top-1/2 hidden -translate-y-1/2 rounded border border-hairline bg-foreground
6/[0.06] px-1.5 py-0.5 font-sans text-[0.65rem] font-medium text-neutral-400 lg:block">⌘K</kbd></div></form><nav aria-label="Primary"><ul class="space-y-0.5"><li><a class="relative flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors font-medium text-neutral-400 hover:bg-surface hover:text-foreground" href="/"><span aria-hidden="true" class="absolute left-0 top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-compass shrink-0" aria-hidden="true"><path d="m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z"></path><circle cx="12" cy="12" r="10"></circle></svg><span class="truncate">Explore</span></a></li><li><a class="relative flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors font-medium text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories"><span aria-hidden="true" class="absolute left-0 top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-grid shrink-0" aria-hidden="true"><rect width="7" height="7" x="3" y="3" rx="1"></rect><rect width="7" height="7" x="14" y="3" rx="1"></rect><rect width="7" height="7" x="14" y="14" rx="1"></rect><rect width="7" height="7" x="3" y="14" rx="1"></rect></svg><span class="truncate">Categories</span></a></li><li><a class="relative flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors font-medium text-neutral-400 hover:bg-surface hover:text-foreground" href="/top20"><span aria-hidden="true" class="absolute left-0 top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trophy shrink-0" aria-hidden="true"><path d="M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978"></path><path d="M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978"></path><path d="M18 9h1.5a1 1 0 0 0 0-5H18"></path><path d="M4 22h16"></path><path d="M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z"></path><path d="M6 9H4.5a1 1 0 0 1 0-5H6"></path></svg><span class="truncate">Top 20</span></a></li><li><a class="relative flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors font-medium text-neutral-400 hover:bg-surface hover:text-foreground" href="/ai-models"><span aria-hidden="true" class="absolute left-0 top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-coins shrink-0" aria-hidden="true"><circle cx="8" cy="8" r="6"></circle><path d="M18.09 10.37A6 6 0 1 1 10.34 18"></path><path d="M7 6h1v4"></path><path d="m16.71 13.88.7.71-2.82 2.82"></path></svg><span class="truncate">AI Prices</span></a></li><li><a class="relative flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors font-medium text-neutral-400 hover:bg-surface hover:text-foreground" href="/blog"><span aria-hidden="true" class="absolute left-0 top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-newspaper shrink-0" aria-hidden="true"><path d="M15 18h-5"></path><path d="M18 14h-8"></path><path d="M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2"></path><rect width="8" height="4" x="10" y="6" rx="1"></rect></svg><span class="truncate">Blog</span></a></li><li><a class="relative flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors font-medium text-neutral-400 hover:bg-surface hover:text-foreground" href="/community"><span aria-hidden="true" class="absolute left-0 top-1/2 h-5 w-[3px] -translate-y-1/2 roun
6ded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users shrink-0" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><path d="M16 3.128a4 4 0 0 1 0 7.744"></path><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><circle cx="9" cy="7" r="4"></circle></svg><span class="truncate">Community</span></a></li></ul></nav><div class="h-px shrink-0 bg-hairline"></div><nav aria-label="Categories"><h2 class="px-3 pb-2 text-[0.7rem] font-medium uppercase tracking-[0.12em] text-neutral-400">Categories</h2><ul class="space-y-0.5"><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/generative-ai"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M12 18V5"></path><path d="M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4"></path><path d="M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5"></path><path d="M17.997 5.125a4 4 0 0 1 2.526 5.77"></path><path d="M18 18a4 4 0 0 0 2-7.464"></path><path d="M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517"></path><path d="M6 18a4 4 0 0 1-2-7.464"></path><path d="M6.003 5.125a4 4 0 0 0-2.526 5.77"></path></svg><span class="min-w-0 truncate">Generative AI</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">36<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/ai-ml"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M12 20v2"></path><path d="M12 2v2"></path><path d="M17 20v2"></path><path d="M17 2v2"></path><path d="M2 12h2"></path><path d="M2 17h2"></path><path d="M2 7h2"></path><path d="M20 12h2"></path><path d="M20 17h2"></path><path d="M20 7h2"></path><path d="M7 20v2"></path><path d="M7 2v2"></path><rect x="4" y="4" width="16" height="16" rx="2"></rect><rect x="8" y="8" width="8" height="8" rx="1"></rect></svg><span class="min-w-0 truncate">AI/ML Tools</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">37<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/devops"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="min-w-0 truncate">DevOps</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">70<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/cloud"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 roun
6ded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cloud shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"></path></svg><span class="min-w-0 truncate">Cloud Infrastructure</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">44<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/observability"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><span class="min-w-0 truncate">Observability</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">50<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/apis"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="m16 18 6-6-6-6"></path><path d="m8 6-6 6 6 6"></path></svg><span class="min-w-0 truncate">APIs</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">38<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/frameworks"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg><span class="min-w-0 truncate">Frameworks</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">41<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/databases"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="min-w-0 truncate">Databases</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">43<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/security"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 roun
6ded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg><span class="min-w-0 truncate">Security</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">42<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/finance-tools"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-dollar-sign shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><line x1="12" x2="12" y1="2" y2="22"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg><span class="min-w-0 truncate">Finance Tools</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">37<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/learning-platforms"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20"></path></svg><span class="min-w-0 truncate">Learning Platforms</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">37<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/design"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg><span class="min-w-0 truncate">Design</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">20<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/no-code"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg><span class="min-w-0 truncate">No-Code &amp; Low-Code</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">
621<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/productivity"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg><span class="min-w-0 truncate">Productivity &amp; Collaboration</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">21<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/testing"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg><span class="min-w-0 truncate">Testing &amp; QA</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">20<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/mobile"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-box shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"></path><path d="m3.3 7 8.7 5 8.7-5"></path><path d="M12 22V12"></path></svg><span class="min-w-0 truncate">Mobile Development</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">14<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/data-analytics"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><span class="min-w-0 truncate">Data &amp; Analytics</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">45<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/cms"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 roun
6ded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><span class="min-w-0 truncate">CMS &amp; Content</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">33<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/version-control"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span class="min-w-0 truncate">Version Control &amp; Code Hosting</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">17<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/documentation"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20"></path></svg><span class="min-w-0 truncate">Documentation</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">17<span class="sr-only"> tools</span></span></a></li><li><a class="group relative flex items-center gap-2.5 rounded-lg px-3 py-1.5 text-sm transition-colors text-neutral-400 hover:bg-surface hover:text-foreground" href="/categories/ai-agents"><span aria-hidden="true" class="absolute left-0 top-1/2 h-4 w-[3px] -translate-y-1/2 rounded-r-full bg-foreground hidden"></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot shrink-0 transition-colors text-neutral-400 group-hover:text-foreground" aria-hidden="true"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg><span class="min-w-0 truncate">AI Agents &amp; Assistants</span><span class="ml-auto shrink-0 pl-2 text-xs tabular-nums text-neutral-400">15<span class="sr-only"> tools</span></span></a></li></ul></nav></div></aside><div class="flex min-h-dvh flex-col lg:pl-64"><header class="sticky top-0 z-40 border-b border-hairline bg-canvas/85 backdrop-blur-md supp
6orts-[backdrop-filter]:bg-canvas/70"><div class="flex h-14 items-center gap-1 px-3 sm:px-4 lg:px-6"><button type="button" aria-label="Open navigation menu" aria-expanded="false" aria-controls="app-nav-drawer" aria-haspopup="dialog" class="flex h-9 w-9 shrink-0 items-center justify-center rounded-lg text-neutral-400 transition-colors hover:bg-surface hover:text-foreground lg:hidden"><svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button><a aria-label="DevPages home" class="flex min-w-0 items-center gap-2 rounded-lg px-1.5 py-1 lg:hidden" href="/"><svg viewBox="0 0 32 32" role="img" aria-label="DevPages" class="text-foreground h-6 w-6 shrink-0"><rect x="13" y="4" width="15" height="15" rx="4" fill="currentColor" fill-opacity="0.4"></rect><rect x="4" y="13" width="15" height="15" rx="4" fill="currentColor"></rect></svg><span class="truncate font-display text-base font-semibold tracking-tight text-foreground">devpages</span></a><nav aria-label="Primary tabs" class="min-w-0 hidden h-14 lg:flex lg:items-center"><ul class="flex h-full items-stretch gap-1 overflow-x-auto px-1 [scrollbar-width:none] [&amp;::-webkit-scrollbar]:hidden"><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/">Explore<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/categories">Categories<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/top20">Top 20<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/ai-models">AI Prices<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/blog">Blog<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/community">Community<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li></ul></nav><div class="ml-auto flex shrink-0 items-center gap-1"><a aria-label="Search tools" class="flex h-9 w-9 items-center justify-center rounded-lg text-neutral-400 transition-colors hover:bg-surface hover:text-foreground lg:hidden" href="/search"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></a><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 dark:hover:bg-slate-800 h-9 rounded-md px-3 bg-transparent text-slate-400 hover:bg-surface-raised hover:text-foreground dark:text-slate-400 dark:hover:text-foreground" type="button" aria-label="Toggle theme" title="Toggle theme"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun hidden dark:block" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon dark:hidden" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg><span class="ml-2 hidden text-sm md:inline" aria-hidden="true"><span class="hidden dark:inline">Light mode</span><span class="dark:hidden">Dark mode</span></span></button><a class="inline-flex h-9 shrink-0 items-center gap-1.5 rounded-lg bg-primary px-3 text-sm font-semibold text-primary-foreground transition-colors hover:bg-primary/90" href="/submit-a-tool"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus shrink-0" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg><span class="hidden sm:inline">Submit a tool</span><span class="sm:hidden">Submit</span></a></div></div><div class="border-t border-hairline lg:hidden"><nav aria-label="Primary tabs" class="min-w-0 h-11 px-2"><ul class="flex h-full items-stretch gap-1 overflow-x-auto px-1 [scrollbar-width:none] [&amp;::-webkit-scrollbar]:hidden"><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/">Explore<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/categories">Categories<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/top20">Top 20<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/ai-models">AI Prices<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/blog">Blog<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li><li class="shrink-0"><a class="relative flex h-full items-center whitespace-nowrap rounded-md px-3 text-sm transition-colors font-medium text-neutral-400 hover:text-foreground" href="/community">Community<span aria-hidden="true" class="absolute inset-x-3 bottom-0 h-0.5 rounded-full bg-foreground hidden"></span></a></li></ul></nav></div></header><main id="main-content" tabindex="-1" class="flex-1 focus:outline-none"><!--$?--><template id="B:0"></template>
6<div role="status" aria-live="polite" class="container mx-auto max-w-6xl px-4 py-12 md:py-16"><span class="sr-only">Loading page</span><div aria-hidden="true" class="h-9 w-2/3 max-w-md animate-pulse rounded-lg bg-surface-raised motion-reduce:animate-none md:h-10"></div><div aria-hidden="true" class="mt-4 h-4 w-full max-w-2xl animate-pulse rounded bg-surface-raised motion-reduce:animate-none"></div><div aria-hidden="true" class="mt-2.5 h-4 w-3/4 max-w-xl animate-pulse rounded bg-surface-raised motion-reduce:animate-none"></div><div aria-hidden="true" class="mt-10 grid gap-4 sm:grid-cols-2 lg:grid-cols-3"><div class="h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none"></div><div class="h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none"></div><div class="h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none"></div><div class="h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none"></div><div class="h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none"></div><div class="h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none"></div></div></div><!--/$--></main><footer class="mt-16 border-t border-hairline bg-canvas"><div class="mx-auto w-full max-w-[1600px] px-4 py-12 sm:px-6 lg:px-8"><div class="grid grid-cols-1 gap-10 sm:grid-cols-2 lg:grid-cols-4"><div class="min-w-0"><a aria-label="DevPages home" class="mb-4 inline-flex items-center gap-2.5" href="/"><svg viewBox="0 0 32 32" role="img" aria-label="DevPages" class="shrink-0 text-foreground h-7 w-7"><rect x="13" y="4" width="15" height="15" rx="4" fill="currentColor" fill-opacity="0.4"></rect><rect x="4" y="13" width="15" height="15" rx="4" fill="currentColor"></rect></svg><span class="font-display text-[1.05rem] font-semibold tracking-tight text-foreground">devpages</span></a><p class="mb-5 text-sm leading-relaxed text-neutral-400"><span class="font-medium text-foreground">Dev Pages — The Developer Tools Directory.</span> <!-- -->Discover, Compare &amp; Master Software Development Tools. Your ultimate hub for builders.</p><div class="flex items-center gap-2"><a href="https://twitter.com/devpages_io" target="_blank" rel="me noopener noreferrer" class="flex h-9 w-9 items-center justify-center rounded-lg border border-hairline text-neutral-400 transition-colors hover:border-hairline-strong hover:text-foreground" aria-label="DevPages on X (opens in a new tab)"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-twitter" aria-hidden="true"><path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"></path></svg></a><a href="https://www.linkedin.com/company/devpages" target="_blank" rel="me noopener noreferrer" class="flex h-9 w-9 items-center justify-center rounded-lg border border-hairline text-neutral-400 transition-colors hover:border-hairline-strong hover:text-foreground" aria-label="DevPages on LinkedIn (opens in a new tab)"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-linkedin" aria-hidden="true"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect width="4" height="12" x="2" y="9"></rect><circle cx="4" cy="4" r="2"></circle></svg></a></div></div><nav aria-label="Footer navigation" class="min-w-0"><h2 class="mb-4 text-[0.7rem] font-medium uppercase tracking-[0.12em] text-neutral-400">Navigation</h2><ul class="space-y-2.5"><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/">Home</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/categories">Categories</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/compare">Compare Tools</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/top20">Top 20</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/ai-models">AI Model Prices</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/submit-a-tool">Submit Tool</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/community">Community</a></li></ul></nav><nav aria-label="Footer resources" class="min-w-0"><h2 class="mb-4 text-[0.7rem] font-medium uppercase tracking-[0.12em] text-neutral-400">Resources</h2><ul class="space-y-2.5"><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/about">About Us</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/blog">Blog</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/faq">FAQ</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/contact">Contact</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/privacy-policy">Privacy Policy</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/terms">Terms of Service</a></li><li><a class="text-sm text-neutral-400 transition-colors hover:text-foreground" href="/cookie-policy">Cookie Policy</a></li></ul></nav><div class="min-w-0"><h2 class="mb-4 text-[0.7rem] font-medium uppercase tracking-[0.12em] text-neutral-400">Stay Updated</h2><p class="mb-4 text-sm leading-relaxed text-neutral-400">Subscribe to our newsletter to receive updates on new tools and features.</p><div><form class="flex gap-3 flex-row"><label for="newsletter-email-footer" class="sr-only">Email address</label><input id="newsletter-email-footer" type="email" placeholder="Enter your email" autoComplete="email" class="flex-1 min-w-0 rounded-xl border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-800 text-slate-900 dark:text-slate-50 focus:outline-none focus:ring-2 focus:ring-brand-500 px-3 py-2 text-sm" required="" name="email" value=""/><div class="hidden" aria-hidden="true"><label for="nl-website-footer">Leave empty</label><input id="nl-website-footer" type="text" tabindex="-1" autoComplete="off" name="website" value=""/></div><button type="submit" class="bg-brand-700 hover:bg-brand-800 text-white dark:bg-brand-500 dark:hover:bg-brand-400 dark:text-slate-950 rounded-xl font-medium transition-all shadow-brand-sm hover:shadow-brand disabled:opacity-60 disabled:cursor-not-allowed shrink-0 px-4 py-2 text-sm">Subscribe</button></form></div></div></div><div class="mt-12 flex flex-col items-start gap-4 border-t border-hairline pt-6 sm:flex-row sm:items-center sm:justify-between"><p class="text-xs text-neutral-400">© <!-- -->2026<!-- --> Dev Pages — The Developer Tools Directory. All rights reserved.</p><div class="flex flex-wrap items-center gap-x-4 gap-y-2 text-xs"><a class="flex items-center gap-1.5 text-neutral-400 transition-colors hover:text-foreground" href="/privacy-policy"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg> Privacy</a><a class="flex items-center gap-1.5 text-neutral-400 transition-colors hover:text-foreground" href="/terms"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg> Terms</a><button type="button" class="flex items-center gap-1.5 text-neutral-400 transition-colors hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cookie" aria-hidden="true"><path d="M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5"></path><path d="M8.5 8.5v.01"></path><path d="M16 15.5v.01"></path><path d="M12 12v.01"></path><path d="M11 17v.01"></path><path d="M7 14v.01"></path></svg> Cookies</button></div></div></div></footer></div></div><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div>
6<script>requestAnimationFrame(function(){$RT=performance.now()});</script>
6<script src="/_next/static/immutable/chunks/3vb5b74p5994d.js" id="_R_" async=""></script>
6<div hidden id="S:0"><div class="container mx-auto px-4 py-8"><nav class="mb-6"><a class="inline-flex items-center text-sm text-slate-600 transition-colors hover:text-brand-700 dark:text-slate-400 dark:hover:text-brand-400" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left mr-2 h-4 w-4" aria-hidden="true"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg>Back to Home</a></nav><div class="mx-auto max-w-4xl"><div class="mb-12 text-center"><h1 class="mb-4 text-3xl font-bold tracking-tight text-slate-900 dark:text-slate-50 md:text-4xl">Contact Us</h1><p class="mx-auto max-w-2xl text-slate-600 dark:text-slate-400">Have questions, feedback, or a correction to a listing? We&#x27;d love to hear from you.</p></div><div class="grid grid-cols-1 gap-8 md:grid-cols-2"><div class="space-y-6"><div class="glass-card rounded-xl p-6"><div class="flex items-start gap-4"><div class="flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-lg bg-brand-50 dark:bg-brand-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail h-6 w-6 text-brand-700 dark:text-brand-400" aria-hidden="true"><path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7"></path><rect x="2" y="4" width="20" height="16" rx="2"></rect></svg></div><div class="min-w-0"><h2 class="mb-1 font-semibold text-slate-900 dark:text-slate-50">Email us</h2><p class="mb-2 text-sm text-slate-600 dark:text-slate-400">For general enquiries and support</p><a href="mailto:[email protected]" class="break-words font-medium text-brand-700 underline-offset-4 hover:underline dark:text-brand-400">[email protected]</a></div></div></div><div class="glass-card rounded-xl p-6"><div class="flex items-start gap-4"><div class="flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-lg bg-brand-50 dark:bg-brand-500/10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square h-6 w-6 text-brand-700 dark:text-brand-400" aria-hidden="true"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path></svg></div><div class="min-w-0"><h2 class="mb-1 font-semibold text-slate-900 dark:text-slate-50">Contribute</h2><p class="mb-2 text-sm text-slate-600 dark:text-slate-400">Submit a tool or flag something we got wrong</p><a class="font-medium text-brand-700 underline-offset-4 hover:underline dark:text-brand-400" href="/community">Ways to pitch in</a></div></div></div><div class="glass-card rounded-xl p-6"><h2 class="mb-3 font-semibold text-slate-900 dark:text-slate-50">What to expect</h2><p class="text-sm text-slate-600 dark:text-slate-400">Messages land in an inbox a person actually reads. DevPages is run by hand and there are no staffed support hours, so we won&#x27;t promise you a turnaround. If you&#x27;re reporting something wrong in a listing, include the tool&#x27;s name and we&#x27;ll get it corrected.</p></div></div><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="min-h-[560px]" aria-hidden="true"></div><!--/$--></div></div></div><!--$--><!--/$--></div>
6<script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
7$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script>
7<script>(self.__next_f=self.__next_f||[]).push([0])</script>
7<script>self.__next_f.push([1,"1:I[39756,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"LoadingBoundaryProvider\"]\n2:\"$Sreact.fragment\"\n3:I[79520,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\"],\"\"]\na:I[63491,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\",\"/_next/static/immutable/chunks/42ilwylc4jt-l.js\"],\"default\"]\n:HL[\"/_next/static/immutable/chunks/0has_pxrzxaze.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/2mvw1zuv32l2g.css\",\"style\"]\n:HL[\"/_next/static/immutable/media/GeistMono_Variable.p.0b02cdm7g7y6h.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/immutable/media/Geist_Variable-s.p.2-i4fw5gbtlb7.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n0:{\"P\":null,\"c\":[\"\",\"contact\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"contact\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4628],[[\"$\",\"$L1\",null,{\"loading\":[[\"$\",\"div\",\"l\",{\"role\":\"status\",\"aria-live\":\"polite\",\"className\":\"container mx-auto max-w-6xl px-4 py-12 md:py-16\",\"children\":[[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"Loading page\"}],[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"h-9 w-2/3 max-w-md animate-pulse rounded-lg bg-surface-raised motion-reduce:animate-none md:h-10\"}],[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"mt-4 h-4 w-full max-w-2xl animate-pulse rounded bg-surface-raised motion-reduce:animate-none\"}],[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"mt-2.5 h-4 w-3/4 max-w-xl animate-pulse rounded bg-surface-raised motion-reduce:animate-none\"}],[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"mt-10 grid gap-4 sm:grid-cols-2 lg:grid-cols-3\",\"children\":[[\"$\",\"div\",\"a\",{\"className\":\"h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none\"}],[\"$\",\"div\",\"b\",{\"className\":\"h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none\"}],[\"$\",\"div\",\"c\",{\"className\":\"h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none\"}],[\"$\",\"div\",\"d\",{\"className\":\"h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none\"}],[\"$\",\"div\",\"e\",{\"className\":\"h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none\"}],[\"$\",\"div\",\"f\",{\"className\":\"h-40 animate-pulse rounded-xl border border-hairline bg-surface-raised motion-reduce:animate-none\"}]]}]]}],[],null],\"children\":[\"$\",\"$2\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/0has_pxrzxaze.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/2mvw1zuv32l2g.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"async\":true,\"nonce\":\"$undefined\"}
7],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=localStorage.getItem('theme');var p=(s==='light'||s==='dark'||s==='system')?s:'dark';var t=p==='system'?(window.matchMedia('(prefers-color-scheme: light)').matches?'light':'dark'):p;if(t==='light'){document.documentElement.classList.remove('dark');}}catch(e){}})();\"}}],[\"$\",\"link\",null,{\"rel\":\"alternate\",\"type\":\"application/rss+xml\",\"title\":\"DevPages Blog\",\"href\":\"https://devpages.io/blog/feed.xml\"}],[\"$\",\"link\",null,{\"rel\":\"alternate\",\"type\":\"application/rss+xml\",\"title\":\"DevPages — Recently Listed Tools\",\"href\":\"https://devpages.io/tools/feed.xml\"}],[\"$\",\"$L3\",null,{\"id\":\"google-consent-mode\",\"strategy\":\"beforeInteractive\",\"children\":\"\\n            window.dataLayer = window.dataLayer || [];\\n            function gtag() { dataLayer.push(arguments); }\\n            gtag('consent', 'default', {\\n              'ad_storage': 'denied',\\n              'analytics_storage': 'denied',\\n              'functionality_storage': 'denied',\\n              'personalization_storage': 'denied',\\n              'security_storage': 'granted'\\n            });\\n          \"}],\"$L4\",\"$L5\"]}],\"$L6\"]}]]}]}],{\"children\":[\"$L7\",{\"children\":[\"$L8\",{},null,false,null]},null,false,null]},null,false,null],\"$L9\",false]],\"m\":\"$undefined\",\"G\":[\"$a\",[\"$Lb\",\"$Lc\"]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\"}\nd:I[75144,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\"],\"ThemeProvider\"]\ne:I[5100,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\"],\"QueryProvider\"]\nf:I[63327,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\"],\"ShellProvider\"]\n10:I[63327,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\"],\"Sidebar\"]\n11:I[15498,[\"/_
7next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\"],\"TopBar\"]\n12:I[39756,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"default\"]\n13:I[58298,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\",\"/_next/static/immutable/chunks/0w5zy65f3zo66.js\"],\"default\"]\n14:I[37457,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"default\"]\n1b:I[47257,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"ClientPageRoot\"]\n1c:I[78299,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\",\"/_next/static/immutable/chunks/2mb-r17akmkgs.js\"],\"default\"]\n1f:I[97367,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"OutletBoundary\"]\n20:\"$Sreact.suspense\"\n22:I[97367,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"ViewportBoundary\"]\n24:I[97367,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"MetadataBoundary\"]\n4:[\"$\",\"$L3\",null,{\"async\":true,\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-2M20T1QV9T\",\"strategy\":\"afterInteractive\"}]\n5:[\"$\",\"$L3\",null,{\"id\":\"google-analytics\",\"strategy\":\"afterInteractive\",\"children\":\"\\n            window.dataLayer = window.dataLayer || [];\\n            function gtag(){dataLayer.push(arguments);}\\n            gtag('js', new Date());\\n            gtag('config', 'G-2M20T1QV9T');\\n          \"}]\n6:[\"$\",\"body\",null,{\"className\":\"geistsans_d5a4f12f-module__Ur3q_a__variable geistmono_157ca88a-module__iaM1Ya__variable font-sans antialiased min-h-screen bg-canvas text-foreground\",\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$Le\",null,{\"children\":[[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"min-h-dvh bg-canvas text-foreground\",\"children\":[[\"$\",\"a\",null,{\"href\":\"#main-content\",\"className\":\"sr-only focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-[60] focus:rounded-lg focus:bg-primary focus:px-4 focus:py-2 focus:text-sm focus:font-semibold focus:text-primary-foreground\",\"children\":\"Skip to content\"}],[\"$\",\"$L10\",null,{\"categories\":[{\"slug\":\"generative-ai\",\"name\":\"Generative AI\",\"icon\":\"brain\",\"count\":36},{\"slug\":\"ai-ml\",\"name\":\"AI/ML Tools\",\"icon\":\"cpu\",\"count\":37},{\"slug\":\"devops\",\"name\":\"DevOps\",\"icon\":\"settings\",\"count\":70},{\"slug\":\"cloud\",\"name\":\"Cloud Infrastructure\",\"icon\":\"cloud\",\"count\":44},{\"slug\":\"observability\",\"name\":\"Observability\",\"icon\":\"activity\",\"count\":50},{\"slug\":\"apis\",\"name\":\"APIs\",\"icon\":\"code\",\"count\":38},{\"slug\":\"frameworks\",\"name\":\"Frameworks\",\"icon\":\"layers\",\"count\":41},{\"slug\":\"databases\",\"name\":\"Databases\",\"icon\":\"database\",\"count\":43},{\"slug\":\"security\",\"name\":\"Security\",\"icon\":\"shield\",\"count\":42},{\"slug\":\"finance-tools\",\"name\":\"Finance Tools\",\"icon\":\"dollar-sign\",\"count\":37},{\"slug\":\"learning-platforms\",\"name\":\"Learning Platforms\",\"icon\":\"book\",\"count\":37},{\"slug\":\"design\",\"name\":\"Design\",\"icon\":\"layers\",\"count\":20},{\"slug\":\"no-code\",\"name\":\"No-Code \u0026 Low-Code\",\"icon\":\"workflow\",\"count\":21},{\"slug\":\"productivity\",\"name\":\"Productivity \u0026 Collaboration\",\"icon\":\"zap\",\"count\":21},{\"slug\":\"testing\",\"name\":\"Testing \u0026 QA\",\"icon\":\"terminal\",\"count\":20},{\"slug\":\"mobile\",\"name\":\"Mobile Development\",\"icon\":\"box\",\"count\":14},{\"slug\":\"data-analytics\",\"name\":\"Data \u0026 Analytics\",\"icon\":\"activity\",\"count\":45},{\"slug\":\"cms\",\"name\":\"CMS \u0026 Content\",\"icon\":\"globe\",\"count\":33},{\"slug\":\"version-control\",\"name\":\"Version Control \u0026 Code Hosting\",\"
7icon\":\"server\",\"count\":17},{\"slug\":\"documentation\",\"name\":\"Documentation\",\"icon\":\"book\",\"count\":17},{\"slug\":\"ai-agents\",\"name\":\"AI Agents \u0026 Assistants\",\"icon\":\"bot\",\"count\":15}]}],[\"$\",\"div\",null,{\"className\":\"flex min-h-dvh flex-col lg:pl-64\",\"children\":[[\"$\",\"$L11\",null,{}],[\"$\",\"main\",null,{\"id\":\"main-content\",\"tabIndex\":-1,\"className\":\"flex-1 focus:outline-none\",\"children\":[\"$\",\"$L12\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$13\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/0w5zy65f3zo66.js\",\"async\":true}]],\"template\":[\"$\",\"$L14\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"container mx-auto max-w-4xl px-4 py-16 md:py-24\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-sm font-medium tracking-wider text-muted-foreground\",\"children\":\"404\"}],[\"$\",\"h1\",null,{\"className\":\"mt-3 font-display text-3xl font-bold tracking-tight text-foreground md:text-4xl\",\"children\":\"We couldn’t find that page\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 max-w-2xl text-lg leading-relaxed text-muted-foreground\",\"children\":\"The address doesn’t match anything on DevPages. It may have been mistyped, or the link that brought you here may be out of date. Search the catalog or start from one of the sections below.\"}],[\"$\",\"form\",null,{\"action\":\"/search\",\"method\":\"get\",\"role\":\"search\",\"className\":\"mt-8 max-w-xl\",\"children\":[[\"$\",\"label\",null,{\"htmlFor\":\"not-found-search\",\"className\":\"sr-only\",\"children\":\"Search developer tools\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 sm:flex-row\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative flex-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-search pointer-events-none absolute left-3.5 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"14j7rj\",{\"d\":\"m21 21-4.34-4.34\"}],[\"$\",\"circle\",\"4ej97u\",{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}],\"$undefined\"]}],[\"$\",\"input\",null,{\"id\":\"not-found-search\",\"type\":\"search\",\"name\":\"q\",\"placeholder\":\"Search for tools...\",\"autoComplete\":\"off\",\"className\":\"h-11 w-full rounded-xl border border-hairline bg-surface pl-11 pr-4 text-foreground placeholder:text-muted-foreground\"}]]}],\"$L15\"]}]]}],\"$L16\",\"$L17\"]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],\"$L18\"]}]]}]}],\"$L19\",\"$L1a\"]}]}]}]\n7:[\"$\",\"$2\",\"c\",{\"children\":[null,[\"$\",\"$L12\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L14\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n8:[\"$\",\"$2\",\"c\",{\"children\":[[\"$\",\"$L1b\",null,{\"Component\":\"$1c\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@1d\",\"$@1e\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/2mb-r17akmkgs.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"$20\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@21\"}]}]]}]\n9:[\"$\",\"$2\",\"h\",{\"children\":[null,[\"$\",\"$L22\",null,{\"children\":\"$L23\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L24\",null,{\"children\":[\"$\",\"$20\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L25\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\nb:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/0has_pxrzxaze.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nc:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/2mvw1zuv32l2g.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n26:I[22016,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\"],\"\"]\n2c:I[58234,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\"],\"Footer\"]\n2d:I[52877,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\"],\"default\"]\n2e:I[77855,[\"/_next/static/immutable/chunks/0julild6hvf5m.js\",\"/_next/static/immutable/chunks/2p90h8en07pg-.js\",\"/_next/static/immutable/chunks/1uzb-xnsciaz_.js\",\"/_next/static/immutable/chunks/07ifqg-u6dag8.js\",\"/_next/static/immutable/chunks/1p0q56mbc5ogg.js\",\"/_next/static/immutable/chunks/1w-0_xgdvfr_p.js\",\"/_next/static/immutable/chunks/158ebt4gn-ef-.js\",\"/_next/static/immutable/chunks/1_trie9m4h1yr.js\"],\"Toaster\"]\n15:[\"$\",\"button\",null,{\"type\":\"submit\",\"className\":\"inline-flex h-11 shrink-0 items-center justify-center rounded-xl bg-primary px-5 text-sm font-semibold text-primary-foreground transition-colors hover:bg-primary/90\",\"children\":\"Search\"}]\n16:[\"$\",\"nav\",null,{\"aria-labelledby\":\"not-found-sections\",\"className\":\"mt-12\",\"children\":[[\"$\",\"h2\",null,{\"id\":\"not-found-sections\",\"className\":\"font-display text-base font-semibold text-foreground\",\"children\":\"Start somewhere else\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 grid gap-3 sm:grid-cols-2\",\"children\":[[\"$\",\"li\",\"/\",{\"children\":[\"$\",\"$L26\",null,{\"href\":\"/\",\"className\":\"flex h-full gap-3 rounded-xl border border-hairline bg-surface p-4 transition-colors hover:bg-surface-raised\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
7:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-compass mt-0.5 h-5 w-5 shrink-0 text-muted-foreground\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"9ktpf1\",{\"d\":\"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-display text-base font-semibold text-foreground\",\"children\":\"Explore\"}],[\"$\",\"span\",null,{\"className\":\"mt-1 block text-sm leading-relaxed text-muted-foreground\",\"children\":\"The directory index, laid out category by category.\"}]]}]]}]}],[\"$\",\"li\",\"/categories\",{\"children\":[\"$\",\"$L26\",null,{\"href\":\"/categories\",\"className\":\"flex h-full gap-3 rounded-xl border border-hairline bg-surface p-4 transition-colors hover:bg-surface-raised\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-layout-grid mt-0.5 h-5 w-5 shrink-0 text-muted-foreground\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"rect\",\"1g98yp\",{\"width\":\"7\",\"height\":\"7\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"1\"}],[\"$\",\"rect\",\"6d4xhi\",{\"width\":\"7\",\"height\":\"7\",\"x\":\"14\",\"y\":\"3\",\"rx\":\"1\"}],[\"$\",\"rect\",\"nxv5o0\",{\"width\":\"7\",\"height\":\"7\",\"x\":\"14\",\"y\":\"14\",\"rx\":\"1\"}],[\"$\",\"rect\",\"1bb6yr\",{\"width\":\"7\",\"height\":\"7\",\"x\":\"3\",\"y\":\"14\",\"rx\":\"1\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-display text-base font-semibold text-foreground\",\"children\":\"Categories\"}],[\"$\",\"span\",null,{\"className\":\"mt-1 block text-sm leading-relaxed text-muted-foreground\",\"children\":\"Every tool sits in exactly one category. Open one to see it.\"}]]}]]}]}],[\"$\",\"li\",\"/top20\",{\"children\":[\"$\",\"$L26\",null,{\"href\":\"/top20\",\"className\":\"flex h-full gap-3 rounded-xl border border-hairline bg-surface p-4 transition-colors hover:bg-surface-raised\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-trophy mt-0.5 h-5 w-5 shrink-0 text-muted-foreground\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1n3hpd\",{\"d\":\"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978\"}],[\"$\",\"path\",\"rfe1zi\",{\"d\":\"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978\"}],[\"$\",\"path\",\"7xy6bh\",{\"d\":\"M18 9h1.5a1 1 0 0 0 0-5H18\"}],[\"$\",\"path\",\"57wxv0\",{\"d\":\"M4 22h16\"}],[\"$\",\"path\",\"1mhfuq\",{\"d\":\"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z\"}],[\"$\",\"path\",\"tex48p\",{\"d\":\"M6 9H4.5a1 1 0 0 1 0-5H6\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-display text-base font-semibold text-foreground\",\"children\":\"Top 20\"}],[\"$\",\"span\",null,{\"className\":\"mt-1 block text-sm leading-relaxed text-muted-foreground\",\"children\":\"The most-starred tools in the catalog, ranked from the GitHub API.\"}]]}]]}]}],[\"$\",\"li\",\"/blog\",{\"children\":[\"$\",\"$L26\",null,{\"href\":\"/blog\",\"className\":\"flex h-full gap-3 rounded-xl border border-hairline bg-surface p-4 transition-colors hover:bg-surface-raised\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-newspaper mt-0.5 h-5 w-5 shrink-0 text-muted-foreground\",\"aria-hidden\":\"true\",\"children\":[\"$L27\",\"$L28\",\"$L29\",\"$L2a\",\"$undefined\"]}],\"$L2b\"]}]}]]}]]}]\n17:[\"$\",\"p\",null,{\"className\":\"mt-10 text-sm text-muted-foreground\",\"children\":[\"Think something should be here?\",\" \",[\"$\",\"$L26\",null,{\"href\":\"/contact\",\"className\":\"font-medium text-foreground underline underline-offset-4\",\"children\":\"Tell us\"}],\", or\",\" \",[\"$\",\"$L26\",null,{\"href\":\"/submit-a-tool\",\"className\":\"font-medium text-foreground underline underline-offset-4\",\"children\":\"submit a tool\"}],\".\"]}]\n18:[\"$\",\"$L2c\",null,{}]\n19:[\"$\",\"$L2d\",null,{}]\n1a:[\"$\",\"$L2e\",null,{}]\n27:[\"$\",\"path\",\"95g1m2\",{\"d\":\"M15 18h-5\"}]\n28:[\"$\",\"path\",\"sponae\",{\"d\":\"M18 14h-8\"}]\n29:[\"$\",\"path\",\"39pd36\",{\"d\":\"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2\"}
7]\n2a:[\"$\",\"rect\",\"aywv1n\",{\"width\":\"8\",\"height\":\"4\",\"x\":\"10\",\"y\":\"6\",\"rx\":\"1\"}]\n2b:[\"$\",\"span\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-display text-base font-semibold text-foreground\",\"children\":\"Blog\"}],[\"$\",\"span\",null,{\"className\":\"mt-1 block text-sm leading-relaxed text-muted-foreground\",\"children\":\"Tutorials, guides, and comparisons of the tools in the catalog.\"}]]}]\n1d:{}\n1e:\"$8:props:children:0:props:serverProvidedParams:params\"\n23:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n2f:I[27201,[\"/_next/static/immutable/chunks/2corl6wyj4669.js\"],\"IconMark\"]\n21:null\n25:[[\"$\",\"title\",\"0\",{\"children\":\"Contact Us | DevPages\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Get in touch with the DevPages team. Have questions about developer tools, feedback, or partnership inquiries? We'd love to hear from you.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"Dev Pages\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"developer tools,dev tools,programming tools,software development,coding resources\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"link\",\"5\",{\"rel\":\"canonical\",\"href\":\"https://devpages.io/contact\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"Dev Pages - The Developer Tools Directory\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Discover, Compare \u0026 Master Software Development Tools\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://devpages.io\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"DevPages\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image\",\"content\":\"https://devpages.io/opengraph-image?e7015c997be6e0ec\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:alt\",\"content\":\"DevPages - The Developer Tools Directory\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:site\",\"content\":\"@devpages_io\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:title\",\"content\":\"Dev Pages - The Developer Tools Directory\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:description\",\"content\":\"Discover, Compare \u0026 Master Software Development Tools\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image\",\"content\":\"https://devpages.io/opengraph-image?e7015c997be6e0ec\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:image:alt\",\"content\":\"DevPages - The Developer Tools Directory\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"26\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0ej17a1qtm-ch.ico\",\"sizes\":\"64x64\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"27\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"$L2f\",\"28\",{}]]\n"])</script>
7</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.