PageSourceSearch

https://tools.seeft.io/en

html seeft.io collected 2026-10-02 01:57:54 UTC 141,688 bytes, 7 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="scroll-smooth"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/immutable/media/83afe278b6a6bb3c-s.p.45535valc9rzk.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Fseeft-dark.png&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fseeft-dark.png&amp;w=256&amp;q=75 2x"/><link rel="stylesheet" href="/_next/static/immutable/chunks/22rok756so3us.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/41b4afdw3x6mu.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/1-rgn1i-egs43.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/immutable/chunks/1w8m4yz1dyiv-.js"/>
1<script src="/_next/static/immutable/chunks/1gv3zsl8ae-mm.js" async=""></script>
1<script src="/_next/static/immutable/chunks/08w7jrlzvi-pw.js" async=""></script>
1<script src="/_next/static/immutable/chunks/0v5y6flp_kc-f.js" async=""></script>
1<script src="/_next/static/immutable/chunks/2ia9d9nfgw_k1.js" async=""></script>
1<script src="/_next/static/immutable/chunks/31-c_4j-ow0ll.js" async=""></script>
1<script src="/_next/static/immutable/chunks/turbopack-2b8m74hmqce2r.js" async=""></script>
1<script src="/_next/static/immutable/chunks/3w26vu4e29rrp.js" async=""></script>
1<script src="/_next/static/immutable/chunks/1nr0l9t4skoow.js" async=""></script>
1<script src="/_next/static/immutable/chunks/058w4rl31eloc.js" async=""></script>
1<script src="/_next/static/immutable/chunks/1mq9w4blhzuf8.js" async=""></script>
1<script src="/_next/static/immutable/chunks/16x7qco19sv7x.js" async=""></script>
1<script src="/_next/static/immutable/chunks/2vw96crcm0lxg.js" async=""></script>
1<script src="/_next/static/immutable/chunks/3u40gjxx1315g.js" async=""></script>
1<script src="/_next/static/immutable/chunks/3mpmexq8r4zss.js" async=""></script>
1<link rel="modulepreload" href="/animations/seeft-intro.js"/><link rel="modulepreload" href="/animations/seeft-logo.js"/><link rel="modulepreload" href="/animations/seeft-brand-paths.js"/><title>Simple, local-first online tools | Seeft</title><meta name="description" content="Free utilities to format, validate and transform data directly in your browser."/><link rel="canonical" href="https://tools.seeft.io/en"/><link rel="alternate" hrefLang="it" href="https://tools.seeft.io/it"/><link rel="alternate" hrefLang="en" href="https://tools.seeft.io/en"/><link rel="alternate" hrefLang="x-default" href="https://tools.seeft.io/it"/><meta property="og:title" content="Simple, local-first online tools"/><meta property="og:description" content="Free utilities to format, validate and transform data directly in your browser."/><meta property="og:url" content="https://tools.seeft.io/en"/><meta property="og:site_name" content="Seeft"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://seeft.io/og/og-default.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Seeft"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Simple, local-first online tools"/><meta name="twitter:description" content="Free utilities to format, validate and transform data directly in your browser."/><meta name="twitter:image" content="https://seeft.io/og/og-default.png"/><link rel="icon" href="/favicon/favicon-16x16.png" sizes="16x16" type="image/png" media="(prefers-color-scheme: light)"/><link rel="icon" href="/favicon/favicon-dark-16x16.png" sizes="16x16" type="image/png" media="(prefers-color-scheme: dark)"/><meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://seeft.io"/><link rel="modulepreload" href="/animations/seeft-intro.js"/><link rel="modulepreload" href="/animations/seeft-logo.js"/><link rel="modulepreload" href="/animations/seeft-brand-paths.js"/>
1<script>{
2        const theme=(function x(){let a=document.cookie.split(";").map(a=>a.trim()).find(a=>a.startsWith("seeft-theme=")),b=a?.slice("seeft-theme=".length);if("dark"===b||"light"===b)return b;try{let a=localStorage.getItem("theme");if("dark"===a||"light"===a)return a}catch{}return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"})();
3        document.documentElement.classList.toggle('dark',theme==='dark');
4        document.documentElement.style.backgroundColor=theme==='dark'?'#071513':'#f6faf9';
5        document.documentElement.style.colorScheme=theme;
6    }</script>
6<style>html[data-seeft-splash-pending] [data-seeft-loader] { visibility: hidden; }</style>
6<script>(function s(a){let b=window.location.hostname;if(!(["seeft.io","www.seeft.io","localhost","127.0.0.1","[::1]"].includes(b)||b.endsWith(".vercel.app"))||/^\/(it|en)\/tools(?:\/|$)/.test(location.pathname)||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;try{if(sessionStorage.getItem(a))return}catch{}function c(){clearTimeout(d),document.documentElement.removeAttribute("data-seeft-splash-pending"),document.removeEventListener("seeft:splash-finished",c)}document.documentElement.setAttribute("data-seeft-splash-pending","");let d=setTimeout(c,9e3);document.addEventListener("seeft:splash-finished",c)})('seeft:intro:v2');</script>
6<script src="/_next/static/immutable/chunks/0c0hxoamwjsbw.js" noModule=""></script>
6</head><body class="inter_c15e96cb-module__0bjUvq__variable font-sans text-foreground min-h-screen flex flex-col antialiased selection:bg-seeft-700 selection:text-white"><div hidden=""><!--$--><!--/$--></div>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Seeft","url":"https://seeft.io","description":"Simple, local-first web utilities for data and repetitive work.","inLanguage":["it","en"]}</script>
6<div id="seeft-splash-host"></div>
6<script>(function t(a){let b,c,d=document.getElementById("seeft-splash-host"),e=window.matchMedia("(prefers-reduced-motion: reduce)");if(!document.documentElement.hasAttribute("data-seeft-splash-pending")||d?.shadowRoot)return;if(!d||e.matches)return void document.dispatchEvent(new Event("seeft:splash-finished"));d.dataset.theme=document.documentElement.classList.contains("dark")?"dark":"light";let f=d.attachShadow({mode:"open"}),g=document.createElement("style");g.textContent=a.css;let h=document.createElement("dialog");h.className="seeft-splash",h.tabIndex=-1,h.setAttribute("aria-label","it"===a.locale?"Benvenuto in Seeft":"Welcome to Seeft");let i=document.createElement("div");i.className="seeft-splash-stage";let j=document.createElement("div");j.className="seeft-splash-logo",j.innerHTML='<svg viewBox="200 130 380 185" role="img" aria-label="Seeft" style="display:block;width:100%;height:auto"><rect x="370" y="167" width="15" height="78" fill="var(--seeft-intro-color)" /></svg>';let k=j.firstElementChild;i.append(j);let l=document.createElement("button");l.type="button",l.className="seeft-splash-skip",l.textContent="it"===a.locale?"Entra":"Enter",h.append(i,l),f.append(g,h);let m=!1,n=!1,o=document.documentElement.style.overflow,p=new MutationObserver(()=>{d.dataset.theme=document.documentElement.classList.contains("dark")?"dark":"light"});function q(){try{sessionStorage.setItem(a.sessionKey,"1")}catch{}}function r(){n||(n=!0,clearTimeout(w),clearTimeout(b),h.close(),document.documentElement.style.overflow=o,c?.destroy(),c=void 0,p.disconnect(),e.removeEventListener("change",t),window.removeEventListener("pagehide",v),window.removeEventListener("popstate",v),l.removeEventListener("click",s),h.removeEventListener("cancel",u),h.remove(),document.dispatchEvent(new Event("seeft:splash-finished")))}function s(){m||n||(m=!0,q(),c?.pause(),clearTimeout(w),h.classList.add("seeft-splash-closing"),b=setTimeout(r,260*!e.matches))}function t(){e.matches&&s()}function u(a){a.preventDefault(),s()}function v(){q(),r()}let w=setTimeout(s,7900);l.addEventListener("click",s),h.addEventListener("cancel",u),e.addEventListener("change",t),window.addEventListener("pagehide",v),window.addEventListener("popstate",v),p.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]});try{h.showModal(),h.focus({preventScroll:!0}),document.documentElement.style.overflow="hidden",import(a.moduleUrl).then(({createSeeftIntro:a})=>{m||n||!d.isConnected?r():((c=a(j,{autoplay:!1,onComplete:s})).seek(160),k?.remove(),c.play())}).catch(()=>{q(),r()})}catch{q(),r()}})({"css":"\n.seeft-splash {\n  --seeft-intro-color: #008080;\n  --seeft-intro-secondary: #013534;\n  --seeft-intro-shadow: #013534;\n  --seeft-intro-sheen-opacity: 0;\n  position: fixed;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  height: 100dvh;\n  max-width: none;\n  max-height: none;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  background: #f6faf9;\n  color: #013534;\n  font-family: inherit;\n  box-sizing: border-box;\n  opacity: 1;\n  transition: opacity 260ms ease;\n}\n\n:host([data-theme='dark']) .seeft-splash {\n  --seeft-intro-color: #ffffff;\n  --seeft-intro-secondary: #cccccc;\n  --seeft-intro-shadow: #b9b9b9;\n  --seeft-intro-sheen-opacity: 1;\n  background: #071513;\n  color: #edf9f7;\n}\n\n.seeft-splash::backdrop { background: transparent; }\n.seeft-splash:focus { outline: none; }\n.seeft-splash-closing { opacity: 0; }\n.seeft-splash-stage { display: grid; place-items: center; width: 100%; height: 100%; }\n.seeft-splash-logo { width: min(520px, 86vw); aspect-ratio: 380 / 185; }\n.seeft-splash-skip {\n  position: absolute;\n  right: max(24px, env(safe-area-inset-right));\n  bottom: max(24px, env(safe-area-inset-bottom));\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 44px;\n  min-height: 44px;\n  padding: 10px 12px;\n  border: 0;\n  border-radius: 4px;\n  background: transparent;\n  color: inherit;\n  font: inherit;\n  font-size: 12px;\n  font-weight: 400;\n  opacity: .65;\n  transition: opacity 160ms ease;
6\n  cursor: pointer;\n}\n.seeft-splash-skip:hover { opacity: 1; }\n.seeft-splash-skip:focus-visible { opacity: 1; outline: 1px solid currentColor; outline-offset: 0; }\n\n@media (prefers-reduced-motion: reduce) {\n  .seeft-splash { transition: none; }\n}\n","locale":"en","moduleUrl":"/animations/seeft-intro.js","sessionKey":"seeft:intro:v2"});</script>
6<header class="sticky top-0 z-50 w-full border-b border-[#d9e6e3]/80 bg-[#f6faf9]/90 backdrop-blur-xl dark:border-[#183b37]/80 dark:bg-[#071513]/90"><div class="mx-auto flex h-16 w-full max-w-7xl items-center justify-between px-4 sm:px-6 lg:px-8"><a class="flex shrink-0 items-center" aria-label="Seeft home" href="https://seeft.io/en"><img alt="Seeft.io" width="120" height="32" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fseeft-dark.png&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fseeft-dark.png&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fseeft-dark.png&amp;w=256&amp;q=75"/></a><nav class="hidden items-center gap-3 md:flex lg:gap-5 xl:gap-7" aria-label="Main navigation"><a class="inline-flex h-16 items-center whitespace-nowrap border-b-2 text-sm font-medium transition-colors border-transparent text-slate-600 hover:text-seeft-700 dark:text-slate-300 dark:hover:text-seeft-300" href="https://tools.seeft.io/en">Tools</a><a class="inline-flex h-16 items-center whitespace-nowrap border-b-2 text-sm font-medium transition-colors border-transparent text-slate-600 hover:text-seeft-700 dark:text-slate-300 dark:hover:text-seeft-300" href="https://seeft.io/en/how-it-works">How it works</a><a class="inline-flex h-16 items-center whitespace-nowrap border-b-2 text-sm font-medium transition-colors border-transparent text-slate-600 hover:text-seeft-700 dark:text-slate-300 dark:hover:text-seeft-300" href="https://tools.seeft.io/en/roadmap">Roadmap</a><a class="inline-flex h-16 items-center whitespace-nowrap border-b-2 text-sm font-medium transition-colors border-transparent text-slate-600 hover:text-seeft-700 dark:text-slate-300 dark:hover:text-seeft-300" href="https://seeft.io/en/pricing">Pricing</a></nav><div class="hidden items-center gap-1 md:flex lg:gap-2 xl:gap-3"><div class="xl:hidden"><button type="button" id="base-ui-_R_7kmjeivb_" data-base-ui-tooltip-trigger="" aria-label="Search and open a tool" aria-keyshortcuts="Control+K Meta+K" class="inline-flex h-10 items-center justify-center gap-2 rounded-xl border border-[#cbdedb] bg-white/80 text-sm font-semibold text-slate-700 shadow-sm transition hover:border-seeft-400 hover:text-seeft-800 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-100 w-10 px-0"><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-search h-4 w-4" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></button><div data-slot="dialog-header" class="flex flex-col gap-2 sr-only"><h2 id="radix-_R_8mjeivbH1_" data-slot="dialog-title" class="text-base leading-none font-medium">Open a tool</h2><p id="radix-_R_8mjeivbH2_" data-slot="dialog-description" class="text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground">Search tools and Tools pages.</p></div></div><div class="hidden xl:block"><button type="button" id="base-ui-_R_7l6jeivb_" data-base-ui-tooltip-trigger="" aria-label="Search and open a tool" aria-keyshortcuts="Control+K Meta+K" class="inline-flex h-10 items-center justify-center gap-2 rounded-xl border border-[#cbdedb] bg-white/80 text-sm font-semibold text-slate-700 shadow-sm transition hover:border-seeft-400 hover:text-seeft-800 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-100 px-3"><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-search h-4 w-4" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><span>Search</span></button><div data-slot="dialog-header" class="flex flex-col gap-2 sr-only"><h2 id="radix-_R_96jeivbH1_" data-slot="dialog-title" class="text-base leading-none font-medium">Open a tool</h2><p id="radix-_R_96jeivbH2_" data-slot="dialog-description" class="text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground">Search tools and Tools pages.</p></div></div><button type="button" aria-label="Preferences" title="Preferences" class="inline-flex h-10 w-10 items-center justify-center rounded-full text-slate-600 transition-colors hover:bg-seeft-50 hover:text-seeft-800 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-seeft-500 dark:text-slate-300 dark:hover:bg-seeft-950 dar
6k:hover:text-seeft-200" id="radix-_R_26jeivb_" aria-haspopup="menu" aria-expanded="false" data-state="closed" data-slot="dropdown-menu-trigger"><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-settings2 lucide-settings-2 h-5 w-5" aria-hidden="true"><path d="M14 17H5"></path><path d="M19 7h-9"></path><circle cx="17" cy="17" r="3"></circle><circle cx="7" cy="7" r="3"></circle></svg></button><div class="xl:hidden"><div role="status" aria-label="Checking sign-in" class="flex h-10 shrink-0 items-center rounded-full border border-[#cbdedb] bg-white/80 shadow-sm dark:border-[#28514b] dark:bg-[#0c211e] w-10 justify-center"><span aria-hidden="true" class="flex items-center gap-2"><div data-slot="skeleton" class="animate-pulse h-8 w-8 shrink-0 rounded-full bg-seeft-100 motion-reduce:animate-none dark:bg-seeft-900"></div></span></div></div><div class="hidden xl:block"><div role="status" aria-label="Checking sign-in" class="flex h-10 shrink-0 items-center rounded-full border border-[#cbdedb] bg-white/80 shadow-sm dark:border-[#28514b] dark:bg-[#0c211e] w-44 gap-2 py-1 pl-1 pr-2"><span aria-hidden="true" class="flex items-center gap-2"><div data-slot="skeleton" class="animate-pulse h-8 w-8 shrink-0 rounded-full bg-seeft-100 motion-reduce:animate-none dark:bg-seeft-900"></div><div data-slot="skeleton" class="animate-pulse rounded-md h-3 w-20 bg-slate-200 motion-reduce:animate-none dark:bg-slate-700"></div><div data-slot="skeleton" class="animate-pulse h-2.5 w-2.5 rounded-sm bg-slate-200 motion-reduce:animate-none dark:bg-slate-700"></div></span></div></div><a class="inline-flex h-10 w-10 shrink-0 items-center justify-center whitespace-nowrap rounded-lg bg-seeft-700 text-sm font-semibold text-white shadow-sm transition-colors hover:bg-seeft-600 lg:w-auto lg:px-3 xl:ml-2 xl:h-9 xl:px-4" aria-label="Suggest a tool" title="Suggest a tool" href="https://tools.seeft.io/en/requests/new"><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-lightbulb h-4 w-4 lg:hidden" aria-hidden="true"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"></path><path d="M9 18h6"></path><path d="M10 22h4"></path></svg><span class="hidden lg:inline">Suggest a tool</span></a></div><div class="flex items-center gap-1 md:hidden"><button type="button" id="base-ui-_R_7kojeivb_" data-base-ui-tooltip-trigger="" aria-label="Search and open a tool" aria-keyshortcuts="Control+K Meta+K" class="inline-flex h-10 items-center justify-center gap-2 rounded-xl border border-[#cbdedb] bg-white/80 text-sm font-semibold text-slate-700 shadow-sm transition hover:border-seeft-400 hover:text-seeft-800 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-100 w-10 px-0"><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-search h-4 w-4" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></button><div data-slot="dialog-header" class="flex flex-col gap-2 sr-only"><h2 id="radix-_R_8ojeivbH1_" data-slot="dialog-title" class="text-base leading-none font-medium">Open a tool</h2><p id="radix-_R_8ojeivbH2_" data-slot="dialog-description" class="text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground">Search tools and Tools pages.</p></div><div role="status" aria-label="Checking sign-in" class="flex h-10 shrink-0 items-center rounded-full border border-[#cbdedb] bg-white/80 shadow-sm dark:border-[#28514b] dark:bg-[#0c211e] w-10 justify-center"><span aria-hidden="true" class="flex items-center gap-2"><div data-slot="skeleton" class="animate-pulse h-8 w-8 shrink-0 rounded-full bg-seeft-100 motion-reduce:animate-none dark:bg-seeft-900"></div></span></div><button type="button" class="inline-flex h-11 w-11 items-center justify-center rounded-lg text-slate-700 hover:bg-seeft-50 dark:text-slate-200 dark:hover:bg-seeft-950" aria-expanded="false" aria-controls="mobile-navigation" aria-label="Open menu"><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-menu h-6 w-6" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button></div></div></header><main class="flex-1 flex flex-col w-full"><!--$?--><template id="B:0"></template>
6<span data-seeft-loader="" role="status" aria-live="polite" aria-atomic="true" class="flex w-full flex-col items-center justify-center gap-4 min-h-[60vh] flex-1 py-16 "><span aria-hidden="true" class="inline-flex shrink-0"><span role="img" aria-label="Seeft" data-variant="auto" class="seeft-animated-logo w-24" style="aspect-ratio:260 / 255"><svg class="seeft-animated-logo-fallback" viewBox="260 115 260 255" aria-hidden="true"><g><path fill="var(--seeft-logo-shadow)" d="M308 174H387V189Z"></path><path fill="var(--seeft-logo-color)" d="M276 135H373Q388 135 388 150H484Q499 150 499 165V189H387V174H276Z"></path></g><g><path fill="var(--seeft-logo-shadow)" d="M308 253H387V268Z"></path><path fill="var(--seeft-logo-color)" d="M276 214H373Q388 214 388 229H484Q499 229 499 244V268H387V253H276Z"></path></g><g><path fill="var(--seeft-logo-shadow)" d="M308 333H387V348Z"></path><path fill="var(--seeft-logo-color)" d="M276 294H373Q388 294 388 309H484Q499 309 499 324V348H387V333H276Z"></path></g></svg><span class="seeft-animated-logo-motion"></span></span></span><span class="text-sm">Loading…</span></span><!--/$--></main><footer class="border-t border-[#d9e6e3] bg-white py-12 text-slate-600 dark:border-[#183b37] dark:bg-[#071513] dark:text-slate-400"><div class="mx-auto grid w-full max-w-7xl gap-10 px-4 sm:px-6 md:grid-cols-3 lg:px-8"><div class="space-y-4"><img alt="Seeft.io" loading="lazy" width="120" height="32" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fseeft-dark.png&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fseeft-dark.png&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fseeft-dark.png&amp;w=256&amp;q=75"/><p class="max-w-xs text-sm leading-6">Simple web utilities to transform data and speed up repetitive work.</p><p class="text-xs text-slate-500">P.IVA 02983090420</p></div><div><h2 class="mb-4 text-sm font-semibold uppercase tracking-wider text-slate-900 dark:text-white">Product</h2><nav class="flex flex-col gap-3 text-sm"><a class="hover:text-seeft-700 dark:hover:text-seeft-300" href="https://tools.seeft.io/en">All tools</a><a class="hover:text-seeft-700 dark:hover:text-seeft-300" href="https://seeft.io/en/how-it-works">How it works</a><a class="hover:text-seeft-700 dark:hover:text-seeft-300" href="https://tools.seeft.io/en/roadmap">Roadmap</a><a class="hover:text-seeft-700 dark:hover:text-seeft-300" href="https://seeft.io/en/pricing">Pricing</a></nav></div><div><h2 class="mb-4 text-sm font-semibold uppercase tracking-wider text-slate-900 dark:text-white">Information</h2><nav class="flex flex-col gap-3 text-sm"><a class="hover:text-seeft-700 dark:hover:text-seeft-300" href="https://seeft.io/en/support">Support</a><a class="hover:text-seeft-700 dark:hover:text-seeft-300" href="https://seeft.io/en/privacy">Privacy</a><a class="hover:text-seeft-700 dark:hover:text-seeft-300" href="https://seeft.io/en/cookies">Cookie</a><a class="hover:text-seeft-700 dark:hover:text-seeft-300" href="https://seeft.io/en/terms">Terms</a><button type="button" data-cc="show-preferencesModal" class="w-fit text-left hover:text-seeft-700 dark:hover:text-seeft-300">Cookie preferences</button></nav></div></div><div class="mx-auto mt-10 flex w-full max-w-7xl flex-col gap-3 border-t border-[#d9e6e3] px-4 pt-6 text-xs text-slate-500 sm:px-6 md:flex-row md:items-center md:justify-between lg:px-8 dark:border-[#183b37]"><p>© <!-- -->2026<!-- --> Seeft di Bufarini Simone <!-- -->All rights reserved.</p><p>PEC: [email protected] · Cod. Dest.: J6URRTW</p></div></footer><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false" data-react-aria-top-layer="true"></section>
6<script>requestAnimationFrame(function(){$RT=performance.now()});</script>
6<script src="/_next/static/immutable/chunks/1w8m4yz1dyiv-.js" id="_R_" async=""></script>
6<div hidden id="S:0"><section class="product-grid border-b border-[#d9e6e3] py-20 dark:border-[#183b37] md:py-28"><div class="mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8 "><div class="max-w-3xl"><p class="mb-4 text-sm font-bold tracking-[0.18em] text-seeft-700 dark:text-seeft-300">SEEFT TOOLS</p><h1 class="text-4xl font-bold tracking-tight text-slate-950 dark:text-white md:text-6xl">Simple tools for concrete work</h1><p class="mt-6 text-lg leading-8 text-slate-600 dark:text-slate-300">Format, validate and transform data with fast utilities. Every tool clearly states where processing happens.</p><div class="mt-6 inline-flex items-center gap-2 rounded-full bg-seeft-50 px-3 py-1.5 text-sm font-medium text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200"><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-shield-check h-4 w-4" 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><path d="m9 12 2 2 4-4"></path></svg>Local-first: check each tool&#x27;s badge</div></div></div></section><section class="py-16 md:py-24 lg:py-32 "><div class="mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8 "><div class="mb-8 flex flex-wrap items-end justify-between gap-4"><div><h2 class="text-2xl font-bold text-slate-950 dark:text-white">Available now</h2><p class="mt-2 text-slate-600 dark:text-slate-300">Search by name or start with the result you need.</p></div><a class="inline-flex items-center gap-1.5 text-sm font-semibold text-seeft-700 hover:text-seeft-600 dar
6k:text-seeft-300 dark:hover:text-seeft-200" href="https://tools.seeft.io/en/roadmap">Roadmap<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-right h-4 w-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div><div><div class="rounded-2xl border border-[#d9e6e3] bg-white p-3 shadow-sm dark:border-[#183b37] dark:bg-[#0b201d]"><label class="relative block"><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-search pointer-events-none absolute left-3.5 top-3.5 h-5 w-5 text-slate-400" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><span class="sr-only">Search for a tool, format or operation…</span><input placeholder="Search for a tool, format or operation…" class="h-12 w-full rounded-xl border border-slate-200 bg-slate-50 pl-11 pr-11 text-base outline-none transition focus:border-seeft-500 focus:ring-2 focus:ring-seeft-500/10 dark:border-slate-700 dark:bg-slate-950" value=""/></label></div><div class="-mx-1 mt-5 flex gap-2 overflow-x-auto px-1 pb-2" role="tablist" aria-label="All"><button type="button" role="tab" aria-selected="true" class="whitespace-nowrap rounded-full border px-4 py-2 text-sm font-semibold transition border-seeft-700 bg-seeft-700 text-white">All<span class="ml-2 text-xs text-seeft-100">23</span></button><button type="button" role="tab" aria-selected="false" class="whitespace-nowrap rounded-full border px-4 py-2 text-sm font-semibold transition border-slate-200 bg-white text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-300">Transform and prepare data<span class="ml-2 text-xs text-slate-400">3</span></button><button type="button" role="tab" aria-selected="false" class="whitespace-nowrap rounded-full border px-4 py-2 text-sm font-semibold transition border-slate-200 bg-white text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-300">JSON, XML and YAML<span class="ml-2 text-xs text-slate-400">6</span></button><button type="button" role="tab" aria-selected="false" class="whitespace-nowrap rounded-full border px-4 py-2 text-sm font-semibold transition border-slate-200 bg-white text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-300">Encoding, security and identifiers<span class="ml-2 text-xs text-slate-400">6</span></button><button type="button" role="tab" aria-selected="false" class="whitespace-nowrap rounded-full border px-4 py-2 text-sm font-semibold transition border-slate-200 bg-white text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-300">Development and automation<span class="ml-2 text-xs text-slate-400">8</span></button></div><div class="mt-8 grid overflow-hidden rounded-3xl bg-[#083f3a] text-white shadow-xl shadow-seeft-950/10 md:grid-cols-[1fr_auto]"><div class="p-7 md:p-9"><span class="inline-flex rounded-full bg-white/10 px-3 py-1 text-xs font-bold uppercase tracking-[0.14em] text-seeft-100">Core tool</span><a class="group block" href="https://tools.seeft.io/en/data-transformer"><h2 class="mt-5 text-3xl font-bold">Data Transformer</h2><p class="mt-3 max-w-2xl leading-7 text-seeft-50/80">Explore, refine, filter and map CSV and JSON without uploading data to a server.</p><span class="mt-6 inline-flex items-center gap-2 font-semibold text-white">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></a><div class="mt-7 border-t border-white/15 pt-5"><p class="text-xs font-bold uppercase tracking-[0.14em] text-seeft-100/75">Quick CSV actions</p><div class="mt-3 flex flex-wrap gap-2"><a class="rounded-full border border-white/20 bg-white/10 px-3 py-1.5 text-sm font-semibold text-white transition hover:bg-white/20" href="https://tools.seeft.io/en/csv-viewer">CSV Viewer</a><a class="rounded-full border border-white/20 bg-white/10 px-3 py-1.5 text-sm font-semibold text-white transition hover:bg-white/20" href="https://tools.seeft.io/en/csv-cleaner">
6CSV Cleaner</a><a class="rounded-full border border-white/20 bg-white/10 px-3 py-1.5 text-sm font-semibold text-white transition hover:bg-white/20" href="https://tools.seeft.io/en/csv-column-mapper">CSV Column Mapper</a></div></div></div><div class="hidden items-center border-l border-white/10 px-12 md:flex"><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-table-properties h-16 w-16 text-seeft-300" aria-hidden="true"><path d="M15 3v18"></path><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M21 9H3"></path><path d="M21 15H3"></path></svg></div></div><div class="space-y-14 pt-12"><section id="category-transform"><div class="mb-6 max-w-3xl ToolCatalog-module__NzO_XW__filterEnter"><h2 class="text-2xl font-bold text-slate-950 dark:text-white">Transform and prepare data</h2><p class="mt-2 text-slate-600 dark:text-slate-300">Fix, convert, compare and remap CSV and JSON datasets.</p></div><div class="grid gap-6 md:grid-cols-2 xl:grid-cols-3"><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/json-csv-converter"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-right h-5 w-5" aria-hidden="true"><path d="M8 3 4 7l4 4"></path><path d="M4 7h16"></path><path d="m16 21 4-4-4-4"></path><path d="M20 17H4"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">JSON ↔ CSV</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Convert JSON to CSV and CSV to JSON in one tool.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/data-diff"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-git-compare-arrows h-5 w-5" aria-hidden="true"><circle cx="5" cy="6" r="3"></circle><path d="M12 6h5a2 2 0 0 1 2 2v7"></path><path d="m15 9-3-3 3-3"></path><circle cx="19" cy="18" r="3"></circle><path d="M12 18H7a2 2 0 0 1-2-2V9"></path><path d="m9 15 3 3-3 3"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">CSV and JSON Data Diff</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Compare two datasets to find added, removed and changed records and download a report.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div></div></section><section id="category-structured"><div class="mb-6 max-w-3xl ToolCatalog-module__NzO_XW__filterEnter"><h2 class="text-2xl font-bold text-slate-950 dark:text-white">JSON, XML and YAML</h2><p class="mt-2 text-slate-600 dark:text-slate-300">Format, validate, convert and query structured documents.</p></div><div class="grid gap-6 md:grid-cols-2 xl:grid-cols-3"><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/json-validator"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-circle-check h-5 w-5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">JSON Formatter &amp; Validator</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Check syntax, locate errors, and format or minify JSON.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/pretty-xml"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-file-code-corner h-5 w-5" aria-hidden="true"><path d="M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="m5 16-3 3 3 3"></path><path d="m9 22 3-3-3-3"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">XML Formatter &amp; Validator</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Format and validate XML in your browser.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/json-yaml"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-file-braces h-5 w-5" 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 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1"></path><path d="M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">JSON ↔ YAML</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Convert both ways while retaining structures and value types.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/xml-json-converter"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-repeat2 lucide-repeat-2 h-5 w-5" aria-hidden="true"><path d="m2 9 3-3 3 3"></path><path d="M13 18H7a2 2 0 0 1-2-2V6"></path><path d="m22 15-3 3-3-3"></path><path d="M11 6h6a2 2 0 0 1 2 2v10"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">XML ↔ JSON</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Convert XML to JSON and JSON to XML with attributes and text.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/xpath-tester"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-network h-5 w-5" aria-hidden="true"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">XPath Tester</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Run XPath on XML and inspect nodes, attributes and values.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/jsonpath-tester"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-list-tree h-5 w-5" aria-hidden="true"><path d="M8 5h13"></path><path d="M13 12h8"></path><path d="M13 19h8"></path><path d="M3 10a2 2 0 0 0 2 2h3"></path><path d="M3 5v12a2 2 0 0 0 2 2h3"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">JSONPath Tester</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Query JSON with paths, wildcards and safe filters.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div></div></section><section id="category-encode"><div class="mb-6 max-w-3xl ToolCatalog-module__NzO_XW__filterEnter"><h2 class="text-2xl font-bold text-slate-950 dark:text-white">Encoding, security and identifiers</h2><p class="mt-2 text-slate-600 dark:text-slate-300">Encode values, inspect tokens and generate identifiers or digests.</p></div><div class="grid gap-6 md:grid-cols-2 xl:grid-cols-3"><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/base64"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-binary h-5 w-5" aria-hidden="true"><rect x="14" y="14" width="4" height="6" rx="2"></rect><rect x="6" y="4" width="4" height="6" rx="2"></rect><path d="M6 20h4"></path><path d="M14 10h4"></path><path d="M6 14h2v6"></path><path d="M14 4h2v6"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">Base64 Encoder / Decoder</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Encode and decode Unicode text or files as Base64.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/url-encoder-decoder"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-link2 lucide-link-2 h-5 w-5" aria-hidden="true"><path d="M9 17H7A5 5 0 0 1 7 7h2"></path><path d="M15 7h2a5 5 0 1 1 0 10h-2"></path><line x1="8" x2="16" y1="12" y2="12"></line></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">URL Encoder / Decoder</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Encode or decode URL parameters and components.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/uuid-generator"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-fingerprint-pattern h-5 w-5" aria-hidden="true"><path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4"></path><path d="M14 13.12c0 2.38 0 6.38-1 8.88"></path><path d="M17.29 21.02c.12-.6.43-2.3.5-3.02"></path><path d="M2 12a10 10 0 0 1 18-6"></path><path d="M2 16h.01"></path><path d="M21.8 16c.2-2 .131-5.354 0-6"></path><path d="M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2"></path><path d="M8.65 22c.21-.66.45-1.32.57-2"></path><path d="M9 6.8a6 6 0 0 1 9 5.2v2"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">UUID Generator</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Generate UUID v4 and v7 values in bulk and in your preferred format.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/timestamp-converter"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-clock3 lucide-clock-3 h-5 w-5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6h4"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">Timestamp Converter</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Convert Unix timestamps, milliseconds, ISO 8601 and readable dates.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/hash-generator"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-hash h-5 w-5" aria-hidden="true"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">Hash Generator</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Calculate SHA-1, SHA-256, SHA-384 and SHA-512 hashes.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/jwt-decoder"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-key-round h-5 w-5" aria-hidden="true"><path d="M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"></path><circle cx="16.5" cy="7.5" r=".5" fill="currentColor"></circle></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">JWT Decoder</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Read the header and payload of a JSON Web Token.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div></div></section><section id="category-develop"><div class="mb-6 max-w-3xl ToolCatalog-module__NzO_XW__filterEnter"><h2 class="text-2xl font-bold text-slate-950 dark:text-white">Development and automation</h2><p class="mt-2 text-slate-600 dark:text-slate-300">Test patterns, schedules and queries while you build.</p></div><div class="grid gap-6 md:grid-cols-2 xl:grid-cols-3"><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/regex-tester"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-regex h-5 w-5" aria-hidden="true"><path d="M17 3v10"></path><path d="m12.67 5.5 8.66 5"></path><path d="m12.67 10.5 8.66-5"></path><path d="M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">Regex Tester</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Test patterns, flags, groups and replacements in real time.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/cron-builder"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-calendar-clock h-5 w-5" aria-hidden="true"><path d="M16 14v2.2l1.6 1"></path><path d="M16 2v4"></path><path d="M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5"></path><path d="M3 10h5"></path><path d="M8 2v4"></path><circle cx="16" cy="16" r="6"></circle></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">Cron Builder</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Compose five-field cron expressions and preview upcoming runs.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/working-hours-calculator"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-clock3 lucide-clock-3 h-5 w-5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6h4"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">Working Hours Calculator</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Add work ranges, enter your lunch break and find when to leave based on your target hours.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/hl7-parser"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-list-tree h-5 w-5" aria-hidden="true"><path d="M8 5h13"></path><path d="M13 12h8"></path><path d="M13 19h8"></path><path d="M3 10a2 2 0 0 0 2 2h3"></path><path d="M3 5v12a2 2 0 0 0 2 2h3"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">HL7 v2 Parser</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Paste an HL7 pipe message and inspect or edit fields, repetitions, components and subcomponents with standard labels.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/hl7-anonymizer"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-fingerprint-pattern h-5 w-5" aria-hidden="true"><path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4"></path><path d="M14 13.12c0 2.38 0 6.38-1 8.88"></path><path d="M17.29 21.02c.12-.6.43-2.3.5-3.02"></path><path d="M2 12a10 10 0 0 1 18-6"></path><path d="M2 16h.01"></path><path d="M21.8 16c.2-2 .131-5.354 0-6"></path><path d="M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2"></path><path d="M8.65 22c.21-.66.45-1.32.57-2"></path><path d="M9 6.8a6 6 0 0 1 9 5.2v2"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">HL7 Anonymizer</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Redact personal data in selected PID fields and doctor details in PV1-7 without uploading the message to a server.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/hl7-generator"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-file-code-corner h-5 w-5" aria-hidden="true"><path d="M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="m5 16-3 3 3 3"></path><path d="m9 22 3-3-3-3"></path></svg></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">HL7 Generator</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Generate HL7 v2 ADT, QBP, RSP, ORM and ORU sample messages.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/sql-formatter"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-database h-5 w-5" 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></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">SQL Formatter</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Format queries in the most common SQL dialects.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div><div class="group relative"><a class="block h-full" href="https://tools.seeft.io/en/sql-in-builder"><div class="rounded-2xl border border-[#d9e6e3] dark:border-[#183b37] bg-background-card text-foreground shadow-sm transition-all hover:border-seeft-600/60 hover:shadow-[0_12px_35
6px_-24px_rgba(0,128,128,0.65)] h-full p-2 group-hover:-translate-y-1 motion-reduce:transform-none"><div class="flex flex-col space-y-1.5 p-6 "><div class="mb-4 flex h-11 w-11 items-center justify-center rounded-xl bg-seeft-50 text-seeft-700 dark:bg-seeft-950 dark:text-seeft-300"><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-database h-5 w-5" 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></div><h3 class="font-semibold leading-tight tracking-tight text-foreground pr-12 text-xl">SQL IN List Builder</h3></div><div class="p-6 pt-0 text-gray-500 dark:text-gray-400 "><p class="min-h-12 text-sm leading-6">Turn a list of numbers or text into an IN clause ready to copy.</p><div class="mt-5 flex items-center justify-between gap-4"><div class="flex gap-2"><span class="rounded-full bg-seeft-50 px-2.5 py-1 text-xs font-semibold text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200">Local</span><span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-semibold text-slate-700 dark:bg-slate-800 dark:text-slate-200">Free</span></div><span class="inline-flex items-center gap-1 text-sm font-semibold text-seeft-700 dark:text-seeft-300">Open tool<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-right h-4 w-4 transition group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></div></a><button type="button" aria-pressed="false" aria-label="Add to my tools" title="Add to my tools" class="inline-flex h-11 items-center justify-center gap-2 rounded-xl border px-3 text-sm font-semibold shadow-sm transition focus-visible:ring-2 focus-visible:ring-seeft-500 disabled:opacity-60 border-[#cbdedb] bg-white/90 text-slate-600 hover:border-seeft-400 hover:text-seeft-700 dark:border-[#28514b] dark:bg-[#0c211e] dark:text-slate-200 w-11 px-0 absolute right-5 top-5 z-10 group-hover:-translate-y-1 motion-reduce:transform-none"><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-star h-4 w-4" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></button></div></div></section></div></div></div></section><!--$--><!--/$--></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:\"$Sreact.fragment\"\n2:I[339756,[\"/_next/static/immutable/chunks/3w26vu4e29rrp.js\"],\"default\"]\n3:I[837457,[\"/_next/static/immutable/chunks/3w26vu4e29rrp.js\"],\"default\"]\n4:I[339756,[\"/_next/static/immutable/chunks/3w26vu4e29rrp.js\"],\"LoadingBoundaryProvider\"]\n5:I[969335,[\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\"],\"default\"]\n8:I[897367,[\"/_next/static/immutable/chunks/3w26vu4e29rrp.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nc:I[897367,[\"/_next/static/immutable/chunks/3w26vu4e29rrp.js\"],\"ViewportBoundary\"]\ne:I[897367,[\"/_next/static/immutable/chunks/3w26vu4e29rrp.js\"],\"MetadataBoundary\"]\n10:I[563491,[\"/_next/static/immutable/chunks/3u40gjxx1315g.js\"],\"default\"]\n:HL[\"/_next/static/immutable/chunks/22rok756so3us.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/41b4afdw3x6mu.css\",\"style\"]\n:HL[\"/_next/static/immutable/media/83afe278b6a6bb3c-s.p.45535valc9rzk.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/immutable/chunks/1-rgn1i-egs43.css\",\"style\"]\nb:X\n0:{\"P\":null,\"c\":[\"\",\"en\",\"tools\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[[\"locale\",\"en\",\"d\",[\"api\"]],{\"children\":[\"tools\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4628]},\"$undefined\",\"$undefined\",4632],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$L4\",null,{\"loading\":[[\"$\",\"$L5\",\"l\",{\"size\":\"page\"}],[],null],\"children\":[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/22rok756so3us.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/41b4afdw3x6mu.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L6\"]}]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L7\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/1-rgn1i-egs43.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/3mpmexq8r4zss.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{}
7,null,false,null]},null,false,\"$b\"]},null,false,null]},null,false,\"$b\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"eS40rPNKfpyRz-iA5Xes0\"}\n13:I[522016,[\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\",\"/_next/static/immutable/chunks/3mpmexq8r4zss.js\"],\"\"]\n14:I[225063,[\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\",\"/_next/static/immutable/chunks/3mpmexq8r4zss.js\"],\"default\"]\n:Hm\"/animations/seeft-intro.js\"\n:Hm\"/animations/seeft-logo.js\"\n:Hm\"/animations/seeft-brand-paths.js\"\nb:C\n11:T1142,(function t(a){let b,c,d=document.getElementById(\"seeft-splash-host\"),e=window.matchMedia(\"(prefers-reduced-motion: reduce)\");if(!document.documentElement.hasAttribute(\"data-seeft-splash-pending\")||d?.shadowRoot)return;if(!d||e.matches)return void document.dispatchEvent(new Event(\"seeft:splash-finished\"));d.dataset.theme=document.documentElement.classList.contains(\"dark\")?\"dark\":\"light\";let f=d.attachShadow({mode:\"open\"}),g=document.createElement(\"style\");g.textContent=a.css;let h=document.createElement(\"dialog\");h.className=\"seeft-splash\",h.tabIndex=-1,h.setAttribute(\"aria-label\",\"it\"===a.locale?\"Benvenuto in Seeft\":\"Welcome to Seeft\");let i=document.createElement(\"div\");i.className=\"seeft-splash-stage\";let j=document.createElement(\"div\");j.className=\"seeft-splash-logo\",j.innerHTML='\u003csvg viewBox=\"200 130 380 185\" role=\"img\" aria-label=\"Seeft\" style=\"display:block;width:100%;height:auto\"\u003e\u003crect x=\"370\" y=\"167\" width=\"15\" height=\"78\" fill=\"var(--seeft-intro-color)\" /\u003e\u003c/svg\u003e';let k=j.firstElementChild;i.append(j);let l=document.createElement(\"button\");l.type=\"button\",l.className=\"seeft-splash-skip\",l.textContent=\"it\"===a.locale?\"Entra\":\"Enter\",h.append(i,l),f.append(g,h);let m=!1,n=!1,o=document.documentElement.style.overflow,p=new MutationObserver(()=\u003e{d.dataset.theme=document.documentElement.classList.contains(\"dark\")?\"dark\":\"light\"});function q(){try{sessionStorage.setItem(a.sessionKey,\"1\")}catch{}}function r(){n||(n=!0,clearTimeout(w),clearTimeout(b),h.close(),document.documentElement.style.overflow=o,c?.destroy(),c=void 0,p.disconnect(),e.removeEventListener(\"change\",t),window.removeEventListener(\"pagehide\",v),window.removeEventListener(\"popstate\",v),l.removeEventListener(\"click\",s),h.removeEventListener(\"cancel\",u),h.remove(),document.dispatchEvent(new Event(\"seeft:splash-finished\")))}function s(){m||n||(m=!0,q(),c?.pause(),clearTimeout(w),h.classList.add(\"seeft-splash-closing\"),b=setTimeout(r,260*!e.matches))}function t(){e.matches\u0026\u0026s()}function u(a){a.preventDefault(),s()}function v(){q(),r()}let w=setTimeout(s,7900);l.addEventListener(\"click\",s),h.addEventListener(\"cancel\",u),e.addEventListener(\"change\",t),window.addEventListener(\"pagehide\",v),window.addEventListener(\"popstate\",v),p.observe(document.documentElement,{attributes:!0,attributeFilter:[\"class\"]});try{h.showModal(),h.focus({preventScroll:!0}),document.documentElement.style.overflow=\"hidden\",import(a.moduleUrl).then(({createSeeftIntro:a})=\u003e{m||n||!d.isConnected?r():((c=a(j,{autoplay:!1,onComplete:s})).seek(160),k?.remove(),c.play())}).catch(()=\u003e{q(),r()})}catch{q(),r()}})({\"css\":\"\\n.seeft-splash {\\n  --seeft-intro-color: #008080;\\n  --seeft-intro-secondary: #013534;\\n  --seeft-intro-shadow: #013534;\\n  --seeft-intro-sheen-opacity: 0;\\n  position: fixed;\\n  inset: 0;\\n  width: 100%;\\n  height: 100%;\\n  height: 100dvh;\\n  max-width: none;\\n  max-height: none;\\n  margin: 0;\\n  padding: 0;\\n  border: 0;\\n  background: #f6faf9;\\n  color: #013534;\\n  font-family: inherit;\\n  box-sizing: border-box;\\n  opacity: 1;\\n  transition: opacity 260ms ease;\\n}\\n\\n:host([data-theme='dark']) .seeft-splash {\\n  --seeft-intro-color: #ffffff;\\n  --seeft-intro-secondary: #cccccc;\\n  --seeft-intro-shadow: #b9b9b9;\\n  --seeft-intro-sheen-opacity: 1;\\n  background: #071513;\\n  color: #edf9f7;\\n}\\n\\n.seeft-splash::backdrop { background: transparent; }\\n.seeft-splash:focus { outline: none; }\\n.seeft-splash-closing { opacity: 0; }\\n.seeft-splash-stage { display: grid; place-items: center; width: 100%; height: 100%; }\\n.seeft-splash-logo { width: min(520px, 86vw); aspect-ratio: 380 / 185; }\\n.seeft-splash-skip {\\n  position: absolute;\\n  right: max(24px, env(safe-area-inset-right));\\n  bottom: max(24px, env(safe-area-inset-bottom));\\n  display: inline-flex;\\n  align-items: center;\\n  justify-content: center;\\n  min-width: 44px;\\n  min-height: 44px;\\n  padding: 10px 12px;\\n  border: 0;\\n  border-radius: 4px;\\n  background: transparent;\\n  color: inherit;\\n  font: inherit;\\n  font-size: 12px;\\n  font-weight: 400;\\n  opacity: .65;\\n  transition: opacity 160ms ease;\\n  cursor: pointer;\\n}\\n.seeft-splash-skip:hover { opacity: 1; }\\n.seeft-splash-skip:focus-visible { opacity: 1; outline: 1px solid currentColor; outline-offset: 0; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n  .seeft-splash { transition: none; }\\n}\\n\",\"locale\":\"en\",\"moduleUrl\":\"/animations/seeft-intro.js\",\"sessionKey\":\"seeft:intro:v2\"});6:[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"scroll-smooth\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://seeft.io\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"{\\n        const theme=(function x(){let a=document.cookie.split(\\\";\\\").map(a=\u003ea.trim()).find(a=\u003ea.startsWith(\\\"seeft-theme=\\\")),b=a?.slice(\\\"seeft-theme=\\\".length);
7if(\\\"dark\\\"===b||\\\"light\\\"===b)return b;try{let a=localStorage.getItem(\\\"theme\\\");if(\\\"dark\\\"===a||\\\"light\\\"===a)return a}catch{}return window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches?\\\"dark\\\":\\\"light\\\"})();\\n        document.documentElement.classList.toggle('dark',theme==='dark');\\n        document.documentElement.style.backgroundColor=theme==='dark'?'#071513':'#f6faf9';\\n        document.documentElement.style.colorScheme=theme;\\n    }\"}}],[[\"$\",\"style\",null,{\"children\":\"html[data-seeft-splash-pending] [data-seeft-loader] { visibility: hidden; }\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function s(a){let b=window.location.hostname;if(!([\\\"seeft.io\\\",\\\"www.seeft.io\\\",\\\"localhost\\\",\\\"127.0.0.1\\\",\\\"[::1]\\\"].includes(b)||b.endsWith(\\\".vercel.app\\\"))||/^\\\\/(it|en)\\\\/tools(?:\\\\/|$)/.test(location.pathname)||window.matchMedia(\\\"(prefers-reduced-motion: reduce)\\\").matches)return;try{if(sessionStorage.getItem(a))return}catch{}function c(){clearTimeout(d),document.documentElement.removeAttribute(\\\"data-seeft-splash-pending\\\"),document.removeEventListener(\\\"seeft:splash-finished\\\",c)}document.documentElement.setAttribute(\\\"data-seeft-splash-pending\\\",\\\"\\\");let d=setTimeout(c,9e3);document.addEventListener(\\\"seeft:splash-finished\\\",c)})('seeft:intro:v2');\"}}]]]}],[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"className\":\"inter_c15e96cb-module__0bjUvq__variable font-sans text-foreground min-h-screen flex flex-col antialiased selection:bg-seeft-700 selection:text-white\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"Seeft\\\",\\\"url\\\":\\\"https://seeft.io\\\",\\\"description\\\":\\\"Simple, local-first web utilities for data and repetitive work.\\\",\\\"inLanguage\\\":[\\\"it\\\",\\\"en\\\"]}\"}}],[[\"$\",\"link\",null,{\"rel\":\"modulepreload\",\"href\":\"/animations/seeft-intro.js\"}],[\"$\",\"link\",null,{\"rel\":\"modulepreload\",\"href\":\"/animations/seeft-logo.js\"}],[\"$\",\"link\",null,{\"rel\":\"modulepreload\",\"href\":\"/animations/seeft-brand-paths.js\"}],[\"$\",\"div\",null,{\"id\":\"seeft-splash-host\",\"suppressHydrationWarning\":true}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"$11\"}}]],\"$L12\"]}]]}]\n7:[[\"$\",\"section\",null,{\"className\":\"product-grid border-b border-[#d9e6e3] py-20 dark:border-[#183b37] md:py-28\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8 \",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-3xl\",\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-4 text-sm font-bold tracking-[0.18em] text-seeft-700 dark:text-seeft-300\",\"children\":\"SEEFT TOOLS\"}],[\"$\",\"h1\",null,{\"className\":\"text-4xl font-bold tracking-tight text-slate-950 dark:text-white md:text-6xl\",\"children\":\"Simple tools for concrete work\"}],[\"$\",\"p\",null,{\"className\":\"mt-6 text-lg leading-8 text-slate-600 dark:text-slate-300\",\"children\":\"Format, validate and transform data with fast utilities. Every tool clearly states where processing happens.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 inline-flex items-center gap-2 rounded-full bg-seeft-50 px-3 py-1.5 text-sm font-medium text-seeft-800 dark:bg-seeft-950 dark:text-seeft-200\",\"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-shield-check h-4 w-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"oel41y\",{\"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\",\"dzmm74\",{\"d\":\"m9 12 2 2 4-4\"}],\"$undefined\"]}],\"Local-first: check each tool's badge\"]}]]}]}]}],[\"$\",\"section\",null,{\"id\":\"$undefined\",\"className\":\"py-16 md:py-24 lg:py-32 \",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8 \",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-8 flex flex-wrap items-end justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold text-slate-950 dar
7k:text-white\",\"children\":\"Available now\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-slate-600 dark:text-slate-300\",\"children\":\"Search by name or start with the result you need.\"}]]}],[\"$\",\"$L13\",null,{\"href\":\"https://tools.seeft.io/en/roadmap\",\"className\":\"inline-flex items-center gap-1.5 text-sm font-semibold text-seeft-700 hover:text-seeft-600 dark:text-seeft-300 dark:hover:text-seeft-200\",\"children\":[\"Roadmap\",[\"$\",\"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-arrow-right h-4 w-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}],[\"$\",\"$L14\",null,{\"locale\":\"en\",\"tools\":[{\"key\":\"dataTransformer\",\"href\":\"data-transformer\",\"category\":\"transform\",\"icon\":\"table-properties\",\"keywords\":[\"csv\",\"json\",\"clean\",\"cleaner\",\"filter\",\"map\",\"deduplicate\",\"viewer\",\"column mapper\"],\"featured\":true,\"title\":\"Data Transformer\",\"description\":\"Explore, refine, filter and map CSV and JSON without uploading data to a server.\"},{\"key\":\"jsonCsvConverter\",\"href\":\"json-csv-converter\",\"category\":\"transform\",\"icon\":\"arrow-left-right\",\"keywords\":[\"json\",\"csv\",\"convert\"],\"title\":\"JSON ↔ CSV\",\"description\":\"Convert JSON to CSV and CSV to JSON in one tool.\"},{\"key\":\"dataDiff\",\"href\":\"data-diff\",\"category\":\"transform\",\"icon\":\"diff\",\"keywords\":[\"csv\",\"json\",\"diff\",\"compare\"],\"title\":\"CSV and JSON Data Diff\",\"description\":\"Compare two datasets to find added, removed and changed records and download a report.\"},{\"key\":\"jsonValidator\",\"href\":\"json-validator\",\"category\":\"structured\",\"icon\":\"check\",\"keywords\":[\"json\",\"validate\",\"format\",\"minify\"],\"title\":\"JSON Formatter \u0026 Validator\",\"description\":\"Check syntax, locate errors, and format or minify JSON.\"},{\"key\":\"prettyXml\",\"href\":\"pretty-xml\",\"category\":\"structured\",\"icon\":\"file-code\",\"keywords\":[\"xml\",\"pretty\",\"format\",\"validate\"],\"title\":\"XML Formatter \u0026 Validator\",\"description\":\"Format and validate XML in your browser.\"},{\"key\":\"jsonYaml\",\"href\":\"json-yaml\",\"category\":\"structured\",\"icon\":\"file-json\",\"keywords\":[\"json\",\"yaml\",\"convert\"],\"title\":\"JSON ↔ YAML\",\"description\":\"Convert both ways while retaining structures and value types.\"},{\"key\":\"xmlConverter\",\"href\":\"xml-json-converter\",\"category\":\"structured\",\"icon\":\"repeat\",\"keywords\":[\"xml\",\"json\",\"convert\"],\"title\":\"XML ↔ JSON\",\"description\":\"Convert XML to JSON and JSON to XML with attributes and text.\"},{\"key\":\"xpathTester\",\"href\":\"xpath-tester\",\"category\":\"structured\",\"icon\":\"network\",\"keywords\":[\"xml\",\"xpath\",\"query\"],\"title\":\"XPath Tester\",\"description\":\"Run XPath on XML and inspect nodes, attributes and values.\"},{\"key\":\"jsonpathTester\",\"href\":\"jsonpath-tester\",\"category\":\"structured\",\"icon\":\"list-tree\",\"keywords\":[\"json\",\"jsonpath\",\"query\"],\"title\":\"JSONPath Tester\",\"description\":\"Query JSON with paths, wildcards and safe filters.\"},{\"key\":\"base64\",\"href\":\"base64\",\"category\":\"encode\",\"icon\":\"binary\",\"keywords\":[\"base64\",\"encode\",\"decode\"],\"title\":\"Base64 Encoder / Decoder\",\"description\":\"Encode and decode Unicode text or files as Base64.\"},{\"key\":\"urlCodec\",\"href\":\"url-encoder-decoder\",\"category\":\"encode\",\"icon\":\"link\",\"keywords\":[\"url\",\"encode\",\"decode\",\"percent\"],\"title\":\"URL Encoder / Decoder\",\"description\":\"Encode or decode URL parameters and components.\"},{\"key\":\"uuidGenerator\",\"href\":\"uuid-generator\",\"category\":\"encode\",\"icon\":\"fingerprint\",\"keywords\":[\"uuid\",\"guid\",\"v4\",\"v7\"],\"title\":\"UUID Generator\",\"description\":\"Generate UUID v4 and v7 values in bulk and in your preferred format.\"},{\"key\":\"timestampConverter\",\"href\":\"timestamp-converter\",\"category\":\"encode\",\"icon\":\"clock\",\"keywords\":[\"timestamp\",\"unix\",\"date\",\"time\"],\"title\":\"Timestamp Converter\",\"description\":\"Convert Unix timestamps, milliseconds, ISO 8601 and readable dates.\"},{\"key\":\"hashGenerator\",\"href\":\"hash-generator\",\"category\":\"encode\",\"icon\":\"hash\",\"keywords\":[\"hash\",\"sha\",\"digest\"],\"title\":\"Hash Generator\",\"description\":\"Calculate SHA-1, SHA-256, SHA-384 and SHA
7-512 hashes.\"},{\"key\":\"jwtDecoder\",\"href\":\"jwt-decoder\",\"category\":\"encode\",\"icon\":\"key\",\"keywords\":[\"jwt\",\"token\",\"decode\"],\"title\":\"JWT Decoder\",\"description\":\"Read the header and payload of a JSON Web Token.\"},{\"key\":\"regexTester\",\"href\":\"regex-tester\",\"category\":\"develop\",\"icon\":\"regex\",\"keywords\":[\"regex\",\"regular expression\",\"replace\"],\"title\":\"Regex Tester\",\"description\":\"Test patterns, flags, groups and replacements in real time.\"},{\"key\":\"cronBuilder\",\"href\":\"cron-builder\",\"category\":\"develop\",\"icon\":\"calendar\",\"keywords\":[\"cron\",\"schedule\",\"time\"],\"title\":\"Cron Builder\",\"description\":\"Compose five-field cron expressions and preview upcoming runs.\"},{\"key\":\"workingHours\",\"href\":\"working-hours-calculator\",\"category\":\"develop\",\"icon\":\"clock\",\"keywords\":[\"working hours\",\"work time\",\"timesheet\",\"hours\",\"ore lavorative\",\"fasce orarie\",\"turni\",\"pausa pranzo\",\"lunch break\",\"orario uscita\"],\"title\":\"Working Hours Calculator\",\"description\":\"Add work ranges, enter your lunch break and find when to leave based on your target hours.\"},{\"key\":\"hl7Parser\",\"href\":\"hl7-parser\",\"category\":\"develop\",\"icon\":\"list-tree\",\"keywords\":[\"hl7\",\"v2\",\"pipe\",\"parser\",\"editor\",\"edit\",\"modifica\",\"segments\",\"fields\",\"components\",\"repetitions\",\"messaggio hl7\",\"campi\",\"sottocampi\"],\"title\":\"HL7 v2 Parser\",\"description\":\"Paste an HL7 pipe message and inspect or edit fields, repetitions, components and subcomponents with standard labels.\"},{\"key\":\"hl7Anonymizer\",\"href\":\"hl7-anonymizer\",\"category\":\"develop\",\"icon\":\"fingerprint\",\"keywords\":[\"hl7\",\"v2\",\"anonymize\",\"anonymizer\",\"redact\",\"redacted\",\"privacy\",\"patient\",\"anonimizzare\",\"anonimizzatore\",\"dati personali\"],\"title\":\"HL7 Anonymizer\",\"description\":\"Redact personal data in selected PID fields and doctor details in PV1-7 without uploading the message to a server.\"},{\"key\":\"hl7Generator\",\"href\":\"hl7-generator\",\"category\":\"develop\",\"icon\":\"file-code\",\"keywords\":[\"hl7\",\"v2\",\"generator\",\"generatore\",\"sample\",\"esempio\",\"adt\",\"orm\",\"oru\",\"qbp\",\"rsp\",\"a31\",\"a40\",\"a02\",\"a05\",\"a11\",\"a12\",\"a45\",\"q22\",\"k22\"],\"title\":\"HL7 Generator\",\"description\":\"Generate HL7 v2 ADT, QBP, RSP, ORM and ORU sample messages.\"},{\"key\":\"sqlFormatter\",\"href\":\"sql-formatter\",\"category\":\"develop\",\"icon\":\"database\",\"keywords\":[\"sql\",\"format\",\"query\",\"database\"],\"title\":\"SQL Formatter\",\"description\":\"Format queries in the most common SQL dialects.\"},{\"key\":\"sqlInBuilder\",\"href\":\"sql-in-builder\",\"category\":\"develop\",\"icon\":\"database\",\"keywords\":[\"sql\",\"in\",\"list\",\"clause\",\"query\",\"numbers\",\"strings\",\"valori\",\"numeri\",\"stringhe\"],\"title\":\"SQL IN List Builder\",\"description\":\"Turn a list of numbers or text into an IN clause ready to copy.\"}],\"quickTools\":[{\"href\":\"csv-viewer\",\"title\":\"CSV Viewer\"},{\"href\":\"csv-cleaner\",\"title\":\"CSV Cleaner\"},{\"href\":\"csv-column-mapper\",\"title\":\"CSV Column Mapper\"}],\"categories\":{\"transform\":{\"title\":\"Transform and prepare data\",\"description\":\"Fix, convert, compare and remap CSV and JSON datasets.\"},\"structured\":{\"title\":\"JSON, XML and YAML\",\"description\":\"Format, validate, convert and query structured documents.\"},\"encode\":{\"title\":\"Encoding, security and identifiers\",\"description\":\"Encode values, inspect tokens and generate identifiers or digests.\"},\"develop\":{\"title\":\"Development and automation\",\"description\":\"Test patterns, schedules and queries while you build.\"}},\"labels\":{\"all\":\"All\",\"favorites\":\"Favorites\",\"addFavorite\":\"Add to my tools\",\"removeFavorite\":\"Remove from my tools\",\"search\":\"Search for a tool, format or operation…\",\"clear\":\"Clear search\",\"core\":\"Core tool\",\"open\":\"Open tool\",\"quick\":\"Quick CSV actions\",\"noResults\":\"No tools match your search. Try a broader term.\",\"noFavorites\":\"You have not added any favorite tools yet.\",\"local\":\"Local\",\"free\":\"Free\"}}]]}]}]]\n15:I[932098,[\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\"],\"ThemeProvider\"]\n16:I[321170,[\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\"],\"default\"]\n17:I[752210,[\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\"],\"default\"]\n18:I[119356,[\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\"],\"default\"]\n19:I[510173,[\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\"],\"default\"]\n1a:I[400690,[\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\"],\"default\"]\n12:[\"$\",\"$L15\",null,{\"children\":[\"$\",\"$L16\",null,{\"authEnabled\":true,\"children\":[[\"$\",\"$L17\",null,{\"enabled\":true}],[\"$\",\"$L18\",null,{\"children\":[[\"$\",\"$L19\",null,{\"locale\":\"en\",\"authConfigured\":true,\"googleEnabled\":false,\"githubEnabled\":false,\"seeftEnabled\":true,\"siteSsoEnabled\":true,\"toolLabels\":{\"hub\":\"Online tools\",\"dataTransformer\":\"Data Transformer\",\"jsonValidator\":\"JSON Formatter \u
70026 Validator\",\"jsonCsvConverter\":\"JSON ↔ CSV\",\"jsonToCsv\":\"JSON → CSV\",\"csvToJson\":\"CSV → JSON\",\"csvViewer\":\"CSV Viewer\",\"csvCleaner\":\"CSV Cleaner\",\"csvColumnMapper\":\"CSV Column Mapper\",\"dataDiff\":\"CSV and JSON Data Diff\",\"base64\":\"Base64 Encoder / Decoder\",\"urlCodec\":\"URL Encoder / Decoder\",\"uuidGenerator\":\"UUID Generator\",\"timestampConverter\":\"Timestamp Converter\",\"hashGenerator\":\"Hash Generator\",\"jwtDecoder\":\"JWT Decoder\",\"regexTester\":\"Regex Tester\",\"cronBuilder\":\"Cron Builder\",\"workingHours\":\"Working Hours Calculator\",\"hl7Parser\":\"HL7 v2 Parser\",\"jsonYaml\":\"JSON ↔ YAML\",\"xmlValidator\":\"XML Validator\",\"xmlConverter\":\"XML ↔ JSON\",\"xpathTester\":\"XPath Tester\",\"jsonpathTester\":\"JSONPath Tester\",\"sqlFormatter\":\"SQL Formatter\",\"sqlInBuilder\":\"SQL IN List Builder\",\"prettyJson\":\"Pretty JSON\",\"prettyXml\":\"XML Formatter \u0026 Validator\",\"hl7Anonymizer\":\"HL7 Anonymizer\",\"hl7Generator\":\"HL7 Generator\"}}],[\"$\",\"main\",null,{\"className\":\"flex-1 flex flex-col w-full\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"footer\",null,{\"className\":\"border-t border-[#d9e6e3] bg-white py-12 text-slate-600 dark:border-[#183b37] dark:bg-[#071513] dark:text-slate-400\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mx-auto grid w-full max-w-7xl gap-10 px-4 sm:px-6 md:grid-cols-3 lg:px-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"$L1a\",null,{}],[\"$\",\"p\",null,{\"className\":\"max-w-xs text-sm leading-6\",\"children\":\"Simple web utilities to transform data and speed up repetitive work.\"}],[\"$\",\"p\",null,{\"className\":\"text-xs text-slate-500\",\"children\":\"P.IVA 02983090420\"}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"mb-4 text-sm font-semibold uppercase tracking-wider text-slate-900 dark:text-white\",\"children\":\"Product\"}],[\"$\",\"nav\",null,{\"className\":\"flex flex-col gap-3 text-sm\",\"children\":[[\"$\",\"$L13\",null,{\"href\":\"https://tools.seeft.io/en\",\"className\":\"hover:text-seeft-700 dark:hover:text-seeft-300\",\"children\":\"All tools\"}],[\"$\",\"$L13\",null,{\"href\":\"https://seeft.io/en/how-it-works\",\"className\":\"hover:text-seeft-700 dark:hover:text-seeft-300\",\"children\":\"How it works\"}],[\"$\",\"$L13\",null,{\"href\":\"https://tools.seeft.io/en/roadmap\",\"className\":\"hover:text-seeft-700 dark:hover:text-seeft-300\",\"children\":\"Roadmap\"}],[\"$\",\"$L13\",null,{\"href\":\"https://seeft.io/en/pricing\",\"className\":\"hover:text-seeft-700 dark:hover:text-seeft-300\",\"children\":\"Pricing\"}]]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"mb-4 text-sm font-semibold uppercase tracking-wider text-slate-900 dark:text-white\",\"children\":\"Information\"}],[\"$\",\"nav\",null,{\"className\":\"flex flex-col gap-3 text-sm\",\"children\":[[\"$\",\"$L13\",null,{\"href\":\"https://seeft.io/en/support\",\"className\":\"hover:text-seeft-700 dark:hover:text-seeft-300\",\"children\":\"Support\"}],[\"$\",\"$L13\",null,{\"href\":\"https://seeft.io/en/privacy\",\"className\":\"hover:text-seeft-700 dark:hover:text-seeft-300\",\"children\":\"Privacy\"}],[\"$\",\"$L13\",null,{\"href\":\"https://seeft.io/en/cookies\",\"className\":\"hover:text-seeft-700 dark:hover:text-seeft-300\",\"children\":\"Cookie\"}],[\"$\",\"$L13\",null,{\"href\":\"https://seeft.io/en/terms\",\"className\":\"hover:text-seeft-700 dark:hover:text-seeft-300\",\"children\":\"Terms\"}],[\"$\",\"button\",null,{\"type\":\"button\",\"data-cc\":\"show-preferencesModal\",\"className\":\"w-fit text-left hover:text-seeft-700 dark:hover:text-seeft-300\",\"children\":\"Cookie preferences\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mx-auto mt-10 flex w-full max-w-7xl flex-col gap-3 border-t border-[#d9e6e3] px-4 pt-6 text-xs text-slate-500 sm:px-6 md:flex-row md:items-center md:justify-between lg:px-8 dark:border-[#183b37]\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"© \",2026,\" Seeft di Bufarini Simone \",\"All rights reserved.\"]}],\"$L1b\"]}]]}],\"$L1c\",\"$L1d\"]}]]}]}]\n1e:I[543026,[\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\"],\"default\"]\n1f:I[694617,[\"/_next/static/immutable/chunks/1nr0l9t4skoow.js\",\"/_next/static/immutable/chunks/058w4rl31eloc.js\",\"/_next/static/immutable/chunks/1mq9w4blhzuf8.js\",\"/_next/static/immutable/chunks/16x7qco19sv7x.js\",\"/_next/static/immutable/chunks/2vw96crcm0lxg.js\"],\"Toaster\"]\n1b:[\"$\",\"p\",null,{\"children\":\"PEC: [email protected] · Cod. Dest.: J6URRTW\"}]\n1c:[\"$\",\"$L1e\",null,{\"locale\":\"en\"}]\n1d:[\"$\",\"$L1f\",null,{\"position\":\"bottom-right\",\"richColors\":true,\"closeButton\":true}]\nd:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n20:I[27201,[\"/_next/static/immutable/chunks/3w26vu4e29rrp.js\"],\"IconMark\"]\na:null\nf:[[\"$\",\"title\",\"0\",{\"children\":\"Simple, local-first online tools | Seeft\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Free utilities to format, validate and transform data directly in your browser.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"canonical\",\"href\":\"https://tools.seeft.io/en\"}],[\"$\",\"link\",\"3\",{\"rel\":\"alternate\",\"hrefLang\":\"it\",\"href\":\"https://tools.seeft.io/it\"}],[\"$\",\"link\",\"4\",{\"rel\":\"alternate\",\"hrefLang\":\"en\",\"href\":\"https://tools.seeft.io/en\"}],[\"$\",\"link\",\"5\",{\"rel\":\"alternate\",\"hrefLang\":\"x-default\",\"href\":\"https://tools.seeft.io/it\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"Simple, local-first online tools\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Free utilities to format, validate and transform data directly in your browser.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://tools.seeft.io/en\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"Seeft\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image\",\"content\":\"https://seeft.io/og/og-default.png\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:alt\",\"content\":\"Seeft\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:title\",\"content\":\"Simple, local-first online tools\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:description\",\"content\":\"Free utilities to format, validate and transform data directly in your browser.\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image\",\"content\":\"https://seeft.io/og/og-default.png\"}],[\"$\",\"link\",\"20\",{\"rel\":\"icon\",\"href\":\"/favicon/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"21\",{\"rel\":\"icon\",\"href\":\"/favicon/favicon-dark-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"$L20\",\"22\",{}]]\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.