Vanilla HTML/CSS/JS PWA. No build step required.
- index.html / app.html — main app shell
- style.css — design system
- app.js — sessions 1–9 (counter, timer, calendar, sankalpa, brahmacharya)
- session10_engine.js — milestones, stats, charts
- session11_engine.js + session11_styles.css — Claude AI chat
- session12_engine.js — Google Drive backup + audit log
- session13_engine.js — notifications, reminder, install prompt, offline banner
- sankalpa_engine.js, stotram_engine.js
- sw.js (cache: radha-naam-jap-v13)
- manifest.json
- .well-known/assetlinks.json — TWA verification
- twa/ — Bubblewrap config + Play Store guide
Upload root to any static host with HTTPS.
- Firebase config in index.html → window.FIREBASE_CONFIG
- Zoho client id → window.ZOHO_CLIENT_ID
- Claude API key — entered by user in Settings → Claude AI (local-only)
- Google Drive Client ID — entered by user in Settings → Google Drive Backup (drive.appdata scope)
- Play Store: see twa/README.md
- Sankalpa wish text never leaves the device (not synced, not sent to Claude)
- Claude key stays on device
- Drive backups go to private appDataFolder