A cross-platform mobile application for tracking recurring subscriptions with push notifications.
- Email:
demo@subminder.app - Password:
demo1234
- 📊 Dashboard - View monthly total and upcoming payments
- 📝 Subscription Management - Add, edit, delete, and cancel subscriptions
- 📈 Analytics - Track spending trends and payment history
- 🔔 Push Notifications - Get reminders before payment dates
- 🌙 Dark Mode - Toggle between light and dark themes
- 📱 Cross-Platform - Works on iOS, Android, and Web (PWA)
- 💾 Offline Support - Local-first architecture with automatic cloud sync
- Frontend: Nuxt 4 (SPA Mode) + Nuxt UI (Tailwind CSS)
- Mobile: Capacitor 7
- Backend: Supabase (Auth + Database + Edge Functions)
- Push Notifications: Firebase Cloud Messaging
- State: Pinia with persistence
- Language: TypeScript
pnpm install- Create a project at supabase.com
- Run migrations from
database/migrations/in your SQL Editor - Get your project URL and anon key from Settings > API
- Create a project at console.firebase.google.com
- Enable Cloud Messaging
- Get your Firebase config and VAPID key
- For native apps: Add
GoogleService-Info.plist(iOS) andgoogle-services.json(Android)
Create .env file:
# Supabase
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_anon_key
# Firebase (optional - for web push notifications)
FIREBASE_API_KEY=your_api_key
FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
FIREBASE_PROJECT_ID=your_project_id
FIREBASE_STORAGE_BUCKET=your_project.appspot.com
FIREBASE_MESSAGING_SENDER_ID=your_sender_id
FIREBASE_APP_ID=your_app_id
FIREBASE_VAPID_KEY=your_vapid_keyNote: Edit public/firebase-messaging-sw.js with your Firebase config for web push.
pnpm devVisit http://localhost:3000
# Generate static files
pnpm generate
# Sync with mobile projects
pnpm cap sync# Open in Xcode
npx cap open ios# Open in Android Studio
npx cap open android# Build and run
docker build -t subminder .
docker run -p 8080:80 \
-e NUXT_PUBLIC_SUPABASE_URL=your_url \
-e NUXT_PUBLIC_SUPABASE_KEY=your_key \
subminderFor scheduled push notifications:
supabase functions deploy send-push-notifications
supabase secrets set FIREBASE_SERVICE_ACCOUNT='{"project_id":"...","private_key":"...","client_email":"..."}'subminder/
├── app/ # Nuxt source code
│ ├── pages/ # Application pages
│ ├── stores/ # Pinia stores
│ ├── composables/ # Vue composables
│ └── components/ # Vue components
├── android/ # Android project
├── ios/ # iOS project
├── database/ # SQL migrations
├── supabase/functions/ # Edge functions
└── public/ # Static assets
pnpm dev # Start dev server
pnpm generate # Build static files
pnpm cap:sync # Sync with mobile
pnpm lint # Run linterMIT License - see LICENSE file for details