Wallos is a self-hosted web application designed for individuals who want full control over their financial data while tracking recurring subscriptions and expenses. It eliminates the need for third-party financial apps by providing a private, customizable dashboard to monitor payments, categorize spending, and receive proactive alerts. Built for tech-savvy users and privacy-conscious individuals, Wallos is ideal for those who refuse to entrust sensitive financial data to cloud-based services.
Built with PHP and SQLite, Wallos supports deployment via Docker, Docker Compose, or baremetal servers with NGINX/Apache. It integrates with Fixer API for real-time currency conversion, supports OIDC/OAuth authentication, and includes a RESTful API for programmatic access. The application is fully responsive, supports 21+ languages, and offers AI-powered recommendations via ChatGPT, Gemini, or local Ollama models.
What You Get
- Subscription Management - Track all recurring payments with due dates, amounts, and statuses; manually add or import subscriptions with automatic next-payment calculation.
- Multi-Currency Support - Add and manage subscriptions in any currency, with automatic display in your primary currency using real-time exchange rates.
- Currency Conversion via Fixer API - Integrate with Fixer.io to fetch live exchange rates and convert all subscription costs to your base currency for unified budgeting.
- Logo Search - Automatically fetch subscription logos from the web using the subscription name when no logo is uploaded, improving visual organization without manual effort.
- AI Recommendations - Receive personalized cost-saving suggestions using ChatGPT, Gemini, or local Ollama models based on your spending patterns and subscription data.
- Multi-Channel Notifications - Get email, Discord, Telegram, Pushover, Gotify, or custom webhook alerts for upcoming payments, cancellations, or failed renewals.
- Customizable Categories & Themes - Define your own expense categories and toggle between light/dark themes to tailor the interface to your preferences.
- Statistics & Graphs - Visualize spending trends over time with interactive charts showing monthly costs, category breakdowns, and yearly totals.
- Mobile-First Responsive UI - Fully functional on smartphones and tablets with touch-optimized controls and collapsible menus for on-the-go budget tracking.
- OIDC/OAuth Integration - Securely authenticate users via external identity providers like Keycloak, Auth0, or any OIDC-compatible service.
- RESTful API - Programmatically access subscription data, categories, and notifications using the documented API at api.wallosapp.com for automation or third-party integrations.
- Multi-Language Support (21+ languages) - Use Wallos in your native language with fully translated UI strings and JavaScript interfaces.
Common Use Cases
- Managing a household budget - A family uses Wallos to track shared subscriptions (Netflix, Spotify, utilities) across multiple currencies and receive alerts when payments are due.
- Running a paid membership newsletter - A content creator tracks recurring payments from subscribers and uses AI recommendations to identify underutilized services for cancellation.
- Tracking international subscriptions - A digital nomad manages subscriptions in USD, EUR, and GBP and relies on Fixer API to convert all costs into their home currency for accurate budgeting.
- Privacy-focused finance monitoring - A journalist or freelancer self-hosts Wallos to avoid cloud-based financial apps and maintain full control over sensitive payment data.
Under The Hood
Architecture
- Monolithic structure with business logic tightly coupled in PHP files, lacking clear separation between presentation, business, and data layers
- Direct SQL queries embedded in application code without ORM or repository patterns, hindering testability and maintainability
- No dependency injection or service container; dependencies are instantiated inline, reducing modularity and extensibility
- Frontend and backend concerns interwoven in PHP templates with no MVC framework or API layer to decouple client-server concerns
- Configuration settings hardcoded or passed via environment variables without a dedicated configuration loader pattern
Tech Stack
- PHP 8.3 FPM backend with native extensions for server-side rendering and image processing
- Embedded SQLite database managed via PDO, eliminating external database dependencies
- Nginx configured as reverse proxy and static file server with custom site-specific configurations
- Docker-based deployment using lightweight Alpine images with process management and health checks
- Progressive Web App features including offline shortcuts, maskable icons, and window controls enhancement
- Scheduled tasks managed via system cron with timezone-aware execution using tzdata
Code Quality
- Extensive test coverage with descriptive unit and integration tests validating core functionality
- Modular component structure with logical separation of data models, business logic, and external interfaces
- Consistent naming conventions and clear function intent, though type safety is inconsistently enforced
- Rigorous linting with ESLint enforcing strict formatting and code style rules
- Error handling is uniform but lacks custom exception classes, limiting contextual debugging
What Makes It Unique
- Native iCal feed generation with dynamic currency conversion and household member mapping for seamless calendar integration
- Unified notification system supporting multiple channels through a single extensible configuration layer with secure credential masking
- AI-driven subscription recommendations that surface actionable insights from user spending patterns
- Built-in multi-currency support with real-time exchange rates and locale-aware formatting, independent of payment processors
- Granular API endpoints with automatic sanitization and permission-aware responses, enabling full control without a separate backend
- Self-hosted dashboard with admin settings and update notifications tightly integrated with GitHub releases, creating a fully autonomous experience