Where the web app lives, where the downloads live, how Capacitor fits in.
Define the URL structure for the bahalaka app on bahalaka.com so that the proposal site, the web app, and the native download pages all coexist cleanly under one domain.
Should the app live at bahalaka.com/app/android and bahalaka.com/app/ios as separate paths?
bahalaka.com/ → proposal site (current, stays) bahalaka.com/app/ → the web app (one codebase, works everywhere) bahalaka.com/app/get/ → smart download page (auto-detects OS)
/app/ — The actual web app. Same HTML/JS/WASM on every device. Mobile browser, desktop browser, doesn't matter. This is also the PWA fallback — if someone can't install the native app, they use this./app/get/ — A single download landing page that auto-detects the visitor's OS. Shows the Play Store button for Android users, App Store button for iOS users, and "Use in browser" for desktop. One URL to share: bahalaka.com/app/get/app/ code locally inside the native shell. They never load from the web URL. The app runs offline from the binary./app/android would never be hit by an actual Android app user./app/get handles it automatically.bahalaka/
index.html ← proposal site (existing)
be/ ← Be artifacts
app/
index.html ← web app shell (loads WASM + bridge)
bahalaka.js ← JS bridge (~500 LOC)
libbahalaka.wasm ← C→WASM binary
libbahalaka.js ← Emscripten glue
pages/
login.html ← TOTP auth
chat.html ← messaging
status.html ← presence + GPS
schedule.html ← calendar + requests
finances.html ← allowance + ledger
agreements.html ← templates + signing
stories.html ← field guide
settings.html ← preferences
css/
app.css ← dark theme, mobile-first
get/
index.html ← smart download page
/app/get/)navigator.userAgent/app/bahalaka.com/app/getbahalaka.com/* — served from project root (existing)bahalaka.com/app/* — served from /app/ subfolder (new)// capacitor.config.ts
{
appId: 'com.bahalaka.app',
appName: 'bahalaka',
webDir: 'app', // points to the /app/ folder
server: {
androidScheme: 'https' // uses https for local assets
}
}
Capacitor's webDir points to the same /app/ folder. Native builds bundle it. Web deploys serve it. One source of truth.
/app/ must work standalone (no dependencies on proposal site files)bahalaka.com/ — the pitch (proposal site, live now)bahalaka.com/app/ — the product (web app, PWA fallback)bahalaka.com/app/get/ — the door (smart download page)Share one link: bahalaka.com/app/get. It figures out the rest.