Back to Projects
Full-Stack Development

BillTrackr

A personal finance app that maps your one-time bills, recurring bills, and paydays onto a single view, so you always know where each paycheck is going

Role
Solo Developer
Year
2026
Type
Personal Finance
The BillTrackr calendar for July 2026, with bills and paydays laid out across the month
01

Keeping track of recurring bills shouldn’t be this complicated.

I got tired of writing my bills down in notes and trying to keep track of when each one was due. Recurring bills made it even harder especially biweekly payments, where the dates shift throughout the year and some months can have three payments instead of two.

What I actually needed was a way to see exactly when each bill would land, which paycheck would cover it, and how much I'd have left afterward. That problem became the idea behind BillTrackr.

Rent$800.00MonthlyInternet$90.00MonthlyPhone$75.00MonthlyGroceries$120.00WeeklyNetflix$22.99MonthlyHow much is leftfrom this paycheck?
02

Bills and paydays, in one timeline.

BillTrackr brings my bills and paydays together in one place. Instead of manually figuring out when recurring bills will fall, I set up each bill once and the app generates the upcoming dates for me

It then organizes those bills around my pay schedule, making it easier to see what each paycheck needs to cover and how much I’ll have left afterward.

An illustration of September 2026in BillTrackr: paydays and bills interleaved in one dated list, with the month’s income, bills and remaining money totalled underneath.
September 2026Paid on the 1st & 15th
  1. Sep 1Payday+$2,000.00
  2. Sep 1Rent−$800.00
  3. Sep 5Internet−$90.00
  4. Sep 8Phone−$75.00
  5. Sep 12Netflix−$22.99
  6. Sep 15Payday+$2,000.00
  7. Sep 15Insurance−$160.00
  8. Sep 20Car payment−$450.00
  9. Sep 26Gym−$35.00
Income
$4,000.00
Bills
$1,632.99
Remaining
$2,367.01
03

How it works

BillTrackr takes a few simple inputs and turns them into a clear picture of the month. Here’s what happens behind the scenes:

  1. 1Add salaryAmount, cadence & first payday
  2. 2Add billsOne-time or recurring
  3. 3Generate bill datesFrom recurrence rules
  4. 4Build pay periodsPayday to payday
  5. 5Match billsTo each pay period
  6. 6Calculate what's leftPaycheck − bills
04

One rule. Every occurrence.

Instead of storing every future payment as a separate record, BillTrackr stores the recurrence rule itself including the frequency, start date, and when the recurrence should end. When the app needs bill dates for a given stretch of time, it expands that rule to generate them.

This keeps the data model simple. Updating a recurring bill means changing one rule rather than updating a collection of future payments.

A single stored rule — Netflix, $22.99, Monthly, Starts Sep 12 — expanded into the dates it produces: Sep 12, Oct 12, Nov 12, Dec 12.
Netflix$22.99
MonthlyStarts Sep 12
  1. Sep 12$22.99
  2. Oct 12$22.99
  3. Nov 12$22.99
  4. Dec 12$22.99
  • WeeklyEvery 7 days
  • BiweeklyEvery 2 weeks
  • MonthlySame day each month
  • One-timeA single due date
05

Budget around the paycheck, not just the month.

BillTrackr organizes bills around individual paychecks. Each pay period starts on a payday and runs until the day before the next, allowing the app to determine which bills need to be covered by each paycheck

This was the number I wanted from the beginning: not just how much I spend in a month, but how much I'll have left from my next paycheck after the bills are covered.

  • September 1 — September 14
    Paycheck
    $2,000.00
    • Rent$800.00
    • Internet$90.00
    • Phone$75.00
    • Netflix$22.99
    Total bills$987.99
    Remaining$1,012.01
  • September 15 — September 30
    Paycheck
    $2,000.00
    • Insurance$160.00
    • Car payment$450.00
    • Gym$35.00
    Total bills$645.00
    Remaining$1,355.00
06

Everything needed to plan around payday.

BillTrackr keeps things focused: add your income, schedule your bills, and let the app work out how everything lines up with your paydays.

  • Calendar view

    Bills and paydays together, across the whole month.

  • Pay periods

    Which bills fall between one paycheck and the next.

  • Recurring bills

    Weekly, biweekly or monthly; finite or ongoing.

  • Monthly overview

    Income, bills, and what’s left, side by side.

  • Salary scheduling

    Set your pay cadence and your first payday.

  • Account management

    Securely access your own bills, salary, and financial data

07

Tools behind BillTrackr.

A small, focused full-stack setup.

Frontend

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS
  • React Router

Backend

  • Django
  • Django REST Framework
  • SimpleJWT

Database

  • PostgreSQL
  • Neon

Dates & UI

  • FullCalendar
  • rrule
  • date-fns
  • shadcn/ui
  • Zod

Deployment

  • Vercel
  • Railway
08

Dates are harder than they look.

BillTrackr taught me that features that sound simple a recurring bill, an upcoming payday, and a monthly calendar become much more interesting once real dates and recurrence rules are involved.

  • Recurrence expansion

    Turning a single recurrence rule into the actual dates needed for a given calendar period.

  • Pay-period modelling

    Building pay periods dynamically from the salary schedule a user chooses.

  • Derived data

    Keeping stored data simple and calculating occurrences, pay periods, and totals when they’re needed.

  • Authentication

    Using JWTs with httpOnly cookies so authentication tokens aren't directly accessible to client-side JavaScript.

  • Date correctness

    Learning how UTC conversion and local dates can create subtle off by one day bugs and why date handling needs a consistent strategy.

09

Making the foundation stronger.

BillTrackr's first version focused on getting the core experience working. The next step in strengthening the architecture behind it as the application grows.

  • Centralised server state

    Move server data behind React Query so bills and salary stay synchronized across views after updates.

  • Stronger date handling

    Standardize date parsing and serialization across the application to prevent timezone-related inconsistencies.

  • Automated testing

    Add automated tests around recurrence expansion, pay-period calculations, and other date-sensitive business logic.

  • Fewer duplicated sums

    Move shared bill, recurrence, and pay-period calculations into a single source of truth instead of maintaining similar logic across multiple views.