Inspiration

The idea for MySub came from a problem I personally faced. I had several active subscriptions, including ChatGPT Plus, Spotify, cloud storage, educational platforms, and other online services. Sometimes I forgot when the next payment was due, how much I was spending in total, or whether I still needed a particular subscription.

I soon realized that this was not only my problem. Many of my friends, especially students, were dealing with the same situation. We regularly pay for AI tools, music, streaming platforms, cloud storage, design software, and learning services. Each subscription may seem affordable on its own, but together they can become a significant monthly expense.

Free trials make the problem even worse. People often sign up for a service, forget the cancellation date, and only notice the subscription after an unexpected charge.

Most existing solutions either require access to sensitive financial information, depend heavily on cloud services, or are more complicated than they need to be. I wanted to create something simpler and more privacy-friendly.

That is why I created MySub — a local-first subscription manager that gives users a clear view of their recurring expenses without requiring access to their bank account.

This is my first hackathon project, and I wanted to use it not only to build an application, but also to solve a real problem that affects me, my friends, and many other students.

What it does

MySub helps users understand and manage their recurring expenses from one place.

Users can:

  • Add, edit, pause, and organize subscriptions
  • Track prices, renewal dates, categories, and billing cycles
  • View estimated monthly and yearly expenses
  • See payments due during the next 30 days
  • Review subscriptions that need immediate attention
  • Compare spending across different categories
  • Identify their largest monthly costs
  • Track monthly, annual, and other billing plans
  • Use separate local profiles with isolated subscription data
  • Switch between responsive desktop and mobile layouts
  • Use light, dark, or system themes
  • Access safe cancellation guidance for services they no longer need

The application includes an Overview, a complete subscription list, a Renewal Center, spending insights, profile management, notification settings, and privacy controls.

Unlike solutions that require users to connect a bank account, MySub is designed around a local-first and privacy-first approach. Subscription and profile information stays on the user's device.

The main goal is not only to display numbers. MySub helps users notice forgotten subscriptions, prepare for upcoming payments, reduce unnecessary spending, and make more informed financial decisions.

How we built it

I built MySub using Flutter and Dart, allowing the project to support Android, desktop, web, and other platforms from a shared codebase.

For the interface, I used Flutter's Material Design components, reusable widgets, and responsive layouts. The desktop version uses a sidebar and wide dashboard layout, while the mobile version adapts the same features into compact cards, bottom navigation, and scrollable screens.

The application includes structured data models for:

  • Subscription information
  • User profiles
  • Prices and currencies
  • Categories
  • Renewal dates
  • Billing periods
  • Notification preferences
  • Application appearance and language settings

I implemented calculation logic that normalizes different billing cycles into estimated monthly and annual costs. This allows weekly, monthly, annual, and custom subscriptions to be compared in a consistent way.

MySub also calculates:

  • Average monthly spending
  • Annual spending forecasts
  • Payments due during the next 30 days
  • Spending by category
  • Billing cycle distribution
  • Largest recurring expenses
  • Active and inactive subscription totals

The project follows a separated structure for the interface, models, application logic, services, integrations, and local data. This makes the code easier to maintain, test, and expand.

The current version stores data locally and supports isolated user profiles. It does not collect passwords, upload financial information, or require a cloud account.

For cancellation support, the app uses a secure external hand-off to official provider pages rather than trying to collect provider credentials.

I used Git and GitHub for version control and project publishing. I tested the responsive interface both on desktop and on a physical ZTE Android device, which helped me find and fix mobile layout problems that were not visible on a large screen.

Challenges we ran into

One of the biggest challenges was keeping the application useful without making it overwhelming. Subscription services can use different currencies, payment periods, prices, renewal conditions, and cancellation processes.

Another challenge was calculating recurring expenses accurately. A weekly subscription cannot simply be multiplied by four to calculate an average month, while yearly plans need to be represented correctly in both monthly and annual statistics.

Building one interface for very different screen sizes was also challenging. A dashboard that works well on desktop cannot simply be reduced in size for a mobile phone. I had to redesign navigation, cards, spacing, lists, and statistics so that the application remained usable on both platforms.

Privacy was another important challenge. Automatic subscription detection could require access to emails, banking information, or external accounts. Instead of requesting sensitive access in the current version, I chose a local-first design and began planning safer, permission-based approaches for future automation.

Cancellation is also more complex than opening one universal link. Every provider uses a different process, and some subscriptions are managed through external stores. I therefore focused on safe guidance and official provider hand-offs rather than claiming that every subscription can be cancelled automatically.

Accomplishments that we're proud of

I am proud that MySub grew from a personal problem into a complete working application with a clear purpose.

During the hackathon, I created:

  • A working cross-platform Flutter application
  • Responsive desktop and Android layouts
  • A subscription management system
  • A dedicated Renewal Center
  • Monthly and annual spending calculations
  • Category and billing-cycle analytics
  • Multiple isolated local profiles
  • Light, dark, and system themes
  • Notification and reminder preferences
  • Privacy-focused local data storage
  • Safe cancellation guidance
  • A public GitHub repository
  • A working video demonstration
  • Testing on a real Android device

I am especially proud that the project is not only a visual prototype. The screens are connected, the subscription data affects the calculations, and the application can be tested on a real device.

This is my first hackathon project, so completing a functional and polished cross-platform application was a major personal achievement. I had to learn new concepts, solve technical problems independently, and make product decisions under limited time.

I am also proud of the project's potential community impact. Students often have limited budgets but use many recurring digital services. Even a small forgotten subscription can matter. MySub gives them a free and understandable way to see where their money goes without handing over sensitive banking credentials.

What we learned

While working on MySub, I learned that building a useful application is not only about writing code. It requires understanding the user's problem, choosing the most valuable features, testing assumptions, and removing unnecessary complexity.

I improved my knowledge of:

  • Flutter and Dart development
  • Responsive interface design
  • Cross-platform application development
  • Reusable UI components
  • Application architecture
  • Local data management
  • Recurring payment calculations
  • Date and billing-cycle handling
  • User profile isolation
  • Privacy-focused product design
  • Git and GitHub workflows
  • Testing on physical Android hardware
  • Product presentation and demo creation

Testing on a real phone taught me an especially important lesson: an interface that looks correct on desktop may behave very differently on a small screen. Some layouts had to be rebuilt rather than simply resized.

I also learned that automatic subscription detection and cancellation are more complex than they initially appear. These features involve privacy, security, provider-specific rules, account permissions, and third-party integrations.

Most importantly, I learned how to turn a problem I personally experienced into a real product with a clear audience, technical structure, and future direction.

What's next for MySub

The next step is to make MySub more automatic while preserving its privacy-first approach.

Planned features include:

  • Reliable local payment reminders
  • Free-trial expiration tracking
  • Multiple currency conversion
  • Historical spending charts
  • Monthly budget limits
  • Family and shared subscriptions
  • Price-change alerts
  • Duplicate subscription detection
  • Export and backup options
  • More languages and accessibility improvements
  • A larger database of official cancellation instructions

I would also like to explore privacy-preserving subscription detection. Instead of uploading an entire inbox to a server, a future version could process selected receipts or subscription emails locally, with clear user permission.

Another planned feature is an AI assistant that could help users:

  • Understand their subscription spending
  • Detect unusual or unnecessary expenses
  • Compare cheaper alternatives
  • Prepare for upcoming renewals
  • Find official cancellation instructions
  • Build a realistic subscription budget

The long-term goal is to make MySub a complete, accessible, and privacy-friendly subscription management assistant for students and everyday users.

MySub is designed around a simple idea: people should be able to understand and control their recurring expenses without giving another company access to their entire financial life.

Built With

Share this project:

Updates

posted an update —

MySub is now submitted to ImpactForge!

We built a working cross-platform subscription tracker with Flutter and Dart, tested it on desktop and a real Android device, published the code on GitHub, and prepared a video demo.

We would be happy to receive your feedback!

Log in or sign up for Devpost to join the conversation.

Submission history