Skip to content

asphaltghost/homepage

Repository files navigation

AsphaltGhost Homepage

Landing Page für AsphaltGhost mit Waitlist (Pre-Registration) bzw. Download-Buttons wenn die App live ist.

Lokal starten

cd homepage
npm install
cp .env.example .env   # falls vorhanden, sonst .env anlegen
# .env: VITE_WAITLIST_API_URL auf die waitlist-signup Edge Function setzen (siehe unten)
npm run dev

Öffne http://localhost:5173.

Build & Deploy

npm run build

Ausgabe in dist/. Auf Vercel, Netlify oder GitHub Pages deployen. Dort die gleichen Umgebungsvariablen setzen wie in .env.example.

Umgebungsvariablen

Variable Beschreibung
VITE_WAITLIST_API_URL URL der waitlist-signup Edge Function.
VITE_APP_CONFIG_URL Optional. URL der app-config Edge Function. Wenn gesetzt, werden app_live und Store-URLs aus der Supabase-Tabelle app_public_config geladen (keine Env-Variablen nötig).
VITE_APP_LIVE / VITE_APP_STORE_URL / VITE_APP_PLAY_URL Fallback, wenn VITE_APP_CONFIG_URL nicht gesetzt ist.

App-Konfiguration aus Supabase: Wenn VITE_APP_CONFIG_URL gesetzt ist, lädt die Homepage beim Start die Werte aus der Tabelle app_public_config (über die Edge Function). Dort im Supabase Dashboard Table Editorapp_public_config die Zeile mit id = 1 bearbeiten: app_live (boolean), store_url_apple, store_url_play (text). So kannst du „App live“ und Store-Links zentral in Supabase pflegen.


Supabase einrichten (Waitlist & RLS)

Die Waitlist speichert E-Mails in einer Tabelle im gleichen Supabase-Projekt wie die App. RLS (Row Level Security) sorgt dafür, dass nur anonyme Inserts erlaubt sind – niemand kann die Liste ohne Admin-Zugang auslesen.

1. Migration ausführen

Die Waitlist-Tabelle wird durch eine Migration im Haupt-Repo (base-app) angelegt.

Option A – Supabase CLI (empfohlen):

# Im Haupt-Repo (base-app)
npx supabase db push

Option B – Supabase Dashboard:

  1. Supabase Dashboard öffnen → Projekt wählen.
  2. SQL Editor → New query.
  3. Inhalt der Datei supabase/migrations/0023_waitlist.sql aus dem Haupt-Repo kopieren und ausführen (Run).

2. RLS aktivieren

Die Migration enthält bereits:

alter table public.waitlist enable row level security;

Damit ist RLS für die Tabelle public.waitlist aktiv. Ohne RLS könnte jeder mit dem Anon-Key alle Einträge lesen oder löschen. Mit RLS und der Policy „Allow anonymous insert“ gilt:

  • anon (nicht eingeloggte Nutzer): nur INSERT erlaubt – Eintrag in die Waitlist möglich.
  • Kein SELECT, UPDATE oder DELETE für anon – die Liste ist öffentlich nicht einsehbar.

3. Policy prüfen

Im Supabase Dashboard: DatabaseTableswaitlistRLS Policies.

Es sollte eine Policy existieren:

  • Name: z. B. „Allow anonymous insert“
  • Operation: INSERT
  • Target roles: anon
  • WITH CHECK: true

4. Tabelle „app_public_config“ (optional)

Für app_live und Store-URLs aus Supabase:

npx supabase db push

Damit wird u. a. die Migration 0024_app_public_config.sql ausgeführt. Anschließend im Table Editor die Tabelle app_public_config öffnen, Zeile id = 1 bearbeiten: app_live, store_url_apple, store_url_play setzen.

5. Edge Functions deployen

Die Waitlist-Anmeldung läuft über eine Edge Function, damit Supabase-URL und Keys nicht im Frontend stehen.

Im Haupt-Repo (base-app):

npx supabase functions deploy waitlist-signup
npx supabase functions deploy app-config

Beide Functions sind ohne JWT aufrufbar (verify_jwt = false in supabase/config.toml).

URLs für die Homepage:

  • VITE_WAITLIST_API_URL: https://<project-ref>.supabase.co/functions/v1/waitlist-signup
  • VITE_APP_CONFIG_URL: https://<project-ref>.supabase.co/functions/v1/app-config

6. Env für die Homepage

In homepage/.env (oder im Deployment-Host):

  • VITE_WAITLIST_API_URL = URL der deployten Edge Function (siehe oben).

Für den Modus App live (Download-Buttons statt Waitlist):

  • VITE_APP_LIVE=true und optional
  • VITE_APP_STORE_URL und VITE_APP_PLAY_URL mit den finalen Store-Links.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors