Inspiration
What it does
Inspiration
BudgetOS was created from a simple personal problem: most finance apps either feel too complicated, focus only on expense tracking, or do not provide a clear picture of a user’s complete financial situation.
I wanted to build a personal finance system that combines daily money management, budgeting, financial goals, recurring payments, account balances, and future projections in one minimal and understandable interface.
The main idea behind BudgetOS is to treat personal finance as an operating system rather than just another expense tracker.
What it does
BudgetOS is a personal finance application that helps users manage their money across multiple accounts and currencies.
The project currently supports:
- Income and expense tracking
- Transfers between accounts
- Multiple accounts and currencies
- Categories and transaction filtering
- Monthly budgets
- Savings goals
- Recurring transactions
- Financial summaries and dashboard analytics
- Cash-flow and balance projections
- CSV import and export
- Local-first data storage
- Optional cloud synchronization
- Monobank account and transaction integration
- Progressive Web App support for desktop and mobile devices
The application is designed to remain useful even without a permanent internet connection. Users can work with their financial data locally and synchronize it with the cloud when needed.
How I built it
BudgetOS was built as a Progressive Web Application using JavaScript, HTML, and CSS.
The application uses:
- Supabase for authentication, PostgreSQL data storage, and cloud synchronization
- IndexedDB for local-first storage and offline access
- Vercel for deployment and hosting
- GitHub for source control and project management
- Codex as an AI development partner for architecture planning, implementation, debugging, testing, and code review
- Monobank API for importing account balances and transactions
During development, the project evolved from a relatively simple application into a more structured architecture.
The current architecture separates the application into several layers:
UI → Queries → Services → Repositories → Local or Cloud Storage
This structure keeps business logic separate from the interface and makes it easier to maintain, test, and eventually reuse the same logic in native iPhone and macOS applications.
Challenges I faced
One of the biggest challenges was managing data consistency between local IndexedDB storage and Supabase.
The application needed to work offline while still allowing users to synchronize their data across devices. This required careful handling of account data, transactions, updates, deletions, and synchronization states.
Another major challenge was gradually refactoring the original codebase. The first version contained interface logic, state management, financial calculations, and storage access in the same modules.
I had to move the project toward a layered architecture without breaking existing functionality.
Integrating Monobank also introduced several challenges, including transaction imports, duplicate prevention, account synchronization, and keeping dashboard calculations consistent after new data was imported.
What I learned
This project helped me better understand:
- Application architecture and separation of responsibilities
- Local-first software design
- Cloud synchronization
- Working with Supabase and PostgreSQL
- API integrations
- Data normalization
- Financial calculation logic
- Progressive Web Apps
- Automated testing and regression prevention
- Using AI coding agents effectively during real software development
I also learned that AI works best not as a replacement for the developer, but as a development partner. Codex helped me analyze the codebase, plan refactoring steps, write tests, identify architectural issues, and implement features while I remained responsible for product decisions and validation.
Accomplishments that I am proud of
I am especially proud that BudgetOS grew from a small personal tool into a functional finance platform with:
- Local and cloud data storage
- A layered application architecture
- Automated tests for core financial services
- Multiple financial domains such as accounts, transactions, budgets, goals, and recurring operations
- A responsive interface that works as a desktop and mobile PWA
- A foundation that can later support native macOS, iPhone, and Apple Watch applications
What's next for BudgetOS
The next steps include:
- Improving cloud synchronization and conflict resolution
- Expanding Monobank integration
- Adding more detailed financial analytics
- Improving forecasting and financial planning
- Building native applications for macOS and iPhone
- Adding an Apple Watch companion experience
- Introducing smarter AI-powered financial insights
- Supporting more banks and financial data providers
- Continuing to simplify the user experience ## How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for BudgetOS
Built With
- and
- budgets
- codex
- css
- financial
- github
- goals
- html
- indexeddb
- javascript
- monobank-api
- node.jsa-local-first-personal-finance-operating-system-for-managing-accounts
- openai
- postgresql
- pwa
- rest-api
- supabase
- transactions
- vercel
Log in or sign up for Devpost to join the conversation.