VibeVox — Béta Launch Stratégia
Zárt Béta (2026-05-01 – 2026-05-14) → Nyilvános Launch (2026-05-15)
Kapcsolódó:
18_TASK_CALENDAR.md·15_Launch_Playbook.md·ROADMAP.mdStátusz: Tervezés — implementálandó (béta fázis: 2026-05-01) Utolsó frissítés: 2026-04-19
Tartalomjegyzék
- Béta fázis célja és korlátai
- Store submission timing — platform-onként
- Mikor válik láthatóvá az app a nyilvánosság számára?
- Béta hozzáférés vezérlése — Supabase email allowlist
- Melyik platformon ki mit kap a béta fázisban?
- Launch Day (2026-05-15) — szimultán élesítés
- Supabase séma és RPC implementáció
- BETA_MODE config flip — launch nap teendők
1. Béta fázis célja és korlátai
| Béta fázis (Máj. 1–14.) | Launch (Máj. 15+) | |
|---|---|---|
| Ki használhatja | Meghívott béta tesztelők + barátok | Bárki (nyilvános regisztráció) |
| Hozzáférés módja | Supabase email allowlist | Nincs korlátozás |
| Platform láthatóság | Private/belső csatornák | Publikus store listázás |
| Fizetős funkciók | Tesztelők ingyenesen kapnak hozzáférést | Stripe checkout él |
| Cél | Bug hunting, UX visszajelzés, onboarding tesztelés | Bevételszerzés indul |
Kulcspont: Ha valaki megszerzi az APK fájlt vagy a privát download linket, attól még nem tudja használni az appot — a Google OAuth bejelentkezés után a Supabase email allowlist ellenőrzés blokkolja. A védelmi réteg az auth layer, nem a fájl titkossága.
2. Store submission timing — platform-onként
Hard Submission Deadlines (visszaszámlálva 2026-05-15-től)
| Platform | Terjesztési forma | Review idő (piaci átlag) | Hard Deadline | Ha csúszik → Fallback |
|---|---|---|---|---|
| Windows | Direkt .exe Velopack |
Nincs review | Máj. 14. (build) | N/A |
| Linux AppImage | Direkt letöltés | Nincs review | Máj. 14. (build) | N/A |
| Linux Flatpak | Flathub (önkéntes review) | 2–6 hét (indeterminate!) | 🚨 Ápr. 21. | AppImage direkt → Flathub post-launch |
| Android | Google Play Closed Testing → Production | 3–14 munkanap | 🚨 Máj. 1–3. | Direkt APK link a landing page-en |
| iOS | Apple App Store | Fejlesztés nem kész | ❌ Fázis 2, szept. 2026+ | „Coming to iOS" waitlist |
3. Mikor válik láthatóvá az app a nyilvánosság számára?
Flathub (Linux)
- A Flathub review GitHub PR-on keresztül zajlik — önkéntesek nézik át a csomagolást (manifest helyessége, sandbox jogok), nem a funkcionalitást
- Reviewmegjegyzések: reviewer jóváhagyja, de nem merge-eli automatikusan
- Amikor a PR approved státuszba kerül → te irányítod mikor lesz merged
- Béta alatt: PR approved de nem merged → a nyilvánosság nem látja
- Launch napján (Máj. 15.): Merge parancs kiadása → 24 órán belül élő a Flathub-on
- Fontos: Flathub frissítések (initial merge után) review nélkül mennek ki — logó, dizájn, funkciók szabadon frissíthetők
Google Play (Android)
- Closed Testing Track: csak meghívott email-ek tölthetik le, a Play Store keresőben nem jelenik meg
- Béta alatt: Closed Testing-ben futtatjuk, béta tesztelők emailt kapnak a meghívóhoz
- Production submission: Máj. 1–3-án beadjuk production-ba → review → Managed Publishing mód
- Managed Publishing = te döntöd el mikor lesz élő — a review átmegy, de az app „Pending Developer Release" állapotban vár, amíg te nem nyomasz egy gombot
- Launch napján (Máj. 15.): Play Console → Publish → azonnal élő
Windows + Linux AppImage
- Direkt letöltés — nincs store review
- Béta alatt: Landing page „Coming Soon" módban van, download gomb nem aktív
- Béta tesztelőknek: privát GitHub Release link (private asset) vagy közvetlen fájlmegosztás
- Launch napján: Landing page aktiválás → gomb él
4. Béta hozzáférés vezérlése — Supabase email allowlist
Az architektúra lényege
Az app Google OAuth-ot használ bejelentkezésre. A token exchange után — mielőtt az app ténylegesen „bejelentkezettnek" tekintené a felhasználót — egy Supabase RPC hívás ellenőrzi, hogy az email cím szerepel-e az allowliston.
Felhasználó → Google OAuth → token exchange sikeres
↓
Supabase RPC: is_beta_allowed(email)
↓
┌──── TRUE ────┤├──── FALSE ────┐
↓ ↓
✅ Belépés sikeres ❌ Auth törölve
App normálisan indul "Zárt béta — értesítünk Máj. 15-én"
Miért Supabase-ből?
- Nincs új build egy tesztelő hozzáadásához — admin panelből kezelhető
- Azonnal érvényes — a következő loginnál már érvényes az új tesztelő
- Naplózható — ki mikor lépett be béta tesztelőként
- Flip egy env változóval —
BETA_MODE=false→ launch napján mindenki beléphet
5. Melyik platformon ki mit kap a béta fázisban?
| Tesztelő kap | Windows | Linux AppImage | Linux Flatpak | Android |
|---|---|---|---|---|
| Privát letöltési link | ✅ | ✅ | ❌ (manifest teszt) | ❌ |
| Google Play Closed Testing invite | N/A | N/A | N/A | ✅ (email alapján) |
| Email allowlist (Supabase) | ✅ kötelező | ✅ kötelező | ✅ kötelező | ✅ kötelező |
| Ingyenes Pro hozzáférés béta alatt | ✅ | ✅ | ✅ | ✅ |
A béta tesztelők mindig kötelezően szerepelnek a Supabase allowliston — akkor is, ha privát linket kaptak. Ez biztosítja, hogy ha valaki továbbadja a fájlt, az ismerős nem tud belépni.
Béta tesztelő felvételének folyamata
- Tesztelő szól / jelentkezik
- Admin (te) felveszi az emailt a Supabase
beta_allowlisttáblába - Ha Android: Play Console → Closed Testing → tesztelők listájához email hozzáadása
- Tesztelőnek küldöd a letöltési linket / Play store meghívót
- Tesztelő letölti, Google-lel bejelentkezik → app beengedi
6. Launch Day (2026-05-15) — szimultán élesítés
A goal: minden platform egyszerre válik elérhetővé a nyilvánosság számára (±1 óra tolerancia).
Launch nap reggeli sorrend (Máj. 15., 05:00–07:00 CET)
| Időpont (CET) | Tennivaló | Eredmény |
|---|---|---|
| 05:00 | BETA_MODE = False deploy (új build + GitHub Release) |
Windows + Linux: bárki bejelentkezhet |
| 05:01 | Product Hunt listing live | PH upvote-ok elkezdődnek |
| 05:05 | Google Play Console → Managed Publishing → Publish | Android: Play Store-ban élő (5-10 perc propagálás) |
| 05:10 | Flathub merge signal küldése a reviewernek | Linux Flatpak: 1-24 óra múlva élő |
| 05:15 | Landing page aktiválás: download gombok bekapcsolása | Direkt letöltés él |
| 05:30 | CEE social csatornák (Reddit, FB csoportok) aktiválása | Organikus traffic indul |
Flathub propagálás: A merge után a Flathub CDN-en 1-24 óra az élő megjelenés. Ez nem probléma — az AppImage direkt letöltéssel a Linux felhasználók azonnal hozzájutnak, a Flathub listing a nap folyamán aktiválódik.
7. Supabase séma és RPC implementáció
Tábla: beta_allowlist
CREATE TABLE beta_allowlist (
email TEXT PRIMARY KEY,
name TEXT,
source TEXT DEFAULT 'manual', -- 'friend' | 'beta_signup' | 'manual'
invited_at TIMESTAMPTZ DEFAULT NOW(),
notes TEXT
);
-- RLS: direkt SELECT tiltva (anon key nem dumpolhatja a listát)
ALTER TABLE beta_allowlist ENABLE ROW LEVEL SECURITY;
CREATE POLICY "no_direct_access" ON beta_allowlist FOR SELECT USING (false);
-- SECURITY DEFINER RPC: csak a függvényen át érhető el
CREATE OR REPLACE FUNCTION is_beta_allowed(user_email TEXT)
RETURNS BOOLEAN
LANGUAGE plpgsql
SECURITY DEFINER
AS $$
BEGIN
RETURN EXISTS (
SELECT 1 FROM beta_allowlist
WHERE email = LOWER(TRIM(user_email))
);
END;
$$;
Az RPC hívás az appból (app/auth.py)
# Supabase-en keresztül, a meglévő HTTP infrastruktúrát használva
import urllib.request, json
def _check_beta_allowlist(self, email: str) -> bool:
"""Check Supabase RPC — is this email on the beta allowlist?"""
from app.config import SUPABASE_URL, SUPABASE_ANON_KEY, BETA_MODE
if not BETA_MODE:
return True # launch után: mindenki beléphet
try:
url = f"{SUPABASE_URL}/rest/v1/rpc/is_beta_allowed"
data = json.dumps({"user_email": email}).encode()
req = urllib.request.Request(
url, data=data, method="POST",
headers={
"Content-Type": "application/json",
"apikey": SUPABASE_ANON_KEY,
"Authorization": f"Bearer {SUPABASE_ANON_KEY}",
}
)
with urllib.request.urlopen(req, timeout=10) as r:
return json.loads(r.read()) is True
except Exception as e:
log.warning("Beta allowlist check failed: %s — allowing (fail-open)", e)
return True # hálózati hiba esetén fail-open (ne blokkolja a tesztelőt)
Fail-open policy: Ha a Supabase nem elérhető (hálózati hiba), az app beengedi a felhasználót. Ez elfogadható a béta fázisban — fontosabb, hogy a tesztelők ne ragadjanak ki hálózati zavarok miatt.
8. BETA_MODE config flip — launch nap teendők
app/config/constants.py — konfigurálható értékek
# ── Beta Access Control ───────────────────────────────────────────────────────
# Flip to False on launch day (2026-05-15) — removes the email allowlist gate
BETA_MODE = True # False → anyone can log in
BETA_LAUNCH_DATE = "2026-05-15" # informational / UI display only
Launch napon (Máj. 15.) egyetlen változtatás kell:
BETA_MODE = False # ← ez az egyetlen módosítás
Utána: új build + GitHub Release deploy → Windows/Linux automatikusan frissülnek (Velopack). Android-on: a BETA_MODE check csak az app-ban van — ha az APK már production-ban van (Play Store), az BETA_MODE=False buildből terjesztett APK automatikusan engedi be az új felhasználókat.
Appendix: Gyors referencia — béta tesztelő hozzáadása
- Supabase Dashboard → Table Editor →
beta_allowlist→ Insert Rowemail: tesztelő@gmail.com name: Teszt Péter source: friend notes: Android tesztelő, Pixel 8 - Android esetén: Play Console → Internal Testing / Closed Testing → Tesztelők → Email hozzáadása
- Link küldése: Privát GitHub Release URL (Windows/Linux) vagy Play invite link (Android)
- Semmi más nem szükséges — a következő bejelentkezési kísérletnél már beengedi az app