Skip to content

Releases: maybe-finance/maybe

v0.6.0

24 Jul 22:05
Compare
Choose a tag to compare

Farewell... Maybe ๐Ÿ‘‹

maybe-meet-again

TL;DR

Maybe is pivoting to B2B financial forecasting and scenario planning and as a company, will no longer be actively maintaining this repository. What this means:

  • This final release is a working, โ€œas-isโ€ version of the software
  • As a company, we will be turning 100% of our focus to the pivot, and therefore, will not be actively maintaining / accepting contributions to this repository

Thanks to our contributors and beta testers!

Before I talk too much about the engineering and product side of things, we want to extend our gratitude to our awesome contributors! We had hundreds of individuals contribute to the project and even more helping report bugs, suggest features, and raise new ideas.

This is a huge project and we couldnโ€™t have gotten this far without our early supporters and OSS contributors.

Demo

Below is a quick demo of what the Maybe app can do. You can learn how to deploy it following our Docker Setup guide.

maybe-self-hosted-demo.mp4

Self hosted features include:

  • Dashboard to see your net worth trend over time and current personal balance sheet
  • Rich transaction filtering, searching, bulk updating, and viewing
  • Account views with the ability to see balance trends, reconciliations, and detailed breakdowns of your balance changes
  • View your monthly budgets with category averages, income summary, and more
  • Intelligent AI chat that knows your finances and can answer questions about them
  • Multi-currency support
  • API with key management to build automations on top of Maybe
  • CSV imports for accounts, transactions, and trades
  • Categories, Tags, Merchants
  • Rules to auto-categorize your transactions, detect merchants, and more
  • Invite members to your household
  • 2FA

Recap, Reflections

For many of you, this final release comes with a sense of disappointment, and thatโ€™s understandable. Weโ€™re not excited about this either, and wish we had unlimited time and money to fulfill our vision for this app (we have years worth of new feature designs in the backlog)! In the end, our obligation as a company is to our investors, and as outlined in Joshโ€™s post here, weโ€™ve determined that continuing to build this app is not our best chance at paying back our investors and profiting as a company.

That said, over the last few years, our team has dedicated some serious amount of thought asking the question, โ€œHow can we build a better personal finance app?โ€. And in that light, Iโ€™d be remiss not to share some of our biggest successes, failures, and unexpected challenges along the way. We hope that some of these reflections propel the OSS community forward and one day lead to a truly great, OSS personal finance app.

The wins

Weโ€™ve been thinking about personal finance for a lot of years. This isnโ€™t our first attempt at creating this app, and along the way, weโ€™ve learned some valuable lessons that have made it into the final release of this software.

A simple, beautiful personal finance app

image

Let me give credit where it is due. Our lead designer @justinfar has done an incredible job crafting a simple and clean UI. Some of you may look at our app and think, โ€œThatโ€™s it?โ€. But believe us when we say, this was intentional. We spent a lot of time asking the question, โ€œWhat can we delete?โ€.

Our goal with this app was to remove complexity from personal finance. Many personal finance apps overwhelm the user with dashboards, complex UIs, and too much detail. We believe that many people want to track their finances but are simply too overwhelmed by the challenge of getting started. Most people need to know just a few important things about their finances:

  • How much money do I have?
  • Am I spending less than Iโ€™m earning?
  • How much did I spend last month?
  • What am I spending my money on?

This app answers all of those questions and gives the user a simple interface to categorize, organize, and get to those answers quicker. While some users might look for a richer feature set, we believe most users are satisfied with less; not more.

A place for everything

One of our greatest frustrations with other personal finance apps is not having a โ€œplaceโ€ or a โ€œhomeโ€ for common financial scenarios.

One common scenario in personal finance is a โ€œtransferโ€. A transfer is a movement of funds from one account to another, and creates a transaction of opposite values on each of those accounts. Many personal finance apps treat these the same as the rest of your transactions and force you into this uncomfortable pattern of using a โ€œTransferโ€ category or โ€œExcludedโ€ category to filter this noise out of your budgets and metrics. Furthermore, some transfers (like loan payments) should be included in your budgeting while others (like credit card payments) are a โ€œdouble-countโ€ that should be excluded from budgets. It forces users to create a โ€œJunk drawerโ€ for the things they donโ€™t know what to do with.

The Maybe app treats transfers as first-class citizens. We auto-detect your transfers and donโ€™t even allow you to categorize them because they shouldnโ€™t be categorized. This way, transfers are automatically excluded from budget totals and other metrics.

CleanShot.2025-07-24.at.13.36.48.mp4

Another common scenario is โ€œone time expensesโ€. Similar to transfers, these expenses (e.g.ย โ€œmoving expensesโ€) donโ€™t really belong in budgets either. The Maybe app allows you to mark these as โ€œone timeโ€ and automatically excludes from your โ€œaverage spendingโ€ and other budget totals.

CleanShot.2025-07-24.at.13.37.59.mp4

Outside these common scenarios, the Maybe app also allows you to create various account types and even โ€œreconcileโ€ them to a new balance without creating that nasty โ€œadjustmentโ€ transaction that nobody knows how to categorize or what to do with.

CleanShot.2025-07-24.at.14.17.56.mp4

We set out to create an app that has a place for all your financial scenarios, and while I think there is still work to be done on this front, we handled the most important ones (unlike many other apps). And weโ€™re proud of that!

A simple stack

No self-hosted app is โ€œeasyโ€ to deploy. But we did our best to make things simple. The Maybe app can be hosted all inside a single Docker container with optional market data API dependencies.

For the demos of this write-up, I started a brand new self hosted app in less than 10 minutes!

The losses

As weโ€™re stopping active development on this project, there were clearly some losses. Aside from the fact that growing a B2C SaaS app is challenging in its own right from a business perspective, Iโ€™ll focus on some of the product/engineering losses that we feel could have been remediated with some more time and money to throw at this problem.

Data providers, data providers, data providers

The single biggest challenge with a personal finance app in 2025 is bank providers.

Some companies have had enough time to work around this challenge with all sorts of clever UIs and mathematical shortcuts, but when push comes to shove, the state of โ€œOpen Bankingโ€ and bank provider data comes with endless frustration. While we believe we could have slowly but surely solved a majority of these problems, we simply needed more time and more money to do so. Below are just a few of the challenges we were still working through:

  • Unsupported banks (there are a TON, and most users churn if even one of their banks is unsupported)
  • Banks that only support logins at certain times of day
  • Bank provider documentation not matching the production data we received
  • Bank provider data being plain wrong (there is a surprisingly large amount of this)
  • Idiosyncracies of each financial institution (everyone reports their data a little differently)
  • The vast number of financial securities (i.e.ย stocks, options, etfs, etc.), many of which have differing data across market providers, and many of which have sparse to zero data

Needless to say, this is a massive challenge for anyone building a personal finance app and is the primary reason why โ€œbootstrappingโ€ a personal finance app with automated bank syncing is an uphill battle. You need a lot of money and time to get this right.

Data consistency and cache invalidation

While a dashboard with a net worth graph doesnโ€™t look all that complicated, itโ€™s one of those โ€œicebergโ€ problems. The more you dig, the more complexity you find.

A personal finance app needs to show a userโ€™s total net worth trend over time. A personal finance app needs to show average spending. A personal finance needs to show correct balance sheet values.

Every view of the app touches nearly all the userโ€™s data. If any piece of data is wrong, every view in the app is wrong. There is nowhere to hide in a personal finance app, and even the slightest change to the date of a historical transaction propagates upstream and affects the net worth graph, account sidebar trends, metrics, budgets, and pretty much every other view of the app!

The UI required by users demands a high degree of focus on both performance + accuracy. But in a finance app (orโ€ฆ any app!), these two things are at odds with each other. Achieving full accuracy can be done by writing โ€œfactsโ€ to the database (event-sourcing) ...

Read more

v0.5.0

11 Apr 16:04
9fa3698
Compare
Choose a tag to compare

Breaking changes

We are now using Sidekiq + Redis for background jobs. To update your self hosted instance, you will need to follow the upgrade guide outlined here:

#2004

Dark mode + AI Chat is here!

We've got some huge updates for this release:

  • Add your OpenAI API key to enable contextually aware AI chats. Please read AI and your financial data to learn more about this feature and how we're handling data between your finances and OpenAI (it's 100% optional and disabled by default!)
  • Set dark mode in your user preferences to enable our newest theme below:

CleanShot 2025-04-11 at 12 00 07

What's Changed

  • fix: Bug - Transaction matching dialog doesn't open by @tonyvince in #1942
  • Fix time period key conflicts by @zachgoll in #1944
  • Allow CSV imports to be configured with single or multi-account mode by @zachgoll in #1943
  • Fix modal closing on color picker drag #1869 by @bryanmck1 in #1931
  • Account-level import configuration templates by @zachgoll in #1946
  • Fix ticker filling when Synth is connected by @zachgoll in #1950
  • Fix: Purge stale holdings from accounts during sync by @zachgoll in #1954
  • Add tagged logging to sync process by @zachgoll in #1956
  • Preference to set default_period by @nikhilbadyal in #1941
  • Populate holdings for "offline" securities properly by @zachgoll in #1958
  • Format money for trade history in holdings drawer by @zachgoll in #1961
  • Fetch exchange rates for accounts that require conversion for net worth rollups by @zachgoll in #1983
  • Fix incorrect totals calculation when family has loan payments by @zachgoll in #1984
  • Fix transaction filters when transfers are present by @zachgoll in #1986
  • Data provider simplification, tests, and documentation by @zachgoll in #1997
  • Update security price query in demo generator by @vaibhav-if in #2000
  • Use Redis for ActiveJob and ActionCable by @zachgoll in #2004
  • Fix incorrect entry sorting in activity view by @tonyvince in #2006
  • fix(dashboard): account groups wrapping in balance sheet by @firedev in #2010
  • perf(imports): Bulk import CSV transactions by @Joelute in #1962
  • devContainer: Use Redis for ActiveJob and ActionCable. by @Joelute in #2017
  • bug: Use correct currency value while setting the currency. by @Joelute in #2018
  • Personal finance AI (v1) by @zachgoll in #2022
  • improvements(ai): Improve AI streaming UI/UX interactions + better separation of AI provider responsibilities by @zachgoll in #2039
  • perf(imports): Bulk import CSV trades by @Joelute in #2040
  • chore(providers): Use faraday retry, move retry logic to concrete provider level by @zachgoll in #2042
  • style(ai): Fix AI sidebar overflow when user hasn't enabled or created a chat yet by @zachgoll in #2044
  • provider: Ensure data provider exist before fetching for price. by @Joelute in #2045
  • Fix: Notes not saved on transfer transactions by @the-spectator in #2053
  • Show Uncategorized segment currency as per budget currency by @the-spectator in #2058
  • Mobile responsive template preparation by @zachgoll in #2071
  • Implement dark mode by @Shpigford in #2078

New Contributors

Full Changelog: v0.4.3...v0.5.0

v0.4.3

28 Feb 20:17
c95bb08
Compare
Choose a tag to compare

Data resets, offline investment trades, and miscellaneous stability improvements

This release comes with a wide mix of stability improvements and quality of life updates; particularly for self hosted apps, which can now be "reset" in user settings. If your data looks wrong or you want a "clean slate" to work from, we've added the ability for you to easily perform these resets without writing SQL or manually deleting records.

This release also comes with a much clearer UI surrounding the Synth data provider. New self hosted users will now see a prominent warning message if they have missing data as a result of a misconfigured or absent data provider.

What's Changed

New Contributors

Full Changelog: v0.4.2...v0.4.3

v0.4.1

21 Feb 19:20
da668f3
Compare
Choose a tag to compare

Patch release for git versioning info crash error

v0.4.0

21 Feb 17:44
f96bb84
Compare
Choose a tag to compare

Maybe Refresh ๐ŸŽ‰

This latest version comes with a brand new and simplified UI plus a ton of huge performance improvements on the transactions, dashboard, and accounts pages.

CleanShot 2025-02-21 at 12 39 12

What's Changed

New Contributors

Full Changelog: v0.3.0...v0.4.0

v0.3.0

17 Jan 22:05
8c8e972
Compare
Choose a tag to compare

Budgeting is here!

A long awaited feature, Maybe now supports budgeting! We believe budgeting should be easy and simple. Categorize your transactions, mark transfers, one-time expenses, and get a clear breakdown of where your money is going each month.

CleanShot.2025-01-15.at.15.25.15.mp4

What's Changed

New Contributors

Full Changelog: v0.2.0...v0.3.0

v0.2.0

13 Dec 18:19
bac2e64
Compare
Choose a tag to compare

Plaid Integration + Multi-currency Investment Portfolio Support

We have completed the first pass at our fully automated bank syncing with Plaid on our hosted version of the app!

Automated bank syncing is a huge milestone for the app and includes many UI improvements, accuracy improvements, and bug fixes:

  • Editing transactions is now much smoother
  • Account history can be calculated chronologically and reverse-chronologically (required for Plaid accounts)
  • Multi-currency investment accounts are now available
  • Investment accounts now properly calculate "brokerage cash" vs. "holdings value" and break this out clearly in the view
  • Investment accounts calculate cost basis more accurately

CleanShot 2024-12-13 at 12 31 03

Can I self-host Plaid?

As an open-source project, self-hosters are more than welcome to configure (and pay for) their own Plaid accounts. You can see the .env.example file for the required api keys that need to be provided to the app.

That said, due to the complexity around OAuth, Plaid's pricing structure, and costs associated with a personal Plaid subscription, we will not be officially supporting this setup. The hosted version of our app has full Plaid support and is our recommended way to get access to automated bank syncing (more invites coming soon!).

What's Changed

New Contributors

Full Changelog: v0.1.0...v0.2.0

v0.2.0-alpha.2

08 Nov 20:03
56ab092
Compare
Choose a tag to compare
v0.2.0-alpha.2 Pre-release
Pre-release

Activity View

Alongside several bug fixes, this pre-release comes with a brand new "Activity View" based on tons of user feedback. This new activity view allows you to see the chronological updates of each account all in one place. In addition, it should how each transaction and balance update affects the overall historical balance on the account. You can see it in action below:

CleanShot.2024-11-08.at.15.00.03.mp4

What's Changed

New Contributors

Full Changelog: v0.2.0-alpha.1...v0.2.0-alpha.2

v0.2.0-alpha.1

25 Oct 13:50
b75b41a
Compare
Choose a tag to compare
v0.2.0-alpha.1 Pre-release
Pre-release

Improved Account Flows + Onboarding

With this release, we kick off work towards v0.2.0, which will add a basic bank provider integration (Plaid)!

In this release, we've added onboarding to the app so that users can select all of their preferences along with much simpler and intuitive account addition flows.

Here's a quick demo of how easy it is to get started with Maybe!

CleanShot.2024-10-25.at.09.44.35.mp4

What's Changed

New Contributors

Full Changelog: v0.1.0...v0.2.0-alpha.1

v0.1.0

11 Oct 17:52
d9f11e0
Compare
Choose a tag to compare

We're live! ๐ŸŒฎ ๐Ÿฅณ

the-office-the

After hundreds of contributors and hundreds of thousands of lines of code, v0.1.0 is here!

This release comes with a TON of bug fixes and marks the launch of "hosted" Maybe. We've still got a ton of work ahead, but we're excited to release our first production-ready version of Maybe.

We're currently in a private, invite-only alpha. Be sure to join our Discord for announcements when new spots become available!

In this first version, you can:

  • Add all of your accounts
  • Import accounts, transactions, and trades by CSV
  • See your net worth, total spending, and total income
  • Manage transactions (categories, tags, notes)
  • Manage investment portfolios (buys, sells, deposits, withdrawals)

After we incorporate all the feedback coming in, our hosted app will be introducing automated bank syncing!

What's Changed

New Contributors

Full Changelog: v0.1.0-alpha.18...v0.1.0