SpendWise Devpost Project Story

About the project

## Inspiration

SpendWise started as a messy note on my phone.

I would write lines such as: "May 15, coffee, 50 lek; bus, 50 lek; brioche, 70 lek; household expense..." At the end of the day, I still had to add every number by hand. I was recording purchases, but I could not answer the question that actually mattered: where was my money going?

My name is Shpetim Mehmeti, and I am not a traditional software engineer. I am a product builder who had ideas long before I had the engineering ability to turn them into working software. Codex helped close that gap.

The first idea was very personal: build the expense tracker I wanted to use myself. I live in Albania, and many digital tools do not begin with our language, currency, or everyday habits in mind. SpendWise therefore began in Albanian. As the idea grew, I realized the same problem exists far beyond Albania: people want to understand their spending without giving up their privacy or spending more time managing the tracker than managing their money.

## From a small tracker to SpendWise

The earliest version was simple. A user entered an expense, and the app calculated daily, weekly, and monthly totals. That worked, but it did not yet respect how people behave in real life. Nobody wants to complete a long form every time they buy a coffee or a bus ticket.

That led to Quick Add. In my own routine, coffee is often 70 or 80 lek and a bus ticket is 50 lek. A repeated purchase should take one tap, with the amount easy to adjust and the description, note, and location remaining optional. SpendWise now suggests useful amounts from the user's own history while keeping the preset order under the user's control.

The app then expanded around real lives rather than a short generic category list. It covers everyday areas such as groceries, restaurants, delivery, transport, fuel, rent, utilities, phone, subscriptions, insurance, health, education, children, and pets. Users can also create their own categories and separate spending into Personal, Home/Family, and Business scopes.

SpendWise existed before OpenAI Build Week as a smaller Android expense tracker with basic entry, local storage, and early reporting and backup foundations. I do not present that baseline as new work. During Build Week, I used Codex and GPT-5.6 to turn it into a much more complete, tested product by completing 20 feature areas and resolving 14 documented bug classes.

## What it does

SpendWise is a local-first Android spending companion designed to make capture fast and understanding useful.

- **Fast entry:** add a detailed expense, use Quick Add presets, or launch Quick Add from the home-screen widget.
- **Receipt photo archive:** photograph or select a receipt, keep the image locally, and add only the optional details you trust.
- **Real-life organization:** use built-in or custom categories across Personal, Home/Family, and Business spending scopes.
- **Reminders and patterns:** schedule recurring bill reminders and surface likely repeating charges that may otherwise go unnoticed.
- **Reports and financial pulse:** explore daily, weekly, monthly, yearly, and all-time views, including visual 3, 6, and 12-month comparisons.
- **Portable records:** export CSV, PDF, HTML, or Markdown reports and create encrypted backup packages that can be restored later.
- **Useful context:** optionally view attributed exchange-rate, weather, fuel, and utility information with freshness and offline states.
- **Localization:** use the interface across 25 exposed languages, beginning with the Albanian experience that inspired the project.

The insight layer is intentionally nonjudgmental. SpendWise does not tell people that they are bad with money. Their money and choices are their own. It looks for patterns they may not have noticed. For example, repeated snack purchases might be more meaningful when seen together over a month than as separate small payments. The goal is awareness, not shame or financial advice.

Privacy shaped the architecture from the beginning. The core app requires no SpendWise account, email address, bank connection, or transaction upload to an AI service. Financial records stay in the local Room database. PIN reauthentication, a bounded local audit log, and verified deletion for managed receipt files protect sensitive actions and data. Reports are user-controlled exports, while restoration uses encrypted backup packages rather than trying to reconstruct data from a PDF. Optional cloud-document sync is encrypted and initiated through Android's document system, so the user chooses the destination.

## How I built it with Codex and GPT-5.6

SpendWise is built for Android with Kotlin and Jetpack Compose. Room stores financial records, DataStore manages settings and profile state, and app-managed storage keeps normalized receipt photos local. The financial pulse, recurring-pattern detection, and explanations use guarded local logic rather than sending transaction history to a generative model. Optional online providers are isolated behind bounded HTTPS clients with caching, source attribution, freshness indicators, and offline behavior.

During Build Week, Codex with GPT-5.6 was my primary engineering collaborator. I supplied the product direction, privacy rules, user experience, and visual constraints. Codex inspected the existing architecture, translated the bug and feature list into an ordered plan, implemented behavior across the database, UI, receipt archive, reports, widget, backup, security, networking, and localization layers, and then kept testing until failures were explained rather than hidden.

Design was not an afterthought for me. The first interface was mostly plain black, white, and rectangular. I wanted SpendWise to feel recognizably mine, so I kept pushing toward transparent gradient and glass surfaces, especially the teal, green, and blue dark theme. I also wanted only four main destinations, Home, Reports, Market, and Settings, with fixed floating navigation and naturally scrolling pages. Codex helped preserve that identity while the app became much more capable.

## Challenges

The first major challenge was my own scope. Once I realized I could turn ideas into working software, it was tempting to request three or four large features at once. That created too much context, made results harder to evaluate, and sometimes produced work that was individually plausible but did not fit cleanly together.

The breakthrough was to stop trying to build the whole vision in one prompt. We made a plan, completed one behavior at a time, tested it, and only then moved to the next. I also learned that better AI collaboration does not mean writing the longest possible request. It means being precise about the outcome, constraints, and evidence required.

The hidden technical boundaries were just as difficult as the visible features. We had to make backup restoration atomic across both database records and managed receipt files, preserve historical currency data correctly during edits, keep report resources complete across 25 languages, and support Android 8 through Android 17. Physical testing also exposed a product-level failure: receipt text extraction could confidently guess the wrong merchant or amount. Instead of presenting unreliable automation as intelligence, I used Codex to remove the autofill path and keep the useful, private receipt photo archive.

Another challenge was adding substantial functionality without losing the visual character I already loved. The app had to become more reliable and more useful, not just busier or less attractive.

## Accomplishments that I am proud of

The Build Week version is an installable Android product, not a static prototype. Its final verification gate includes 399 passing JVM tests, an instrumented suite passing on API 26, 35, and 37, Android lint with zero findings, Android 17 and 16 KB page-size checks, and a successful physical-device smoke and upgrade test on Android 16.

Those numbers matter, but my proudest moment was simpler: opening SpendWise on my own phone and seeing my real May and June spending still there. What began as notes I had to total manually had become an application I could use every day, install through USB debugging, update without losing my data, and share with another person.

Even if SpendWise never becomes a global product, it already solved the original problem for its first user: me.

## What I learned

I learned that AI does not remove the need for direction, judgment, or verification. Codex can be an extremely capable engineering collaborator, but the product still needs someone to decide what should exist, which tradeoffs matter, what must remain private, and when the evidence is strong enough to call something finished.

I also learned that local-first software does not have to be feature-poor. Receipt archives, reporting, insights, localization, encrypted backup, widgets, and useful optional market context can coexist without making a user's financial history the product.

Most personally, I learned that not being a traditional programmer does not disqualify me from building serious software. It changes how I contribute. I bring the lived problem, the product decisions, the design taste, the persistence, and the testing on a real device. Codex and GPT-5.6 helped me turn those decisions into a system that works.

## What's next

Next I want to run a wider Play Store test, perform a dedicated accessibility review with TalkBack users, test more physical devices, and add more official or open-data providers without weakening the local-first privacy model. The long-term goal is to make SpendWise useful across more households and small businesses while keeping the experience fast, understandable, and owned by the person whose money it describes.

Built With

Share this project:

Updates