Self-hosted, privacy-first subscription management platform with AI-powered insights and OCR receipt processing.
SubOS helps you track recurring subscriptions, manage budgets, and optimize spending through intelligent recommendations. Built with privacy in mind, all your data stays on your machine.
- π Unlimited Subscription Tracking - Track any recurring expense with flexible billing cycles
- π± Multi-Currency Support - Real-time exchange rates with 150+ currencies
- π° Budget Management - Set budgets and track spending against goals
- π 9 Notification Channels - Email, Discord, Telegram, Pushover, and more
- π€ AI-Powered Recommendations - Cost optimization suggestions via ChatGPT, Gemini, or local Ollama
- πΈ OCR Receipt Processing - Scan receipts to auto-populate subscription details
- π ML-Powered Insights - Anomaly detection, spending predictions, and pattern analysis
- π Household Management - Track subscriptions across family members
- π Security First - TOTP 2FA, bcrypt password hashing, session management
- π¨ Clean UI - Minimal design with JetBrains Mono and Integrations UI system
- Backend: Python 3.11+, Flask/FastAPI, SQLAlchemy, SQLite
- Frontend: React 18, TypeScript, Vite, Tailwind CSS
- ML/AI: scikit-learn, OpenAI API, Google Gemini, Ollama
- OCR: Tesseract, Google Vision API
- Notifications: APScheduler with 9 channel integrations
- Python 3.11 or higher
- Node.js 18 or higher
- SQLite 3
- Clone the repository
git clone https://github.com/aref-vc/SubOS.git
cd SubOS- Set up the backend
cd backend
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt- Configure environment
cp .env.example .env
# Edit .env with your settings- Run database migrations
alembic upgrade head- Set up the frontend
cd ../frontend
npm install- Start the application
Option 1: Manual start
# Terminal 1 - Backend
cd backend
source venv/bin/activate
python run.py
# Terminal 2 - Frontend
cd frontend
npm run devOption 2: Quick launch script
chmod +x scripts/start.sh
./scripts/start.sh- Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:3038
- API Docs: http://localhost:3038/api/docs
- PRD.md - Complete product requirements and specifications
- IMPLEMENTATION_PLAN.md - 18-week development roadmap with code examples
SubOS/
βββ backend/ # Flask/FastAPI application
β βββ app/
β β βββ models/ # SQLAlchemy models
β β βββ api/ # REST API endpoints
β β βββ services/ # Business logic
β β βββ tasks/ # Scheduled jobs
β β βββ utils/ # Utilities
β βββ tests/ # Backend tests
β βββ requirements.txt
βββ frontend/ # React application
β βββ src/
β β βββ components/ # React components
β β βββ pages/ # Page components
β β βββ services/ # API client
β β βββ styles/ # CSS files
β βββ package.json
βββ scripts/ # Utility scripts
βββ .env.example # Environment template
βββ .gitignore
βββ README.md
Create a .env file in the root directory:
# Application
DEBUG=True
SECRET_KEY=your-secret-key-here
PORT=3038
# Database
DATABASE_URL=sqlite:///subos.db
# Optional API Keys
FIXER_API_KEY=your-fixer-api-key
OPENAI_API_KEY=your-openai-key
GOOGLE_VISION_API_KEY=your-google-vision-key- Flexible billing cycles (daily, weekly, monthly, yearly)
- Custom frequency (every N periods)
- Auto-renewal tracking
- Logo management (upload or web search)
- Category organization
- Payment method tracking
- Inactive subscription archival
Supported channels:
- Email (SMTP)
- Discord (Webhooks)
- Telegram (Bot API)
- Pushover
- PushPlus
- Mattermost
- Ntfy
- Gotify
- Generic Webhooks
- Cost optimization recommendations
- Duplicate subscription detection
- Alternative service suggestions
- Anomaly detection (Isolation Forest)
- Spending predictions (ARIMA)
- Subscription clustering (K-means)
- Tesseract OCR (local, privacy-focused)
- Google Vision API (cloud, higher accuracy)
- Automatic field extraction
- Receipt archive with full-text search
Backend
cd backend
source venv/bin/activate
pytestFrontend
cd frontend
npm test- Python: Follow PEP 8
- TypeScript/React: ESLint + Prettier
- Commits: Conventional Commits format
See IMPLEMENTATION_PLAN.md for the complete 18-week development roadmap.
Current Phase: Foundation (Week 1-2)
- Database schema implementation
- Core models
- Basic API structure
Upcoming:
- Phase 2: Core Features (Subscriptions, Auth, Currencies)
- Phase 3: Notifications (9 channels)
- Phase 4: Advanced Features (AI, Household, Analytics)
- Phase 5: ML Insights & OCR
- Phase 6: Frontend Development
- Phase 7: Testing & Deployment
Contributions are welcome! Please read the implementation plan and follow the code style guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This project is inspired by Wallos, an excellent self-hosted subscription tracker. SubOS extends the concept with ML-powered insights, OCR processing, and a modern tech stack.
For questions or issues:
- Open an issue on GitHub
- Check the PRD.md for detailed feature specifications
- Review IMPLEMENTATION_PLAN.md for technical details
- Design System: Integrations UI (clean minimal design)
- Font: JetBrains Mono
- Icons: Lucide React
- Inspired by: Wallos project
Built with β€οΈ for privacy-conscious subscription management