The bundles carried all thirteen translations at once and a page fetched them a third time as raw source; each page now loads only its own language. Alongside that: JavaScript is minified, the eight stylesheets are served as one file, the QR scanner is fetched after the app is up instead of on every visit, Inter ships once rather than five copies of the same file, and Font Awesome is subset to the 82 icons this app draws instead of all 2468. 1.85 MB across 43 requests becomes under 700 KB across 33. On mobile the page starts drawing in 1.6 s instead of 6.3 s and is usable in 4.5 s instead of 11 s. Pages also carry their text in the HTML now. Everything was drawn by JavaScript into an empty div, so crawlers saw correct metadata around nothing, and twelve of the thirteen language pages had never been shown to anyone. The documentation is published under /docs/ with a new FAQ, and unknown addresses return a real 404. Separately: the localized shells were served with the year-long immutable cache header meant for static assets, which pinned anyone who opened /de/ or /ru/ to that build. The header is fixed and the service worker refreshes what it cached. Claude-Session: https://claude.ai/code/session_014KjzTXxrhzYoDDWChYQ4u2
469 lines
37 KiB
HTML
469 lines
37 KiB
HTML
<!DOCTYPE html>
|
||
<!-- Generated by scripts/build-i18n.js from templates/index.template.html and
|
||
locales/*.json. Edits made here are overwritten by the next build. -->
|
||
<html lang="ur" dir="rtl">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<!-- viewport-fit=cover is what makes env(safe-area-inset-*) resolve to anything
|
||
other than 0 on notched iPhones; the composer already pads for it.
|
||
interactive-widget=resizes-content is honoured by Chrome/Android; iOS
|
||
ignores it, which is why the shell also tracks visualViewport in JS. -->
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, interactive-widget=resizes-content">
|
||
<meta http-equiv="Content-Security-Policy"
|
||
content="default-src 'self';
|
||
script-src 'self';
|
||
style-src 'self' 'unsafe-inline';
|
||
font-src 'self' data:;
|
||
connect-src 'self' stun: stuns: turn: turns:;
|
||
img-src 'self' data:;
|
||
media-src 'self' blob:;
|
||
object-src 'none';
|
||
frame-src 'none';
|
||
worker-src 'self';
|
||
manifest-src 'self';
|
||
form-action 'self';
|
||
base-uri 'none';
|
||
upgrade-insecure-requests;">
|
||
<meta http-equiv="X-Content-Type-Options" content="nosniff">
|
||
<meta http-equiv="X-XSS-Protection" content="1; mode=block">
|
||
<meta http-equiv="Referrer-Policy" content="strict-origin-when-cross-origin">
|
||
|
||
<!-- PWA Manifest -->
|
||
<link rel="manifest" href="/ur/manifest.json">
|
||
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788496655816">
|
||
|
||
<!-- PWA Meta Tags -->
|
||
<meta name="mobile-web-app-capable" content="yes">
|
||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||
<meta name="format-detection" content="telephone=no">
|
||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||
<meta name="apple-mobile-web-app-title" content="SecureBit">
|
||
<meta name="application-name" content="SecureBit">
|
||
<meta name="msapplication-TileColor" content="#ff6b35">
|
||
<meta name="msapplication-config" content="/browserconfig.xml">
|
||
|
||
<!-- iOS Splash Screens - Полная конфигурация с генератора -->
|
||
<!-- Landscape -->
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 440px) and (device-height: 956px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_17_Pro_Max__iPhone_16_Pro_Max_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 402px) and (device-height: 874px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_17_Pro__iPhone_17__iPhone_16_Pro_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_16_Plus__iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 420px) and (device-height: 912px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_Air_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_16__iPhone_15_Pro__iPhone_15__iPhone_14_Pro_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_16e__iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_11_Pro_Max__iPhone_XS_Max_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_11__iPhone_XR_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_landscape.png">
|
||
|
||
<!-- iPad Landscape -->
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 1032px) and (device-height: 1376px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/13__iPad_Pro_M4_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/12.9__iPad_Pro_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1210px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/11__iPad_Pro_M4_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/11__iPad_Pro__10.5__iPad_Pro_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/10.9__iPad_Air_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/10.5__iPad_Air_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/10.2__iPad_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_landscape.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/8.3__iPad_Mini_landscape.png">
|
||
|
||
<!-- Portrait -->
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 440px) and (device-height: 956px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_17_Pro_Max__iPhone_16_Pro_Max_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 402px) and (device-height: 874px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_17_Pro__iPhone_17__iPhone_16_Pro_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_16_Plus__iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 420px) and (device-height: 912px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_Air_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_16__iPhone_15_Pro__iPhone_15__iPhone_14_Pro_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_16e__iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_11_Pro_Max__iPhone_XS_Max_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_11__iPhone_XR_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_portrait.png">
|
||
|
||
<!-- iPad Portrait -->
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 1032px) and (device-height: 1376px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/13__iPad_Pro_M4_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/12.9__iPad_Pro_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1210px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/11__iPad_Pro_M4_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/11__iPad_Pro__10.5__iPad_Pro_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/10.9__iPad_Air_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/10.5__iPad_Air_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/10.2__iPad_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_portrait.png">
|
||
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
|
||
|
||
<!-- Apple Touch Icons -->
|
||
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788496655816">
|
||
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
|
||
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
|
||
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
|
||
<link rel="apple-touch-icon" sizes="76x76" href="/logo/icon-76x76.png">
|
||
<link rel="apple-touch-icon" sizes="114x114" href="/logo/icon-114x114.png">
|
||
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
|
||
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
|
||
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
|
||
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788496655816">
|
||
|
||
<!-- Microsoft Tiles -->
|
||
<meta name="msapplication-TileColor" content="#ff6b35">
|
||
<meta name="msapplication-TileImage" content="./logo/icon-144x144.png">
|
||
<meta name="msapplication-config" content="/browserconfig.xml">
|
||
|
||
<!-- Theme colors -->
|
||
<meta name="theme-color" content="#ff6b35">
|
||
<meta name="msapplication-navbutton-color" content="#ff6b35">
|
||
|
||
<!-- Security Headers for PWA - CSP is already defined above -->
|
||
|
||
|
||
<!-- SEO -->
|
||
<title>SecureBit.chat - نجی اور خفیہ کاری شدہ پیغام رساں</title>
|
||
<meta name="description" content="مفت، سرے سے سرے تک خفیہ کاری والا ہمسطح پیغام رساں جو مکمل طور پر آپ کے براؤزر میں چلتا ہے۔ نہ اکاؤنٹ، نہ کوئی سرور جو آپ کے پیغام محفوظ کرے۔">
|
||
<meta name="author" content="Volodymyr">
|
||
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1">
|
||
<link rel="canonical" href="https://securebit.chat/ur/">
|
||
<link rel="alternate" hreflang="en" href="https://securebit.chat/">
|
||
<link rel="alternate" hreflang="de" href="https://securebit.chat/de/">
|
||
<link rel="alternate" hreflang="fr" href="https://securebit.chat/fr/">
|
||
<link rel="alternate" hreflang="es" href="https://securebit.chat/es/">
|
||
<link rel="alternate" hreflang="uk" href="https://securebit.chat/uk/">
|
||
<link rel="alternate" hreflang="ru" href="https://securebit.chat/ru/">
|
||
<link rel="alternate" hreflang="zh-Hans" href="https://securebit.chat/zh/">
|
||
<link rel="alternate" hreflang="ko" href="https://securebit.chat/ko/">
|
||
<link rel="alternate" hreflang="hi" href="https://securebit.chat/hi/">
|
||
<link rel="alternate" hreflang="ar" href="https://securebit.chat/ar/">
|
||
<link rel="alternate" hreflang="he" href="https://securebit.chat/he/">
|
||
<link rel="alternate" hreflang="fa" href="https://securebit.chat/fa/">
|
||
<link rel="alternate" hreflang="ur" href="https://securebit.chat/ur/">
|
||
<link rel="alternate" hreflang="x-default" href="https://securebit.chat/">
|
||
|
||
<!-- Open Graph -->
|
||
<meta property="og:site_name" content="SecureBit.chat">
|
||
<meta property="og:title" content="SecureBit.chat - سرے سے سرے تک خفیہ ہمسطح گفتگو">
|
||
<meta property="og:description" content="ایک محفوظ پیغام رساں جو مکمل طور پر آپ کے براؤزر میں چلتا ہے۔ نہ اکاؤنٹ، نہ کوئی سرور جو آپ کے پیغام محفوظ کرے۔ اپنے STUN/TURN سرور استعمال کریں - ہم کچھ مسلط نہیں کرتے۔">
|
||
<meta property="og:url" content="https://securebit.chat/ur/">
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:locale" content="ur_PK">
|
||
<meta property="og:locale:alternate" content="en_US">
|
||
<meta property="og:locale:alternate" content="de_DE">
|
||
<meta property="og:locale:alternate" content="fr_FR">
|
||
<meta property="og:locale:alternate" content="es_ES">
|
||
<meta property="og:locale:alternate" content="uk_UA">
|
||
<meta property="og:locale:alternate" content="ru_RU">
|
||
<meta property="og:locale:alternate" content="zh_CN">
|
||
<meta property="og:locale:alternate" content="ko_KR">
|
||
<meta property="og:locale:alternate" content="hi_IN">
|
||
<meta property="og:locale:alternate" content="ar_AR">
|
||
<meta property="og:locale:alternate" content="he_IL">
|
||
<meta property="og:locale:alternate" content="fa_IR">
|
||
<meta property="og:image" content="https://securebit.chat/assets/social-card.png">
|
||
<meta property="og:image:secure_url" content="https://securebit.chat/assets/social-card.png">
|
||
<meta property="og:image:type" content="image/png">
|
||
<meta property="og:image:width" content="1200">
|
||
<meta property="og:image:height" content="630">
|
||
<meta property="og:image:alt" content="SecureBit.chat - سرے سے سرے تک خفیہ ہمسطح گفتگو">
|
||
|
||
<!-- Twitter Card -->
|
||
<meta name="twitter:card" content="summary_large_image">
|
||
<meta name="twitter:title" content="SecureBit.chat - سرے سے سرے تک خفیہ ہمسطح گفتگو">
|
||
<meta name="twitter:description" content="ایک محفوظ پیغام رساں جو مکمل طور پر آپ کے براؤزر میں چلتا ہے۔ نہ اکاؤنٹ، نہ کوئی سرور جو آپ کے پیغام محفوظ کرے۔">
|
||
<meta name="twitter:image" content="https://securebit.chat/assets/social-card.png">
|
||
<meta name="twitter:image:alt" content="SecureBit.chat - سرے سے سرے تک خفیہ ہمسطح گفتگو">
|
||
|
||
<!-- Structured data (schema.org) -->
|
||
<script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@graph": [
|
||
{
|
||
"@type": "Organization",
|
||
"@id": "https://securebit.chat/#organization",
|
||
"name": "SecureBit.chat",
|
||
"url": "https://securebit.chat/",
|
||
"logo": "https://securebit.chat/logo/icon-512x512.png",
|
||
"sameAs": [
|
||
"https://github.com/SecureBitChat/securebit-chat",
|
||
"https://snapcraft.io/securebit-chat"
|
||
]
|
||
},
|
||
{
|
||
"@type": "WebSite",
|
||
"@id": "https://securebit.chat/#website",
|
||
"name": "SecureBit.chat",
|
||
"url": "https://securebit.chat/",
|
||
"description": "سرے سے سرے تک خفیہ ہمسطح گفتگو جو مکمل طور پر آپ کے براؤزر میں چلتی ہے۔",
|
||
"inLanguage": "ur",
|
||
"publisher": {
|
||
"@id": "https://securebit.chat/#organization"
|
||
}
|
||
},
|
||
{
|
||
"@type": "WebApplication",
|
||
"name": "SecureBit.chat",
|
||
"url": "https://securebit.chat/ur/",
|
||
"applicationCategory": "CommunicationApplication",
|
||
"operatingSystem": "کوئی بھی (جدید ویب براؤزر)",
|
||
"browserRequirements": "WebRTC اور Web Crypto API درکار ہے",
|
||
"description": "ایک مفت، سرے سے سرے تک خفیہ ہمسطح پیغام رساں۔ نہ اکاؤنٹ، نہ پیغام محفوظ کرنے والے سرور - ECDH P-384، AES-256-GCM اور روبرو SAS تصدیق۔",
|
||
"inLanguage": "ur",
|
||
"image": "https://securebit.chat/assets/social-card.png",
|
||
"license": "https://opensource.org/licenses/MIT",
|
||
"isAccessibleForFree": true,
|
||
"offers": {
|
||
"@type": "Offer",
|
||
"price": "0",
|
||
"priceCurrency": "USD"
|
||
},
|
||
"featureList": [
|
||
"سرے سے سرے تک خفیہ کاری (ECDH P-384، AES-256-GCM)",
|
||
"پیغام سرور کے بغیر ہمسطح WebRTC اتصال",
|
||
"درمیانی حملوں کے خلاف روبرو SAS تصدیق",
|
||
"اپنے STUN/TURN سرور اور نجیت کے لیے صرف ریلے موڈ",
|
||
"خفیہ کاری شدہ فائل منتقلی",
|
||
"قابلِ تنصیب پروگریسو ویب ایپ، آف لائن معاونت کے ساتھ"
|
||
],
|
||
"sameAs": [
|
||
"https://github.com/SecureBitChat/securebit-chat"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
</script>
|
||
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
|
||
both execute in document order after parsing, so React still runs before the
|
||
app modules below, but the parser / first paint is no longer blocked. -->
|
||
<script defer src="/config/ice-servers.js?v=1788496655816"></script>
|
||
<script defer src="/libs/react/react.production.min.js"></script>
|
||
<script defer src="/libs/react-dom/react-dom.production.min.js"></script>
|
||
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
|
||
it never executes the snippet. Loaded in manual mode (no auto-highlight).
|
||
Its CSS is loaded async via load-async-css.js (not paint-critical). -->
|
||
<script defer src="/libs/prism/prism.js"></script>
|
||
<!-- One render-blocking stylesheet, built by scripts/build-css.js from the Tailwind
|
||
output, the Inter @font-face declarations and the five hand-written sheets, in
|
||
that order — they argue with each other on source order, and concatenation
|
||
preserves it exactly. There used to be eight separate <link> tags here and at
|
||
the end of <body>: 21 KB of CSS in total, but eight round trips before the
|
||
browser could paint, which GTmetrix measured at 441 ms on a throttled mobile
|
||
connection. Bytes were never the problem; requests were. -->
|
||
<link rel="stylesheet" href="/assets/app.css?v=1788496655816">
|
||
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788496655816">
|
||
<!-- Preload only the fonts needed for first paint. Inter is one variable file that
|
||
answers for every weight, so there is one to preload rather than the two of five
|
||
copies this used to name. fa-solid covers the bulk of UI icons; fa-regular and
|
||
fa-brands are loaded on demand by their CSS, rarely on the first screen. -->
|
||
<link rel="preload" href="/assets/fontawesome/webfonts/fa-solid-900.subset.woff2" as="font" type="font/woff2" crossorigin>
|
||
<link rel="preload" href="/assets/fonts/inter/files/inter-latin.woff2" as="font" type="font/woff2" crossorigin>
|
||
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
|
||
<script defer src="/src/scripts/load-async-css.js?v=1788496655816"></script>
|
||
<noscript>
|
||
<link rel="stylesheet" href="/libs/prism/prism.css">
|
||
</noscript>
|
||
<script defer src="/src/scripts/fa-check.js?v=1788496655816"></script>
|
||
<!-- This locale's dictionary, registered before anything can ask for a string.
|
||
Only the default locale's is bundled (src/i18n/index.js imports it, because t()
|
||
falls back to it); every other page loads its own here instead of all thirteen
|
||
riding along inside dist/app.js. Absent on the default locale's own page. -->
|
||
<script type="module" src="/src/i18n/dict/ur.js?v=1788496655816"></script>
|
||
<!-- Update Manager - система принудительного обновления -->
|
||
<script defer src="/src/utils/updateManager.js?v=1788496655816"></script>
|
||
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788496655816"></script>
|
||
<!-- /dist/qr-local.js is deliberately absent: app-boot.js fetches it once the
|
||
app has mounted and the browser is idle, so the 142 KB it weighs is off the
|
||
first load. src/components/QRScanner.js used to be here too and registered
|
||
window.QRScanner, which nothing has ever read. -->
|
||
</head>
|
||
<body>
|
||
<div id="root">
|
||
<style>
|
||
.sb-pre{display:none}
|
||
.sb-boot{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100svh;margin:0;background:#0f0f11}
|
||
.sb-boot svg{width:62px;height:auto;display:block;animation:sbBootPulse 1.8s ease-in-out infinite}
|
||
@keyframes sbBootPulse{0%,100%{opacity:.32;transform:scale(.97)}50%{opacity:1;transform:scale(1)}}
|
||
@media (prefers-reduced-motion:reduce){.sb-boot svg{animation:none;opacity:.75}}
|
||
</style>
|
||
<noscript><style>
|
||
.sb-pre{display:block}
|
||
.sb-boot{display:none}
|
||
</style></noscript>
|
||
<style>
|
||
.sb-pre{background:#0f0f11;color:#e8e8eb;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.6;padding:56px 24px 72px;margin:0}
|
||
.sb-pre .sb-pre-in{max-width:940px;margin:0 auto;display:flex;flex-direction:column;gap:56px}
|
||
.sb-pre .sb-pre-brand{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#f0892a;margin:0 0 18px}
|
||
.sb-pre h1{font-size:clamp(28px,5vw,40px);font-weight:800;letter-spacing:-1.1px;line-height:1.12;color:#f4f4f6;margin:0 0 14px}
|
||
.sb-pre h2{font-size:23px;font-weight:700;letter-spacing:-.5px;color:#f4f4f6;margin:0 0 8px}
|
||
.sb-pre h3{font-size:17px;font-weight:700;letter-spacing:-.2px;color:#e8e8eb;margin:0 0 6px}
|
||
.sb-pre p{margin:0 0 10px;color:#8a8a92;font-size:15px;max-width:62ch}
|
||
.sb-pre .sb-pre-lead{font-size:16px;color:#a6a6ae;max-width:52ch}
|
||
.sb-pre .sb-pre-eyebrow{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#6b6b73;margin:0 0 6px}
|
||
.sb-pre .sb-pre-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:22px;padding:0;list-style:none}
|
||
.sb-pre .sb-pre-card{background:#141417;border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:18px 20px}
|
||
.sb-pre .sb-pre-tags{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
|
||
.sb-pre .sb-pre-tags li{font-size:11.5px;color:#3ecf8e;background:rgba(62,207,142,.09);border:1px solid rgba(62,207,142,.18);border-radius:4px;padding:2px 7px}
|
||
.sb-pre .sb-pre-steps{margin:22px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}
|
||
.sb-pre .sb-pre-steps li{border-top:1px solid rgba(255,255,255,.06);padding:13px 0;display:flex;flex-wrap:wrap;gap:2px 14px;align-items:baseline}
|
||
.sb-pre .sb-pre-steps h3{margin:0;font-size:15.5px}
|
||
.sb-pre .sb-pre-steps .sb-pre-when{font-size:12px;color:#6b6b73;margin-inline-start:auto;white-space:nowrap}
|
||
.sb-pre .sb-pre-steps p{flex:1 1 100%;margin:2px 0 0;font-size:14px}
|
||
.sb-pre .sb-pre-docs{margin:14px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2px 24px}
|
||
.sb-pre .sb-pre-docs li{padding:8px 0;border-top:1px solid rgba(255,255,255,.06);font-size:14.5px}
|
||
.sb-pre a{color:#f0892a;text-underline-offset:2px}
|
||
@media (prefers-reduced-motion:reduce){.sb-pre *{animation:none!important;transition:none!important}}
|
||
</style>
|
||
<div class="sb-boot" aria-hidden="true">
|
||
<svg viewBox="276 240 700 760" xmlns="http://www.w3.org/2000/svg" focusable="false">
|
||
<defs>
|
||
<linearGradient id="sbBootSilver" x1="0" y1="0" x2="0.35" y2="1"><stop offset="0" stop-color="#fdfdff"/><stop offset="0.20" stop-color="#e7e7ec"/><stop offset="0.46" stop-color="#c4c4cb"/><stop offset="0.72" stop-color="#a4a4ac"/><stop offset="1" stop-color="#86868d"/></linearGradient>
|
||
<linearGradient id="sbBootOrange" x1="0" y1="0" x2="0.25" y2="1"><stop offset="0" stop-color="#ffb84d"/><stop offset="0.27" stop-color="#ff9a33"/><stop offset="0.58" stop-color="#fb7d16"/><stop offset="1" stop-color="#db5d04"/></linearGradient>
|
||
</defs>
|
||
<path fill="url(#sbBootSilver)" fill-rule="nonzero" d="m 835.26446,352.56633 102.39051,-103.90366 -418.64101,1.00877 c 0,0 -171.69323,1.22309 -222.43455,167.96079 -52.34251,171.99925 77.67556,253.20215 77.67556,253.20215 0,0 35.54922,23.82856 79.77792,31.68982 15.73869,2.39372 79.16695,1.09532 79.16695,1.09532 54.47377,-10.08773 41.40629,-81.22528 -10.65516,-77.67557 C 492.06451,630.5166 372.5156,615.45079 386.86464,469.07968 415.02639,353.31661 520.52712,353.57511 520.52712,353.57511 Z"/>
|
||
<path fill="url(#sbBootOrange)" fill-rule="nonzero" d="m 289.24744,881.29522 95.22696,-95.94027 369.13823,1.06997 C 873.15229,774.31964 863.51011,647.63259 863.51011,647.63259 846.7608,546.1216 749.51871,545.49427 749.51871,545.49427 l -232.01791,0.25219 c -37.80546,-8.91638 -37.85435,-49.4299 -37.85435,-49.4299 0,0 -1.56131,-38.07813 40.52401,-46.63785 l 260.62023,-0.7745 c 170.83788,24.60922 185.61432,187.63187 185.61432,187.63187 0,0 18.85523,117.07655 -90.63794,200.89054 l -0.62454,154.4184 -144.79052,-110.68137 z"/>
|
||
<path fill="url(#sbBootOrange)" d="m 658.38568,658.74237 a 27.462458,27.462458 0 0 1 -27.43073,27.46244 27.462458,27.462458 0 0 1 -27.49412,-27.39898 27.462458,27.462458 0 0 1 27.36719,-27.52575 27.462458,27.462458 0 0 1 27.55736,27.33536 z"/>
|
||
<path fill="url(#sbBootOrange)" d="m 748.42871,659.07971 a 27.462458,27.462458 0 0 1 -27.43073,27.46244 27.462458,27.462458 0 0 1 -27.49412,-27.39898 27.462458,27.462458 0 0 1 27.36719,-27.52575 27.462458,27.462458 0 0 1 27.55736,27.33537 z"/>
|
||
</svg>
|
||
</div>
|
||
<div class="sb-pre">
|
||
<div class="sb-pre-in">
|
||
<header>
|
||
<p class="sb-pre-brand">SecureBit.chat</p>
|
||
<h1>ایک سیدھی لکیر<br>جسے صرف آپ دونوں پڑھ سکتے ہیں۔</h1>
|
||
<p class="sb-pre-lead">کلیدیں آپ کے آلے پر بنتی ہیں اور ہمسطح تبادلہ ہوتا ہے۔ نہ اکاؤنٹ، نہ کوئی سرور جو آپ کے پیغام محفوظ کرے۔</p>
|
||
</header>
|
||
<section>
|
||
<p class="sb-pre-eyebrow">ہمیں کیا ممتاز کرتا ہے</p>
|
||
<h2>SecureBit منفرد کیوں ہے</h2>
|
||
<ul class="sb-pre-grid">
|
||
<li class="sb-pre-card">
|
||
<h3>کثیر پرت خفیہ کاری کا مرکز</h3>
|
||
<p>ECDH P-384 کلید تبادلہ، AES-256-GCM ڈیٹا، ECDSA دستخط اور مکمل ASN.1 توثیق - سب ایک مضبوط سلسلے میں جڑے ہوئے۔</p>
|
||
<ul class="sb-pre-tags"><li>ECDH P-384</li><li>AES-256-GCM</li><li>ECDSA</li><li>ASN.1</li></ul>
|
||
</li>
|
||
<li class="sb-pre-card">
|
||
<h3>خالص ہمسطح WebRTC</h3>
|
||
<p>پیغام WebRTC کے ذریعے براہِ راست آلات کے درمیان سفر کرتے ہیں۔ کوئی ریلے آپ کا ڈیٹا نہیں رکھتا - سرور صرف دو فریقوں کو ایک دوسرے تک پہنچنے میں مدد دیتا ہے۔</p>
|
||
<ul class="sb-pre-tags"><li>DTLS 1.3</li><li>بغیر ریلے</li></ul>
|
||
</li>
|
||
<li class="sb-pre-card">
|
||
<h3>مکمل فارورڈ سیکرسی</h3>
|
||
<p>سیشن کی کلیدیں مسلسل بدلتی ہیں اور استعمال کے بعد ضائع کر دی جاتی ہیں، اس لیے ایک بھی افشا شدہ کلید ماضی کی گفتگو نہیں کھول سکتی۔</p>
|
||
<ul class="sb-pre-tags"><li>عارضی کلیدیں</li><li>خودکار تبدیلی</li></ul>
|
||
</li>
|
||
<li class="sb-pre-card">
|
||
<h3>ٹریفک کی دھندلاہٹ</h3>
|
||
<p>پیکٹ کے حجم اور اوقات میں بھرتی اور بے ترتیبی ڈالی جاتی ہے، جس سے تار پر نظر رکھنے والے سے میٹا ڈیٹا کے نمونے چھپ جاتے ہیں۔</p>
|
||
<ul class="sb-pre-tags"><li>پیکٹ بھرتی</li><li>وقتی جھول</li></ul>
|
||
</li>
|
||
<li class="sb-pre-card">
|
||
<h3>صفر ڈیٹا جمع کرنا</h3>
|
||
<p>نہ اکاؤنٹ، نہ نوشتہ، نہ پیغام کا ذخیرہ۔ سرور پر ایسا کچھ نہیں جو افشا ہو، طلب کیا جائے یا بیچا جائے۔</p>
|
||
<ul class="sb-pre-tags"><li>بغیر اکاؤنٹ</li><li>بغیر نوشتہ</li></ul>
|
||
</li>
|
||
</ul>
|
||
</section>
|
||
<section>
|
||
<p class="sb-pre-eyebrow">ترقی کا لائحہ عمل</p>
|
||
<h2>SecureBit کا ارتقا</h2>
|
||
<p>پہلے نمونے سے لے کر کوانٹم مزاحم، غیر مرکزی نیٹ ورک تک - ہر پرت پر مکمل ASN.1 توثیق کے ساتھ۔</p>
|
||
<ol class="sb-pre-steps">
|
||
<li>
|
||
<h3>ترقی کا آغاز</h3>
|
||
<span class="sb-pre-when">2025 کا آغاز</span>
|
||
<p>خیال، نمونہ اور ڈھانچے کی تیاری</p>
|
||
</li>
|
||
<li>
|
||
<h3>الفا اجرا</h3>
|
||
<span class="sb-pre-when">بہار 2025</span>
|
||
<p>پہلا عوامی الفا: بنیادی گفتگو اور کلید تبادلہ</p>
|
||
</li>
|
||
<li>
|
||
<h3>سلامتی کی مضبوطی</h3>
|
||
<span class="sb-pre-when">گرما 2025</span>
|
||
<p>سلامتی کی تقویت اور مستحکم شاخ کا اجرا</p>
|
||
</li>
|
||
<li>
|
||
<h3>وسعت اور استحکام</h3>
|
||
<span class="sb-pre-when">خزاں 2025</span>
|
||
<p>نیٹ ورک کی وسعت اور استحکام میں بہتری</p>
|
||
</li>
|
||
<li>
|
||
<h3>نجیت سب سے پہلے</h3>
|
||
<span class="sb-pre-when">سرما 2025</span>
|
||
<p>نجیت پر توجہ: میٹا ڈیٹا کم سے کم</p>
|
||
</li>
|
||
<li>
|
||
<h3>بڑھی ہوئی سلامتی کا ایڈیشن</h3>
|
||
<span class="sb-pre-when">2025 کے اواخر</span>
|
||
<p>مکمل ASN.1 توثیق کے ساتھ 18 پرتوں کی فوجی درجے کی خفیہ کاری</p>
|
||
</li>
|
||
<li>
|
||
<h3>ڈیسک ٹاپ ایڈیشن</h3>
|
||
<span class="sb-pre-when">2026 کا آغاز</span>
|
||
<p>ونڈوز، میک او ایس اور لینکس کے لیے مقامی ایپلی کیشنز</p>
|
||
</li>
|
||
<li>
|
||
<h3>محفوظ آواز اور کالیں</h3>
|
||
<span class="sb-pre-when">2026 کا آغاز</span>
|
||
<p>خفیہ صوتی پیغام، آڈیو کال اور ویڈیو کال</p>
|
||
</li>
|
||
<li>
|
||
<h3>گروہی رابطہ</h3>
|
||
<span class="sb-pre-when">ابھی</span>
|
||
<p>نجیت برقرار رکھتے ہوئے گروہی گفتگو</p>
|
||
</li>
|
||
<li>
|
||
<h3>موبائل ایڈیشن</h3>
|
||
<span class="sb-pre-when">دوسری سہ ماہی 2027</span>
|
||
<p>iOS اور اینڈرائیڈ کے لیے مقامی ایپلی کیشنز</p>
|
||
</li>
|
||
<li>
|
||
<h3>کوانٹم مزاحم ایڈیشن</h3>
|
||
<span class="sb-pre-when">چوتھی سہ ماہی 2027</span>
|
||
<p>کوانٹم کمپیوٹرز سے تحفظ</p>
|
||
</li>
|
||
<li>
|
||
<h3>غیر مرکزی نیٹ ورک</h3>
|
||
<span class="sb-pre-when">2028</span>
|
||
<p>مکمل غیر مرکزی نیٹ ورک</p>
|
||
</li>
|
||
<li>
|
||
<h3>AI نجیت معاون</h3>
|
||
<span class="sb-pre-when">2028 اور اس کے بعد</span>
|
||
<p>نجیت اور سلامتی کے لیے مصنوعی ذہانت</p>
|
||
</li>
|
||
</ol>
|
||
</section>
|
||
<section lang="en" dir="ltr">
|
||
<p class="sb-pre-eyebrow">Documentation</p>
|
||
<ul class="sb-pre-docs">
|
||
<li><a href="/docs/" hreflang="en">Documentation</a></li>
|
||
<li><a href="/docs/faq/" hreflang="en">Frequently asked questions</a></li>
|
||
<li><a href="/docs/architecture/" hreflang="en">Architecture</a></li>
|
||
<li><a href="/docs/cryptography/" hreflang="en">Cryptography</a></li>
|
||
<li><a href="/docs/descriptor-sbq2/" hreflang="en">SBQ2 — connection descriptor v2</a></li>
|
||
<li><a href="/docs/configuration/" hreflang="en">Configuration</a></li>
|
||
<li><a href="/docs/calls/" hreflang="en">Voice and video calls</a></li>
|
||
<li><a href="/docs/api/" hreflang="en">API Notes</a></li>
|
||
<li><a href="/docs/contributing/" hreflang="en">Contributing</a></li>
|
||
<li><a href="/docs/use-policy/" hreflang="en">Use policy and limitations</a></li>
|
||
</ul>
|
||
</section>
|
||
<section>
|
||
<h2>نجیت کے مستقبل میں شامل ہوں</h2>
|
||
<p>SecureBit اپنی برادری کی بدولت بڑھتا ہے۔ آپ کے خیالات اور آراء محفوظ رابطے کا مستقبل تشکیل دیتے ہیں - کھلے عام بنایا گیا، سرے سے سرے تک مکمل ASN.1 توثیق کے ساتھ۔</p>
|
||
<p><a href="https://github.com/SecureBitChat/securebit-chat" rel="noopener">GitHub مخزن</a></p>
|
||
</section>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script type="module" src="/dist/app-boot.js?v=1788496655816"></script>
|
||
<script type="module" src="/dist/app.js?v=1788496655816"></script>
|
||
|
||
<script defer src="/src/scripts/pwa-register.js?v=1788496655816"></script>
|
||
<script src="/src/pwa/install-prompt.js?v=1788496655816" type="module"></script>
|
||
<script src="/src/pwa/pwa-manager.js?v=1788496655816" type="module"></script>
|
||
<script defer src="/src/scripts/pwa-offline-test.js?v=1788496655816"></script>
|
||
</body>
|
||
</html> |