this is bussin — looks legit
Final verdict: Valid
What we checked looks okay. Feel free to use it, but never share passwords you did not mean to.
We scanned the terms text for common privacy phrases and found: nothing standard. A computer cannot fully understand legal wording, so skim it yourself too. We scanned the privacy text for common privacy phrases and found: nothing standard. A computer cannot fully understand legal wording, so skim it yourself too.
The scan could not find the normal privacy promises in this text. It may just use odd wording.
The scan could not find the normal privacy promises in this text. It may just use odd wording.
<!DOCTYPE html>
<html lang="en">
<head>
<script>
(function () {
var proto = XMLHttpRequest.prototype;
var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send;
var TOKEN_KEY = 'base44_access_token';
var storedTokenHeader = function () {
try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; }
};
var forgetStoredToken = function () {
try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {}
};
proto.open = function (method, url) {
this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url);
return open.apply(this, arguments);
};
proto.setRequestHeader = function (name, value) {
if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) {
this.__b44SentToken = value;
}
return setRequestHeader.call(this, name, value);
};
proto.send = function () {
this.addEventListener('loadend', function () {
var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader();
if (rejectedTokenStillStored) forgetStoredToken();
});
return send.apply(this, arguments);
};
})();
</script>
<meta charset="utf-8"/>
<link href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='100' height='100' rx='22' fill='%23111'/%3E%3Ctext x='50' y='68' font-size='52' font-weight='800' text-anchor='middle' font-family='sans-serif'%3E%3Ctspan fill='%23f87171'%3ES%3C/tspan%3E%3Ctspan fill='%2334d399'%3EB%3C/tspan%3E%3C/text%3E%3C/svg%3E" rel="icon" type="image/svg+xml"/>
<meta content="width=device-width, initial-scale=1.0, viewport-fit=cover" name="viewport"/>
<link href="/manifest.json" rel="manifest"/>
<meta content="Analyze websites, emails, and code instantly to determine if they are safe or suspicious with detailed security reports." name="description"/>
<title>
Sus or Bus
</title>
<script crossorigin="" src="/assets/index-DvHNEpRD.js" type="module">
</script>
<link crossorigin="" href="/assets/index-CyJhSRtm.css" rel="stylesheet"/>
<script type="module">
if (window.self === window.top) {
let lastPath = "";
function getPageNameFromPath(path) {
const segments = path.split("/").filter(Boolean);
return segments[0] || null;
}
function trackPageView() {
const path = window.location.pathname;
if (path === lastPath) return;
lastPath = path;
const pageName = getPageNameFromPath(path) || "home";
const appId = "6a9a1e7f1cdbe5cf35b257a9";
if (!appId) return;
fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, {
method: "POST",
}).catch(() => {});
}
const originalPushState = history.pushState.bind(history);
history.pushState = function (...args) {
originalPushState(...args);
trackPageView();
};
const originalReplaceState = history.replaceState.bind(history);
history.replaceState = function (...args) {
originalReplaceState(...args);
trackPageView();
};
window.addEventListener("popstate", trackPageView);
trackPageView();
}
</script>
<meta content="Sus or Bus" property="og:title"/>
<meta content="Analyze websites, emails, and code instantly to determine if they are safe or suspicious with detailed security reports." property="og:description"/>
<meta content="https://media.base44.com/images/public/6a9a1e7f1cdbe5cf35b257a9/0ad21e980_BlackWhiteBoldMinimalCreativeAgencyLogo.png/v1/fill/w_1200,h_630/0ad21e980_BlackWhiteBoldMinimalCreativeAgencyLogo.png" property="og:image"/>
<meta content="https://susbus.base44.app" property="og:url"/>
<meta content="website" property="og:type"/>
<meta content="Sus or Bus" property="og:site_name"/>
<meta content="Sus or Bus" name="twitter:title"/>
<meta content="Analyze websites, emails, and code instantly to determine if they are safe or suspicious with detailed security reports." name="twitter:description"/>
<meta content="https://media.base44.com/images/public/6a9a1e7f1cdbe5cf35b257a9/0ad21e980_BlackWhiteBoldMinimalCreativeAgencyLogo.png/v1/fill/w_1200,h_630/0ad21e980_BlackWhiteBoldMinimalCreativeAgencyLogo.png" name="twitter:image"/>
<meta content="summary_large_image" name="twitter:card"/>
<meta content="https://susbus.base44.app" name="twitter:url"/>
<script>
(function () {
var titles = {"/login": "Login | Sus or Bus", "/register": "Register | Sus or Bus", "/forgot-password": "Forgot Password | Sus or Bus", "/reset-password": "Reset Password | Sus or Bus", "/terms": "Terms | Sus or Bus", "/privacy": "Privacy | Sus or Bus", "/settings": "Settings | Sus or Bus", "/faq": "Faq | Sus or Bus", "/extension": "Extension | Sus or Bus", "/history": "History | Sus or Bus", "/dashboard": "Dashboard | Sus or Bus", "/account": "Account | Sus or Bus", "/admin": "Admin | Sus or Bus", "/": "Sus or Bus", "/home": "Sus or Bus"};
// PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
// (old Safari fails to PARSE a lookbehind, taking the whole script down).
var dashed = function (s) {
return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
};
var decode = function (s) {
// A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
// dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
};
var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
var norm = function (path) {
var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
return parts.length ? "/" + parts.join("/") : "/";
};
var lastPath = location.pathname, written = document.title, on = true;
var sync = function () {
// Path only: a hash/query change is the same page, and the SDK strips its own auth
// params with replaceState -- neither must clobber a server-rendered title in place.
if (!on || location.pathname === lastPath) return;
lastPath = location.pathname;
if (document.title !== written) { on = false; return; }
// Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
// map cannot carry, and writing a placeholder there is destructive, not merely vague: the
// prerender worker runs no setUserAgent, so its capture browser reads as human and executes
// this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
// a redirect landing on an unmapped path would bake the placeholder into the stored
// snapshot. Leaving the title alone degrades to today's behavior instead.
// Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
// claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
// dashes there, and the client cannot tell the two apart. The map emits every reachable
// shape per segment instead (_client_url_variants).
var title = titles[norm(location.pathname)];
if (title === undefined) return;
document.title = title;
// Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
// keeping the assigned string would make the next sync() read our own write as the app's.
written = document.title;
};
var wrap = function (fn) {
// The history entry is already pushed by the time sync() runs, so a throw here would
// surface inside the host app's router and break navigation. This is injected into apps
// we cannot test, so it swallows rather than trusting the trace.
return function () {
var r = fn.apply(this, arguments);
try { sync(); } catch (e) {}
return r;
};
};
history.pushState = wrap(history.pushState);
history.replaceState = wrap(history.replaceState);
window.addEventListener("popstate", sync);
})();
</script>
<meta content="yes" name="mobile-web-app-capable"/>
<meta content="black" name="apple-mobile-web-app-status-bar-style"/>
<meta content="Sus or Bus" name="apple-mobile-web-app-title"/>
<link href="https://susbus.base44.app" rel="canonical"/>
<script data-seo-source="builder" type="application/ld+json">
{"@context": "https://schema.org", "@type": "WebSite", "name": "Sus or Bus", "url": "https://susorbus.com"}
</script>
<script data-seo-source="builder" type="application/ld+json">
{"@context": "https://schema.org", "@type": "Organization", "name": "Sus or Bus", "url": "https://susorbus.com", "logo": "https://media.base44.com/images/public/6a9a1e7f1cdbe5cf35b257a9/0ad21e980_BlackWhiteBoldMinimalCreativeAgencyLogo.png"}
</script>
<meta content="noindex, follow" name="robots"/>
</head>
<body>
<div id="root">
<div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">
<main>
<header>
<h1>
Sus or Bus
</h1>
<p>
Analyze websites, emails, and code instantly to determine if they are safe or suspicious with detailed security reports.
</p>
</header>
<nav aria-label="Pages">
<h2>
Pages
</h2>
<ul>
<li>
<a href="/login">
Login
</a>
— Login on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/register">
Register
</a>
— Register on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/forgot-password">
Forgot Password
</a>
— Forgot Password on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/reset-password">
Reset Password
</a>
— Reset Password on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/terms">
Terms
</a>
— Terms on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/privacy">
Privacy
</a>
— Privacy on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/settings">
Settings
</a>
— Settings on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/FAQ">
Faq
</a>
— Faq on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/extension">
Extension
</a>
— Extension on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/history">
History
</a>
— History on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/dashboard">
Dashboard
</a>
— Dashboard on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/account">
Account
</a>
— Account on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
<li>
<a href="/admin">
Admin
</a>
— Admin on Sus or Bus. Analyze websites, emails, and code instantly to determine if they are safe.
</li>
</ul>
</nav>
</main>
</div>
</div>
</body>
</html>