Zach Gollwitzer 297a695d0f Transaction rules engine V1 (#1900)
* Domain model sketch

* Scaffold out rules domain

* Migrations

* Remove existing data enrichment for clean slate

* Sketch out business logic and basic tests

* Simplify rule scope building and action executions

* Get generator working again

* Basic implementation + tests

* Remove manual merchant management (rules will replace)

* Revert "Remove manual merchant management (rules will replace)"

This reverts commit 83dcbd9ff0aa7bbee211796b71aa48b71df5e57e.

* Family and Provider merchants model

* Fix brakeman warnings

* Fix notification loader

* Update notification position

* Add Rule action and condition registries

* Rule form with compound conditions and tests

* Split out notification types, add CTA type

* Rules form builder and Stimulus controller

* Clean up rule registry domain

* Clean up rules stimulus controller

* CTA message for rule when user changes transaction category

* Fix tests

* Lint updates

* Centralize notifications in Notifiable concern

* Implement category rule prompts with auto backoff and option to disable

* Fix layout bug caused by merge conflict

* Initialize rule with correct action for category CTA

* Add rule deletions, get rules working

* Complete dynamic rule form, split Stimulus controllers by resource

* Fix failing tests

* Change test password to avoid chromium conflicts

* Update integration tests

* Centralize all test password references

* Add re-apply rule action

* Rule confirm modal

* Run migrations

* Trigger rule notification after inline category updates

* Clean up rule styles

* Basic attribute locking for rules

* Apply attribute locks on user edits

* Log data enrichments, only apply rules to unlocked attributes

* Fix merge errors

* Additional merge conflict fixes

* Form UI improvements, ignore attribute locks on manual rule application

* Batch AI auto-categorization of transactions

* Auto merchant detection, ai enrichment in batches

* Fix Plaid merchant assignments

* Plaid category matching

* Cleanup 1

* Test cleanup

* Remove stale route

* Fix desktop chat UI issues

* Fix mobile nav styling issues
2025-04-18 11:39:58 -04:00
2025-03-19 14:05:00 -04:00
2025-04-18 11:39:58 -04:00
2025-04-18 11:39:58 -04:00
2024-02-02 09:05:04 -06:00
2024-02-02 09:05:04 -06:00
2025-04-18 11:39:58 -04:00
2024-02-02 09:05:04 -06:00
2025-02-24 11:08:05 -05:00
2024-02-02 09:05:04 -06:00
2024-08-23 10:06:24 -04:00
2024-02-02 09:05:04 -06:00
2025-03-28 13:08:22 -04:00
2024-08-23 10:06:24 -04:00
2025-01-27 19:59:16 -05:00
2024-02-02 09:05:04 -06:00
2024-02-02 09:05:04 -06:00
2025-03-28 13:08:22 -04:00
2024-02-02 09:05:04 -06:00

dashboard_mockup (Note: The image above is a mockup of what we're working towards. We're rapidly approaching the functionality shown, but not all of the parts are ready just yet.)

Maybe: The OS for your personal finances

Get involved: DiscordWebsiteIssues

Backstory

We spent the better part of 2021/2022 building a personal finance + wealth management app called, Maybe. Very full-featured, including an "Ask an Advisor" feature which connected users with an actual CFP/CFA to help them with their finances (all included in your subscription).

The business end of things didn't work out, and so we shut things down mid-2023.

We spent the better part of $1,000,000 building the app (employees + contractors, data providers/services, infrastructure, etc.).

We're now reviving the product as a fully open-source project. The goal is to let you run the app yourself, for free, and use it to manage your own finances and eventually offer a hosted version of the app for a small monthly fee.

Maybe Hosting

There are 2 primary ways to use the Maybe app:

  1. Managed (easiest) - we're in alpha and release invites in our Discord
  2. Self-host with Docker

Contributing

Before contributing, you'll likely find it helpful to understand context and general vision/direction.

Once you've done that, please visit our contributing guide to get started!

Local Development Setup

If you are trying to self-host the Maybe app, stop here. You should read this guide to get started.

The instructions below are for developers to get started with contributing to the app.

Requirements

  • See .ruby-version file for required Ruby version
  • PostgreSQL >9.3 (ideally, latest stable version)

After cloning the repo, the basic setup commands are:

cd maybe
cp .env.local.example .env.local
bin/setup
bin/dev

# Optionally, load demo data
rake demo_data:reset

And visit http://localhost:3000 to see the app. You can use the following credentials to log in (generated by DB seed):

  • Email: user@maybe.local
  • Password: password

For further instructions, see guides below.

Multi-currency support

If you'd like multi-currency support, there are a few extra steps to follow.

  1. Sign up for an API key at Synth. It's a Maybe product and the free plan is sufficient for basic multi-currency support.
  2. Add your API key to your .env file.

Setup Guides

Repo Activity

Repo Activity

Maybe is distributed under an AGPLv3 license. " Maybe" is a trademark of Maybe Finance, Inc.

Description
No description provided
Readme AGPL-3.0 94 MiB
Languages
Ruby 75.7%
HTML 15%
Dart 4.9%
JavaScript 3.6%
CSS 0.2%
Other 0.4%