Skip to content

ANTI STALKER WEBSITE #148

@SobrangLATHEA

Description

@SobrangLATHEA

<!doctype html>

<title>Private Links — Personal Vault</title> <style> :root{ --bg:#0f1724; --card:#111827; --accent:#60a5fa; --muted:#94a3b8; --glass: rgba(255,255,255,0.03); font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; } html,body{height:100%; margin:0; background:linear-gradient(180deg,#071126 0%,#081028 100%); color:#e6eef8} .wrap{min-height:100%; display:flex; align-items:center; justify-content:center; padding:36px;} .card{ width:100%; max-width:880px; background:var(--card); border-radius:14px; padding:28px; box-shadow: 0 10px 30px rgba(2,6,23,0.6); border:1px solid rgba(255,255,255,0.03); } header{display:flex; gap:12px; align-items:center;} .logo{width:56px;height:56px;border-radius:10px;background:linear-gradient(135deg,var(--accent),#7dd3fc);display:grid;place-items:center;font-weight:700;color:#05264a} h1{margin:0;font-size:20px} p.lead{margin:8px 0 18px;color:var(--muted)} .controls{display:flex;gap:12px;flex-wrap:wrap} input[type="password"]{ padding:10px 12px;border-radius:8px;border:none;background:var(--glass); color:inherit; outline:none; min-width:220px; font-size:15px; } button{ background:linear-gradient(90deg,var(--accent),#7dd3fc); border:none; color:#042f51; padding:10px 14px; border-radius:10px; cursor:pointer; font-weight:600; } button.ghost{background:transparent;border:1px solid rgba(255,255,255,0.06); color:var(--muted)} .links{margin-top:20px; display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px} .link{ background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); padding:12px; border-radius:10px; display:flex; gap:10px; align-items:center; border:1px solid rgba(255,255,255,0.02); } .icon{width:42px;height:42;border-radius:8px; display:grid; place-items:center; font-weight:700; font-size:18px; color:#042f51; background:#bde0ff} .link .meta{flex:1} .meta b{display:block} .meta small{color:var(--muted)} .actions{display:flex; gap:8px; align-items:center} .actions button{padding:8px 10px; font-size:13px} .hint{margin-top:12px; color:var(--muted); font-size:13px} .stealth{margin-left:auto; display:flex; align-items:center; gap:8px} .stealth input{accent-color:var(--accent)} .fake-content{display:none; color:var(--muted); padding:18px; background:rgba(255,255,255,0.02); border-radius:8px; margin-top:14px} .revealed .fake-content{display:none} .locked .fake-content{display:block} .hidden{display:none !important} footer{margin-top:18px; color:var(--muted); font-size:13px} .small{font-size:12px; color:var(--muted)} @media(max-width:520px){ .controls{flex-direction:column} input[type="password"]{width:100%} } </style>
PV

Private Links Vault

Keep your social accounts hidden. Enter the passphrase to reveal them.

    <div class="stealth" title="Stealth mode shows harmless content when locked">
      <label class="small">Stealth mode</label>
      <input id="stealthToggle" type="checkbox" />
    </div>
  </header>

  <div style="margin-top:16px" class="controls">
    <input id="pw" type="password" placeholder="Enter passphrase" aria-label="passphrase" />
    <button id="unlock">Unlock</button>
    <button id="copyAll" class="ghost" title="Copy all visible links">Copy links</button>
    <button id="lockBtn" class="ghost hidden">Lock</button>
  </div>

  <div class="hint" id="hint">Don’t share the passphrase. Links are obfuscated client-side.</div>

  <div class="fake-content" id="fake">
    <strong>Grocery list</strong>
    <ul>
      <li>Milk</li>
      <li>Eggs</li>
      <li>Bread</li>
      <li>Coffee</li>
    </ul>
  </div>

  <div class="links revealed hidden" id="vault">
    <!-- link cards inserted by JS -->
  </div>

  <footer>
    <div class="small">Built: client-side protection only. For stronger privacy use server-side auth.</div>
  </footer>
</div>
<script> /********* CONFIGURE HERE *********/ // Set your passphrase (replace before publishing) const PASSWORD = "letmein"; // change this! // Replace these: friendly label, base64(url), short description, icon initials // To encode a url to base64 in JS: btoa("https://example.com/yourprofile") const LINKS = [ { label:"Instagram", url_b64: btoa("https://instagram.com/yourusername"), desc:"Photo & reels", icon:"IG" }, { label:"Twitter / X", url_b64: btoa("https://twitter.com/yourusername"), desc:"Short posts", icon:"X" }, { label:"Facebook", url_b64: btoa("https://facebook.com/yourusername"), desc:"Profile", icon:"fB" }, { label:"LinkedIn", url_b64: btoa("https://www.linkedin.com/in/yourname"), desc:"Professional", icon:"in" }, { label:"TikTok", url_b64: btoa("https://www.tiktok.com/@Yourusername"), desc:"Videos", icon:"TT" } ]; /********* END CONFIG *********/ const app = document.getElementById("app"); const vault = document.getElementById("vault"); const fake = document.getElementById("fake"); const pw = document.getElementById("pw"); const unlock = document.getElementById("unlock"); const lockBtn = document.getElementById("lockBtn"); const copyAll = document.getElementById("copyAll"); const stealthToggle = document.getElementById("stealthToggle"); const hint = document.getElementById("hint"); function renderLinks() { vault.innerHTML = ""; LINKS.forEach((L, idx) => { const node = document.createElement("div"); node.className = "link"; node.innerHTML = `
${L.icon}
${L.label} ${L.desc}
Open Copy
`; vault.appendChild(node); }); // Attach events vault.querySelectorAll(".open").forEach(b=>{ b.addEventListener("click", ()=> { const idx = +b.dataset.i; const url = atob(LINKS[idx].url_b64); window.open(url, "_blank"); }); }); vault.querySelectorAll(".copy").forEach(b=>{ b.addEventListener("click", async ()=> { const idx = +b.dataset.i; const url = atob(LINKS[idx].url_b64); await navigator.clipboard.writeText(url); b.textContent = "Copied!"; setTimeout(()=> b.textContent = "Copy", 1200); }); }); } function unlockVault() { if (pw.value === PASSWORD) { app.classList.remove("locked"); app.classList.add("revealed"); vault.classList.remove("hidden"); lockBtn.classList.remove("hidden"); unlock.classList.add("hidden"); pw.classList.add("hidden"); renderLinks(); hint.textContent = "Links revealed. Close the tab when done."; } else { hint.textContent = "Wrong passphrase — try again."; pw.classList.add("shake"); setTimeout(()=> pw.classList.remove("shake"), 400); } } function lockVault() { app.classList.remove("revealed"); app.classList.add("locked"); vault.classList.add("hidden"); lockBtn.classList.add("hidden"); unlock.classList.remove("hidden"); pw.classList.remove("hidden"); pw.value = ""; hint.textContent = "Locked."; } unlock.addEventListener("click", unlockVault); pw.addEventListener("keydown", (e)=> { if (e.key === "Enter") unlockVault(); }); lockBtn.addEventListener("click", lockVault); copyAll.addEventListener("click", async ()=>{ const urls = LINKS.map(L => atob(L.url_b64)).join("\n"); await navigator.clipboard.writeText(urls); copyAll.textContent = "Copied!"; setTimeout(()=> copyAll.textContent = "Copy links", 1200); }); stealthToggle.addEventListener("change", ()=> { if (stealthToggle.checked) { // Show fake content when locked if (app.classList.contains("revealed")) fake.style.display = "none"; else fake.style.display = "block"; } else { fake.style.display = "none"; } }); // start with stealth off fake.style.display = "none"; // Prevent basic scraping by not exposing plain urls as variables // All links are stored base64 encoded in LINKS[].url_b64 </script>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions