1 2<!DOCTYPE html> 3<html lang="id"> 4 <head> 5 <meta charset="UTF-8" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" /> 7 8 <!-- Primary Meta Tags --> 9 <title>ArteaKas - Super App Keuangan & Bisnis UMKM (Offline & AI)</title> 10 <meta name="title" content="ArteaKas - Super App Keuangan & Bisnis UMKM (Offline & AI)" /> 11 <meta name="description" content="Revolusi manajemen bisnis UMKM! Lebih dari sekadar kas. Kelola Arus Kas, Invoice, Gaji Karyawan (Payroll), Stok Aset, Pajak, hingga Konsultasi Bisnis via AI dalam satu aplikasi. 100% Offline-First, Aman, & Multi-Cabang." /> 12 <meta name="keywords" content="arteakas, aplikasi bisnis, pembukuan umkm, kasir offline, payroll umkm, invoice maker, stok barang, laporan keuangan, konsultan ai, pwa, manajemen aset, pajak umkm, job costing" /> 13 <meta name="author" content="ArteaKas Team" /> 14 <meta name="robots" content="index, follow" /> 15 <meta name="theme-color" content="#2563eb" /> 16 17 <!-- Open Graph / Facebook --> 18 <meta property="og:type" content="website" /> 19 <meta property="og:title" content="ArteaKas - Super App Keuangan & Bisnis UMKM" /> 20 <meta property="og:description" content="Kelola seluruh operasional bisnis dari satu HP. Transaksi, Invoice, Payroll, hingga Analisa AI. Offline & Gratis." /> 21 <meta property="og:image" content="/assets/logo-EcRuJlhz.svg" /> 22 23 <!-- Twitter --> 24 <meta property="twitter:card" content="summary" /> 25 <meta property="twitter:title" content="ArteaKas - Solusi Bisnis All-in-One" /> 26 <meta property="twitter:description" content="Aplikasi manajemen bisnis offline dengan fitur AI, Payroll, dan Invoice. Upgrade bisnis Anda sekarang." /> 27 <meta property="twitter:image" content="./logo.svg" /> 28 29 <!-- Favicon (Browser Tab) --> 30 <link rel="icon" type="image/svg+xml" href="/assets/logo-EcRuJlhz.svg" /> 31 32 <!-- PWA Manifest Linked Correctly --> 33 <link rel="manifest" href="/assets/metadata-BZ8xwktQ.json" /> 34 35 <!-- iOS / Apple Mobile Web App Icons --> 36 <link rel="apple-touch-icon" href="/assets/logo-EcRuJlhz.svg" /> 37 <meta name="apple-mobile-web-app-capable" content="yes" /> 38 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> 39 <meta name="apple-mobile-web-app-title" content="ArteaKas" /> 40 41 <!-- Android Legacy Support --> 42 <meta name="mobile-web-app-capable" content="yes" /> 43 44
44<script src="https://cdn.tailwindcss.com"></script>
44 45
45<script> 46 // Konfigurasi Tailwind untuk mencegah override warna dari Sistem HP 47 tailwind.config = { 48 darkMode: 'class', // Hanya berubah jika ada class 'dark' di HTML, bukan dari setting HP 49 theme: { 50 extend: { 51 fontFamily: { 52 sans: ['Inter', 'sans-serif'], 53 } 54 } 55 } 56 } 57 </script>
57 58 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> 59 <style> 60 body { 61 font-family: 'Inter', sans-serif; 62 -webkit-tap-highlight-color: transparent; 63 touch-action: manipulation; 64 /* Paksa background agar tidak transparan ke sistem */ 65 background-color: #f8fafc; 66 } 67 /* Custom scrollbar for webkit */ 68 ::-webkit-scrollbar { width: 6px; height: 6px; } 69 ::-webkit-scrollbar-track { background: transparent; } 70 ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; } 71 ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } 72 73 .pb-safe { padding-bottom: env(safe-area-inset-bottom); } 74 </style> 75 76<link rel="stylesheet" href="/index.css"> 77
77<script type="importmap"> 78{ 79 "imports": { 80 "react": "https://esm.sh/react@^19.2.3", 81 "react/": "https://esm.sh/react@^19.2.3/", 82 "react-dom/": "https://esm.sh/react-dom@^19.2.3/", 83 "dexie": "https://esm.sh/dexie@^4.2.1", 84 "lucide-react": "https://esm.sh/lucide-react@^0.562.0", 85 "dexie-react-hooks": "https://esm.sh/dexie-react-hooks@^4.2.0", 86 "recharts": "https://esm.sh/recharts@^3.6.0", 87 "jspdf": "https://esm.sh/[email protected]", 88 "jspdf-autotable": "https://esm.sh/[email protected]", 89 "xlsx": "https://esm.sh/[email protected]", 90 "react-markdown": "https://esm.sh/[email protected]?bundle", 91 "qrcode": "https://esm.sh/[email protected]", 92 "html5-qrcode": "https://esm.sh/[email protected]", 93 "@google/genai": "https://esm.sh/@google/genai@^1.35.0", 94 "tesseract.js": "https://esm.sh/[email protected]" 95 } 96} 97</script>
97 98
98<script type="module" crossorigin src="/assets/index-e8QY1Ekx.js"></script>
98 99</head> 100 <body class="bg-slate-50 text-slate-900 overflow-hidden select-none"> 101 <div id="root" class="h-full w-full"></div> 102
102<script> 103 if ('serviceWorker' in navigator) { 104 window.addEventListener('load', () => { 105 try { 106 navigator.serviceWorker.register('./sw.js', { scope: './' }) 107 .then(registration => { 108 console.log('SW Registered:', registration.scope); 109 }) 110 .catch(err => { 111 console.warn('SW Registration skipped:', err.message); 112 }); 113 } catch (e) { 114 console.warn('SW Setup Exception:', e); 115 } 116 }); 117 } 118 </script>
118 119<!-- Cloudflare Pages Analytics -->
vendor: 99 bytes, line 119
119<script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "
119bc42dd65134e47dabfbbc7ce2b97db07
vendor: 13 bytes, line 119
119"}'></script>
119<!-- Cloudflare Pages Analytics --></body> 120</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.