This document describes the internal architecture, JavaScript mechanics, privacy guarantees,
and security boundaries of Maptor — a free, client‑side sitemap generator
that produces valid sitemap.xml files with zero backend.
Maptor is a lightweight XML sitemap generator designed for SEO professionals
and website owners. Its primary purpose is to produce a standards‑compliant
sitemap.xml file in two simple steps:
veckpriv.com). The tool automatically prefixes it with
https:// to form absolute URLs.
/about, /contact, /maptor/)
are added via a dynamic list. Each path is combined with the domain to create
a complete <loc> entry.
<lastmod> (today's date),
<changefreq> (set to daily), and
<priority> (set to 0.8 for all entries).
The tool is ideal for quickly generating a sitemap for small to medium‑sized websites without the need for server‑side processing or third‑party services. All processing is done locally, ensuring complete privacy.
Blob interface for file generation. No data is ever transmitted.
Every operation in Maptor executes 100% inside the browser's memory. No user input — not even the domain or URL paths — ever leaves the client.
getElementById() and stored in a local variable.
No form submission or network request is triggered.
appendChild(), remove()). Each path is validated
locally (non‑empty, leading slash enforced).
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url> block per path with <loc>, <lastmod>, <changefreq>, and <priority>.Blob
with MIME type application/xml. A temporary <a>
element is created, its href set to an object URL, and a programmatic
click triggers the download. All of this uses the FileSaver-like
native API — no external libraries.
fetch(),
XMLHttpRequest, or WebSocket calls of any kind.
// Core generation logic — triggered on download click
function generateSitemap() {
const domain = document.getElementById('domainInput').value.trim();
const paths = getPathsFromDOM(); // array of strings
const today = new Date().toISOString().split('T')[0];
let xml = '<?xml version="1.0" encoding="UTF-8"?>\n';
xml += '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n';
paths.forEach(p => {
xml += ` <url>\n <loc>https://${domain}${p}</loc>\n`;
xml += ` <lastmod>${today}</lastmod>\n`;
xml += ` <changefreq>daily</changefreq>\n`;
xml += ` <priority>0.8</priority>\n </url>\n`;
});
xml += '</urlset>';
// create Blob and trigger download — all local
const blob = new Blob([xml], { type: 'application/xml' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url; a.download = 'sitemap.xml'; a.click();
URL.revokeObjectURL(url);
}
✅ This design guarantees that all processing happens in memory — nothing is serialised, stored, or transmitted outside the browser tab.
Maptor has zero external dependencies. It is built entirely with vanilla JavaScript (ES6), standard HTML5, and plain CSS.
document DOM manipulation, Blob, URL.createObjectURL(),
addEventListener(), and toISOString().
No third‑party libraries, no npm packages, no CDN imports.
'Inter', -apple-system, BlinkMacSystemFont, ...)
to avoid any external font requests. No Google Fonts or webfont services.
Maptor does not persist any data — neither on the server (there is none) nor on the client beyond the current browser session.
localStorage — The tool never writes to
localStorage, sessionStorage, or
IndexedDB. Your domain and URL paths exist only in volatile
memory (JavaScript variables and DOM state).
document.cookie.
Maptor handles no sensitive user data — it only processes a domain name and a list of URL paths. Nevertheless, the security model is absolute: nothing ever touches the network.
<input> and <button> elements
with click and change listeners. They do not wrap
a <form> and never issue a POST or GET
request.
// The only "inputs" are the domain and path list — processed locally
const domain = document.getElementById('domainInput').value;
const paths = Array.from(document.querySelectorAll('.url-path-input'))
.map(inp => inp.value.trim())
.filter(p => p.length > 0);
// 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 Maptor is completely offline after the initial page load.
Launch Maptor, enter your domain and paths, and download a valid sitemap.xml — instantly, privately.