-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
1 lines (1 loc) · 32 KB
/
Copy pathindex.html
File metadata and controls
1 lines (1 loc) · 32 KB
1
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><meta name="keywords" content="web design, web development, app development, digital agency" data-next-head=""/><meta name="author" content="NECTO" data-next-head=""/><meta property="og:title" content="NECTO (xto)" data-next-head=""/><meta property="og:description" content="NECTO is a digital agency that specializes in creating beautiful websites and digital products." data-next-head=""/><meta property="og:image" content="assets/logo.png" data-next-head=""/><meta property="og:url" content="https://xto.icu" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="NECTO (xto)" data-next-head=""/><meta name="twitter:description" content="NECTO is a digital agency that specializes in creating beautiful websites and digital products." data-next-head=""/><meta name="twitter:image" content="assets/logo.png" data-next-head=""/><meta name="twitter:url" content="https://xto.icu" data-next-head=""/><meta name="robots" content="index, follow" data-next-head=""/><meta name="googlebot" content="index, follow" data-next-head=""/><meta name="google" content="max-video-preview:-1" data-next-head=""/><meta name="theme-color" content="#007bff" data-next-head=""/><meta name="msapplication-TileColor" content="#007bff" data-next-head=""/><meta name="msapplication-TileImage" content="assets/logo.png" data-next-head=""/><meta name="msapplication-config" content="browserconfig.xml" data-next-head=""/><meta name="application-name" content="NECTO (xto)" data-next-head=""/><meta name="apple-mobile-web-app-title" content="NECTO (xto)" data-next-head=""/><meta name="apple-mobile-web-app-capable" content="yes" data-next-head=""/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" data-next-head=""/><meta name="format-detection" content="email=no" data-next-head=""/><link rel="icon" href="/assets/logo.png" type="image/png" sizes="16x16" data-next-head=""/><title data-next-head="">NECTO Hub — Tools That Run in Your Browser</title><meta name="description" content="Encryption, OSINT, P2P, Docker builder, AI tools — all client-side. No servers, no signup, no data leaves your machine." data-next-head=""/><link rel="canonical" href="https://xto.icu/" data-next-head=""/><meta property="og:title" content="NECTO Hub — Browser-Based Developer Tools" data-next-head=""/><meta property="og:description" content="16 tools. Zero servers. All client-side." data-next-head=""/><link rel="preload" href="/_next/static/chunks/500dfffa96b1dcfd.css" as="style"/><link rel="stylesheet" href="/_next/static/chunks/500dfffa96b1dcfd.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/a6dad97d9634a72d.js"></script><script src="/_next/static/chunks/33f493a1ac456adb.js" defer=""></script><script src="/_next/static/chunks/9880bb5d0dd6b0fc.js" defer=""></script><script src="/_next/static/chunks/94402cd03c510608.js" defer=""></script><script src="/_next/static/chunks/1929ed94aa2132a3.js" defer=""></script><script src="/_next/static/chunks/9e9ed20ed48678f9.js" defer=""></script><script src="/_next/static/chunks/33199af12bee9778.js" defer=""></script><script src="/_next/static/chunks/turbopack-ad2e56d6122163fe.js" defer=""></script><script src="/_next/static/chunks/3ea9fc715d43fc68.js" defer=""></script><script src="/_next/static/chunks/turbopack-91b09955ba1e16c9.js" defer=""></script><script src="/_next/static/r9FXdUxgzWirln1g5Q4kh/_ssgManifest.js" defer=""></script><script src="/_next/static/r9FXdUxgzWirln1g5Q4kh/_buildManifest.js" defer=""></script><style id="__jsx-87f12b189788279b">::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#1e293b60;border-radius:2px}</style></head><body><div id="__next"><header class="fixed w-full top-0 z-50 transition-all duration-500 bg-transparent py-5"><div class="container mx-auto px-6 max-w-7xl"><nav class="flex items-center justify-between"><a class="flex items-center gap-3 group" href="/"><span class="text-xl font-bold text-white tracking-wide group-hover:text-rose-100 transition-colors">necto (xto)<span class="text-rose-500">.</span></span></a><div class="hidden md:flex items-center gap-8"><a class="text-sm font-medium transition-colors hover:text-rose-400 text-rose-500" href="/">Home</a><a class="text-sm font-medium transition-colors hover:text-rose-400 text-slate-300" href="/portfolio/">Portfolio</a><a class="text-sm font-medium transition-colors hover:text-rose-400 text-slate-300" href="/about/">About</a><div class="relative"><button class="flex items-center gap-1 text-sm font-medium transition-colors hover:text-rose-400 text-slate-300">Tools<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-chevron-down w-4 h-4 transition-transform duration-300" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div></div><button class="md:hidden p-2 text-slate-300 hover:text-white transition-colors relative z-50"><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 w-6 h-6" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button></nav></div></header><main><div class="jsx-87f12b189788279b relative min-h-screen bg-slate-950 text-slate-200 overflow-x-hidden selection:bg-rose-500/30 font-sans"><div style="transform:translate(80px, 120px)" class="jsx-87f12b189788279b fixed w-[500px] h-[500px] bg-rose-600/6 rounded-full blur-[130px] pointer-events-none z-0"></div><div style="transform:translate(160px, 120px)" class="jsx-87f12b189788279b fixed w-[400px] h-[400px] bg-emerald-600/4 rounded-full blur-[100px] pointer-events-none z-0"></div><div class="jsx-87f12b189788279b fixed inset-0 z-0 bg-[url('/noise.svg')] opacity-[0.03] mix-blend-overlay pointer-events-none"></div><div class="jsx-87f12b189788279b fixed top-0 left-0 w-full h-[120vh] bg-[linear-gradient(to_right,#ffffff06_1px,transparent_1px),linear-gradient(to_bottom,#ffffff06_1px,transparent_1px)] bg-[size:40px_40px] [mask-image:radial-gradient(ellipse_60%_50%_at_50%_0%,#000_70%,transparent_100%)] pointer-events-none z-0"></div><section class="jsx-87f12b189788279b relative z-10 min-h-screen flex flex-col items-center justify-center px-5 pt-24 pb-16 [perspective:800px]"><div class="flex flex-col items-center max-w-4xl w-full" style="transform-style:preserve-3d;opacity:0;transform:scale(0.92)"><div style="transform:translateZ(30px)" class="jsx-87f12b189788279b inline-flex items-center gap-2 px-3 py-1 mb-8 rounded-md bg-slate-900/60 border border-slate-800 text-[10px] font-mono text-slate-500 uppercase tracking-[0.2em]"><span class="jsx-87f12b189788279b flex h-1.5 w-1.5 rounded-full bg-emerald-400/70"></span>16 tools · client-side</div><h1 style="transform:translateZ(60px)" class="jsx-87f12b189788279b text-[clamp(2.5rem,11vw,6rem)] font-extrabold tracking-[-0.03em] leading-[0.9] mb-6 text-left sm:text-center w-full"><span class="jsx-87f12b189788279b block">Tools that</span><span class="jsx-87f12b189788279b block">run in<!-- --> <span class="jsx-87f12b189788279b text-transparent bg-clip-text bg-gradient-to-r from-emerald-400 via-teal-400 to-cyan-400">your browser</span></span></h1><p style="transform:translateZ(25px)" class="jsx-87f12b189788279b max-w-lg text-sm md:text-base text-slate-500 leading-[1.7] mb-10 text-left sm:text-center w-full">Encryption. OSINT intelligence. P2P chat. Docker builders. AI tools.<br class="jsx-87f12b189788279b hidden sm:block"/><span class="jsx-87f12b189788279b text-slate-400">No servers. No signup. Nothing leaves your machine.</span></p><div style="transform:translateZ(40px)" class="jsx-87f12b189788279b flex flex-col sm:flex-row gap-3 w-full sm:w-auto"><a class="inline-flex items-center justify-center gap-2 px-6 py-3 text-sm font-semibold text-white bg-slate-800 hover:bg-slate-700 border border-slate-700 hover:border-slate-600 rounded-lg transition-all duration-200 hover:scale-[1.02] active:scale-[0.97]" href="/tools/">All Tools<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 w-3.5 h-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a class="inline-flex items-center justify-center gap-2 px-6 py-3 text-sm font-medium text-slate-400 hover:text-white bg-white/[0.03] hover:bg-white/[0.06] border border-slate-800/60 hover:border-slate-700 rounded-lg transition-all duration-200" href="/tools/osint-dashboard/">Try OSINT Map<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 w-3.5 h-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></section><section class="jsx-87f12b189788279b relative z-10 py-20 border-t border-slate-900/60"><div class="jsx-87f12b189788279b container mx-auto px-6 max-w-6xl"><div class="jsx-87f12b189788279b mb-12"><div class="jsx-87f12b189788279b inline-block px-2.5 py-0.5 rounded bg-slate-900 border border-slate-800 text-[10px] font-mono text-slate-500 uppercase tracking-widest mb-4">The tools</div><h2 class="jsx-87f12b189788279b text-2xl md:text-[2.5rem] font-bold tracking-tight text-white leading-tight">Everything runs here.<!-- --> <span class="jsx-87f12b189788279b text-slate-500 font-normal">Nothing goes anywhere else.</span></h2></div><div class="jsx-87f12b189788279b grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3"><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-emerald-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/encrypt-decrypt/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-emerald-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:12px"><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 w-5 h-5" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg></div><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">Encrypt/Decrypt</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">AES-256-GCM with PBKDF2. Keys stay in the URL fragment — the server never sees them.</p></div></div></a></div><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-sky-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/hash-generator/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-sky-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:8px"><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 w-5 h-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><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">Hash Generator</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">MD5, SHA-1, SHA-256, SHA-512, HMAC. All computed locally, no uploads.</p></div></div></a></div><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-violet-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/browser-fingerprint/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-violet-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:10px"><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 w-5 h-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><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">Browser Fingerprint</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">WebGL, Canvas, AudioContext, Font enumeration, WebRTC leak. 50+ data points.</p></div></div></a></div><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-amber-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/javascript-obfuscator/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-amber-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:12px"><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-terminal w-5 h-5" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg></div><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">JS Obfuscator</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">XOR encryption, control-flow flattening, dead-code injection. Custom engine, no AST deps.</p></div></div></a></div><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-rose-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/p2p-file-drop/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-rose-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:8px"><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-radio w-5 h-5" aria-hidden="true"><path d="M16.247 7.761a6 6 0 0 1 0 8.478"></path><path d="M19.075 4.933a10 10 0 0 1 0 14.134"></path><path d="M4.925 19.067a10 10 0 0 1 0-14.134"></path><path d="M7.753 16.239a6 6 0 0 1 0-8.478"></path><circle cx="12" cy="12" r="2"></circle></svg></div><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">P2P File Drop</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">WebRTC direct transfer. No server stores your file — not even temporarily.</p></div></div></a></div><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-teal-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/docker-builder/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-teal-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:10px"><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-container w-5 h-5" aria-hidden="true"><path d="M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z"></path><path d="M10 21.9V14L2.1 9.1"></path><path d="m10 14 11.9-6.9"></path><path d="M14 19.8v-8.1"></path><path d="M18 17.5V9.4"></path></svg></div><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">Docker Builder</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">Visual Compose builder with drag-and-drop. 8 templates: LEMP, MERN, Laravel, WordPress, more.</p></div></div></a></div><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-cyan-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/prompt-lab/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-cyan-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:12px"><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-flask-conical w-5 h-5" aria-hidden="true"><path d="M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2"></path><path d="M6.453 15h11.094"></path><path d="M8.5 2h7"></path></svg></div><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">AI Prompt Lab</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">Stress-test prompts. Mutate, diff, estimate tokens. Works with any OpenAI-compatible API.</p></div></div></a></div><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-fuchsia-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/osint-dashboard/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-fuchsia-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:8px"><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-earth w-5 h-5" aria-hidden="true"><path d="M21.54 15H17a2 2 0 0 0-2 2v4.54"></path><path d="M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17"></path><path d="M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05"></path><circle cx="12" cy="12" r="10"></circle></svg></div><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">OSINT Dashboard</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">Live threat map. Cyber attacks, conflicts, outages, fires, aircraft & ship tracking. 7 data layers.</p></div></div></a></div><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-lime-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/web-ide/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-lime-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:10px"><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-code w-5 h-5" aria-hidden="true"><path d="m16 18 6-6-6-6"></path><path d="m8 6-6 6 6 6"></path></svg></div><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">Web IDE</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">Client-side HTML/CSS/JS sandbox with live preview. VS Code-ish UI, mobile-friendly.</p></div></div></a></div><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-emerald-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/deepseek-usage/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-emerald-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:12px"><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-chart-column w-5 h-5" aria-hidden="true"><path d="M3 3v16a2 2 0 0 0 2 2h16"></path><path d="M18 17V9"></path><path d="M13 17V5"></path><path d="M8 17v-3"></path></svg></div><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">DeepSeek Analyzer</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">Upload CSV exports. See token burn, cache-hit rates, cost per model. Zero data leaves.</p></div></div></a></div><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-sky-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/ai-image-generator/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-sky-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:8px"><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-sparkles w-5 h-5" aria-hidden="true"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg></div><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">AI Image Gen</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">Stable Diffusion XL via Cloudflare Workers AI. Prompt, adjust, download. No GPU needed.</p></div></div></a></div><div style="opacity:0;transform:translateY(30px)"><a data-card="true" style="transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))" class="group relative flex flex-col p-5 rounded-xl bg-slate-900/30 border border-slate-800/50 transition-all duration-200 hover:border-violet-500/40 hover:bg-slate-900/60 hover:shadow-sm" href="/tools/url-shortener/"><div class="relative z-10 flex items-start gap-4"><div class="p-2 rounded-lg bg-slate-950 border border-slate-800/60 shrink-0 text-violet-400 group-hover:scale-110 transition-transform duration-300" style="border-radius:10px"><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-terminal w-5 h-5" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg></div><div class="min-w-0 flex-1 flex flex-col"><h3 class="text-sm font-semibold text-white mb-1 group-hover:text-transparent group-hover:bg-clip-text group-hover:bg-gradient-to-r group-hover:from-white group-hover:to-slate-300 transition-all shrink-0">URL Shortener</h3><p class="text-xs text-slate-500 leading-relaxed group-hover:text-slate-400 transition-colors flex-1">Standard or zero-knowledge encrypted links. Decryption happens in the browser, not the server.</p></div></div></a></div></div></div></section><section class="jsx-87f12b189788279b relative z-10 py-20 border-t border-slate-900/60"><div class="jsx-87f12b189788279b container mx-auto px-6 max-w-3xl"><div class="jsx-87f12b189788279b text-center"><h2 class="jsx-87f12b189788279b text-xl md:text-3xl font-bold text-white mb-4">These tools don't phone home.</h2><p class="jsx-87f12b189788279b text-sm text-slate-500 leading-relaxed max-w-md mx-auto mb-8">Every line of code runs in your browser. There are no servers, no analytics, no data collection.</p><a class="inline-flex items-center gap-2 px-5 py-2.5 text-sm font-medium text-white bg-slate-800 hover:bg-slate-700 border border-slate-700 rounded-lg transition-all duration-200" href="/tools/">Browse All Tools<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 w-3.5 h-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></section><footer class="jsx-87f12b189788279b relative z-10 border-t border-slate-900/60 py-8"><div class="jsx-87f12b189788279b container mx-auto px-6 max-w-6xl flex flex-col sm:flex-row items-center justify-between gap-4"><div class="jsx-87f12b189788279b flex items-center gap-3 text-xs text-slate-600"><span class="jsx-87f12b189788279b font-semibold text-slate-400">necto</span><span class="jsx-87f12b189788279b text-slate-800">·</span><span class="jsx-87f12b189788279b">MIT</span><span class="jsx-87f12b189788279b text-slate-800">·</span><span class="jsx-87f12b189788279b">2026</span></div><div class="jsx-87f12b189788279b flex items-center gap-4"><a class="text-xs text-slate-600 hover:text-slate-400 transition-colors" href="/tools/">Tools</a><a class="text-xs text-slate-600 hover:text-slate-400 transition-colors" href="/about/">About</a><a href="https://ko-fi.com/nectocms" target="_blank" rel="noopener noreferrer" class="jsx-87f12b189788279b inline-flex items-center gap-1 text-xs text-rose-500/70 hover:text-rose-400 transition-colors"><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-heart w-3 h-3" aria-hidden="true"><path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5"></path></svg> ko-fi</a></div></div></footer></div></main><div class="fixed bottom-5 right-5 z-50 flex items-end gap-2"><a href="https://ko-fi.com/nectocms" target="_blank" rel="noopener noreferrer" class="group flex items-center gap-2 px-4 py-2.5 bg-[#FF5E5B] hover:bg-[#ff4744] text-white text-sm font-semibold rounded-full shadow-lg shadow-[#FF5E5B]/25 transition-all hover:shadow-[#FF5E5B]/40 hover:scale-105"><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-heart w-4 h-4 fill-white" aria-hidden="true"><path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5"></path></svg><span class="hidden sm:inline">Support on Ko-fi</span><span class="sm:hidden">Ko-fi</span></a><button class="p-1.5 bg-slate-800/80 hover:bg-slate-700 text-slate-400 hover:text-slate-200 rounded-full transition-colors backdrop-blur-sm border border-slate-700/50" aria-label="Dismiss donation button"><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-x w-3 h-3" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"r9FXdUxgzWirln1g5Q4kh","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>