Inspiration

Have you ever signed up for a free trial, promising yourself you would cancel before it ended, only to realise you had been charged before you remembered?

I have. More than once.

Sometimes, I subscribe to several online services and lose track of what I have signed up for. Other times, I genuinely want to try a product for free, but I miss the cancellation deadline and end up paying for something I never intended to purchase.

The frustrating part is that my finances are already budgeted. An unexpected subscription charge, no matter how small, can disrupt that budget. And when multiple subscriptions accumulate, those forgotten payments can become a significant expense.

I started thinking: What if there were a simple way to keep track of every subscription, know exactly when a payment was coming, and get reminded early enough to do something about it?

This question inspired Smart.

I wanted to build something that would help people enjoy free trials without the anxiety of forgetting to cancel, keep track of recurring expenses, and take control before another unwanted charge appears.

What it does

Smart is a subscription and free-trial tracking app designed to help you stay ahead of upcoming charges.

Instead of relying on memory, scattered emails, or calendar reminders, Smart gives you one place to record your subscriptions and track their billing deadlines.

Here's how it works:

  1. Track your subscriptions in one place. Add a subscription or free trial, its billing date, and the details you need to recognise the payment.
  2. Organise by payment card. Give each card a nickname and record the associated bank and cardholder name. See which subscriptions are linked to each card, along with monthly spending totals.
  3. Get timely email reminders. Smart sends reminders two days and one day before a billing deadline, at your chosen time and in your selected time zone.
  4. Know what needs your attention. Upcoming and overdue items receive priority, helping you focus on the subscriptions that need action.
  5. Keep track of cancellations and renewals. Mark a subscription as cancelled or record its renewal with the next billing date. Your active subscription totals update accordingly.

Smart does not require bank logins or actual card numbers. You provide the information you need to track your subscriptions, while keeping sensitive payment credentials out of the app.

The goal is simple: help you remember before you pay, not after.

How we built it

Smart was built as a working proof of concept for the Devpost Build With AI: Basics hackathon.

Rather than jumping straight into coding, I used the Devpost Learn Skill Pack with Claude Code to work through the planning and implementation process. This helped me turn a personal frustration into a more clearly defined product, establish the scope, document the requirements, and plan the technical implementation before building.

The application uses:

  1. Python and Flask for the backend and application routes.
  2. SQLite for storing subscription records, payment-card details, settings, and cancellation history.
  3. HTML, CSS, and JavaScript for the user interface, with Tailwind CSS for styling.
  4. Gmail SMTP for sending actual reminder emails through an encrypted connection.
  5. A background deadline watcher that checks for due reminders every minute while the server is running.

The application brings these components together in one workflow: record a subscription, calculate its reminder deadlines, send an email when the reminder is due, and let the user manage the subscription afterwards.

The repository also includes the planning documents generated during the build process: the scope, product requirements document, technical specification, and implementation checklist.

Challenges we ran into

One of the biggest challenges was turning a simple idea into a reliable end-to-end experience.

It is easy to build a screen where someone can enter a subscription. It is harder to ensure that the information is saved, the correct reminder time is calculated, the email is actually delivered, and the subscription remains manageable afterwards.

Time was another important constraint. I had to distinguish between the features that would make Smart useful immediately and the larger features that could wait for a future version.

I focused on the essential workflow first: subscription tracking, card-based organisation, configurable reminders, email delivery, and cancellation history.

I also had to think through practical details such as time zones, reminders that are already due when a subscription is saved, and what happens when the server has been offline.

For this proof of concept, the reminder watcher runs while the server is active and catches up on due reminders when it starts again.

Accomplishments that we're proud of

What makes me proud of Smart is that it goes beyond an idea or a static interface.

I built a working flow that connects subscription tracking to real email reminders.

Some of the things I'm proud of include:

  1. Building an application that can send real reminder emails through Gmail SMTP.
  2. Implementing configurable reminder times and time-zone settings.
  3. Organising subscriptions by payment card, with individual and overall monthly totals.
  4. Supporting cancellation and renewal workflows, including cancellation history.
  5. Keeping the initial experience independent of bank logins and actual card numbers.
  6. Using a structured, AI-assisted development process with planning documents instead of relying on unstructured prompts and ad hoc coding.

Smart is still a proof of concept, but it demonstrates the core experience I wanted to create: giving people an opportunity to act before an unwanted subscription charge happens.

What we learned

This project reinforced an important lesson for me: building with AI works better when you think before you code.

Using the Devpost Learn Skill Pack helped me approach the project in stages, from defining the problem and narrowing the scope to documenting requirements and implementing the application.

I also learned that a feature is not complete just because its interface looks right. A reminder feature needs to account for dates, time zones, delivery failures, server availability, and the user's next action.

Most importantly, I was reminded that useful software does not always begin with a complex technical breakthrough. Sometimes, it begins by paying attention to a recurring frustration and building a practical solution around it.

What's next for Smart

A secure, multi-user experience: Introduce user accounts, authentication, and secure cloud storage so people can manage their subscriptions across devices.

Subscription discovery: Explore ways to help users identify recurring charges automatically through supported integrations, with appropriate consent and security safeguards.

Better cancellation guidance: Provide clearer, service-specific instructions and verified links to cancellation pages wherever possible.

Smarter spending insights: Help users understand their recurring costs, identify subscriptions they no longer use, and make more informed decisions about their budgets.

More flexible notifications: Explore additional notification channels and customisable reminder schedules.

Ultimately, I want Smart to become more than a place to list subscriptions. I want it to help people make intentional decisions about recurring payments and avoid spending money simply because they forgot a deadline.

Built With

Share this project:

Updates

Submission history