😉 e2e v1.0 documentation

e2e

Instant emoji → decimal HTML entity converter 100% client‑side
💻 Browser‑native 💡 Serverless 🔒 No logs, no cookies 🔄 Character‑by‑character

This document describes the internal architecture, JavaScript mechanics, privacy guarantees, and security boundaries of e2e — a tool that converts emojis and Unicode characters into decimal HTML entities (&#xxxx;) with full support for skin tones and ZWJ sequences.

1. Specific Function core

e2e is a precision character‑conversion tool that serves two primary purposes:

The tool is designed for web developers, content creators, and technical writers who need to embed emojis in HTML, XML, RSS feeds, or API payloads without relying on inconsistent font rendering or risking encoding corruption. It also serves as a debugging aid for Unicode inspection.

🛠️ All conversions are performed entirely inside your browser using JavaScript's native codePointAt() and String.fromCodePoint() methods. No data is ever transmitted.

2. Local JavaScript Mechanism under the hood

Every operation in e2e is executed 100% inside the browser's memory. No user input — not even a single character — ever leaves the client.

// Core conversion logic
function convertToEntity(text) {
  let result = '';
  // for...of handles Unicode correctly
  for (const char of text) {
    const codePoint = char.codePointAt(0);
    result += `&#${codePoint};`;
  }
  return result;
}

// Triggered on button click — all local, no network
convertBtn.addEventListener('click', () => {
  const input = document.getElementById('inputText').value;
  const output = convertToEntity(input);
  document.getElementById('outputText').value = output;
});

✅ This design guarantees that all processing happens in memory — nothing is serialised, stored, or transmitted outside the browser tab.

3. Dependencies / Libraries vanilla & zero

e2e has zero external dependencies. It is built entirely with vanilla JavaScript (ES6), standard HTML5, and plain CSS.

📜 Zero dependencies means zero supply‑chain risk. Every line of code is auditable, self‑contained, and immune to third‑party compromise.

4. Storage Limitations ephemeral

e2e does not persist any data — neither on the server (there is none) nor on the client beyond the current browser session.

🔒 Ephemeral by design — your interaction with e2e leaves no trace. This is not a limitation; it is a deliberate privacy guarantee.

5. Input Security zero‑exfiltration

e2e handles no sensitive user data in the traditional sense — it only processes text that the user chooses to convert. Nevertheless, the security model is absolute: nothing ever touches the network.

// The only "input" is the textarea — processed locally
convertBtn.addEventListener('click', () => {
  // value stays in the browser — never sent anywhere
  const text = document.getElementById('inputText').value;
  // … local conversion, DOM update …
});

// No fetch(), no XMLHttpRequest, no WebSocket
// No cookies, no localStorage, no IndexedDB

🛡️ Absolute input security is guaranteed by the architecture: the browser never initiates any outbound request containing user‑derived data. Your interaction with e2e is completely offline after the initial page load.

😉 Ready to convert your emojis?

Paste any text with emojis and get decimal HTML entities instantly — private, free, and lightning‑fast.

▶ Open e2e
🎯 zero‑tracking 💻 browser‑native 🔒 no server 🔄 full Unicode