Pasang opolyx di ponsel Anda — dan masuk tanpa kata sandi
opolyx kini benar-benar aplikasi yang bisa dipasang, dan ada empat cara masuk: tautan ajaib, kode lewat email, Google, atau Apple. Kode adalah yang berfungsi di mana saja.

Dengan bahasa sederhana
Anda dapat menambahkan opolyx ke layar utama dan membukanya seperti aplikasi lain: ikonnya sendiri, tanpa bilah peramban, langsung ke lobi. Ini sudah berjalan di Android dan iOS lewat menu peramban, dan merupakan build yang sama dengan yang kami paketkan untuk toko aplikasi.
- terbuka layar penuh langsung ke lobi, bukan ke halaman pemasaran;
- punya ikon dan layar pembuka sendiri, bukan sekadar pintasan peramban;
- menampilkan halaman opolyx yang rapi saat Anda offline, alih-alih galat peramban;
- tidak pernah menyimpan apa pun dari permainan yang sedang berjalan, jadi aplikasi terpasang sama barunya dengan situs.
Kini ada empat jalur masuk, dan Anda bisa memakai yang paling cocok dengan perangkat Anda:
| Metode | Cara kerjanya |
|---|---|
| Tautan ajaib | tautan di email Anda — sekali ketuk, tanpa kata sandi |
| Kode email | kode 8 karakter yang Anda ketik di halaman masuk |
| pemilih akun yang biasa | |
| Apple | termasuk Hide My Email, yang di baliknya tak pernah kami lihat |
Kode yang dikirim lewat email adalah jalur yang benar-benar berfungsi di mana pun — termasuk di dalam pembungkus aplikasi, tempat tautan terbuka di peramban terpisah dan tidak dapat menyerahkan kembali sesi.
Untuk yang ingin tahu teknisnya
Service worker-nya sengaja dibuat sempit. Ia adalah daftar izin, bukan penangkap segalanya: navigasi memakai jaringan lebih dulu dengan halaman offline sebagai cadangan, aset statis ber-hash memakai stale-while-revalidate, dan selebihnya — basis data, server permainan, realtime, autentikasi, muatan yang dirender server — dilewati sepenuhnya, sehingga mustahil menyajikan papan basi atau merusak pertandingan yang sedang berjalan.
// public/sw.js — allow-list, not catch-all
self.addEventListener('fetch', (event) => {
const url = new URL(event.request.url);
if (url.origin !== self.location.origin) return; // Supabase, daemon: untouched
if (BYPASS.some((p) => url.pathname.startsWith(p))) return; // /auth, /api, RSC
if (event.request.mode === 'navigate') return event.respondWith(networkFirst(event));
if (HASHED.test(url.pathname)) return event.respondWith(staleWhileRevalidate(event));
});Bagian yang menarik adalah build iOS terbungkus, tempat tidak satu pun metode masuk berhasil tuntas padahal semua peramban baik-baik saja. Penyebabnya adalah setelan WebKit yang ditulis oleh alat pemaketan atas nama Anda: dengan domain terikat aplikasi aktif, WebKit diam-diam membatalkan setiap navigasi tingkat atas ke host yang tidak ada dalam daftar — dan lompatan pertama alur OAuth persis navigasi semacam itu. Terpisah dari itu, Google menolak webview tertanam sebagai kebijakan, dan itu tak bisa diperbaiki konfigurasi apa pun.
Tautan ajaib pun tak mungkin berhasil di sana: ia terbuka di peramban sistem, yang wadah kukinya tidak terlihat oleh webview aplikasi. Itulah sebabnya kode yang diketik menjadi satu-satunya jalur email dengan asal yang sama — ia selesai di webview yang memintanya.
Untuk Google, jalur resminya adalah menjalankan alur di peramban sistem lalu menyerahkan sesinya kembali. Jembatan ini menyusun URL otorisasi secara sengaja tanpa PKCE, sehingga alur mengembalikan token pada fragmen callback yang bisa dibaca oleh cangkang aplikasi — kode otorisasi hanya bisa ditukarkan oleh peramban yang memegang verifier, dan itu bukan peramban yang kita inginkan.
