* Reindent TimeSeries classes
* Fix spacing in time series tests
* Remove trend tests where current is nil
I think if we've gotten this far with a nil value for current, there's a data integrity problem.
If we allow this, we'll have to be very defensive in our code. Best to raise and fix early.
* Reindent Money class
* Refactor TimeSeries artifacts
* Use as_json in TimeSeries
* Bring back tests for trends where current is nil
* Bring back trend test
* Correctly enumerate trend test
* Use favorable_direction for trend_styles helper
* Make trend public in TimeSeries::Value
* Allow nil current values in trends
I think I might've gotten it wrong before, nils might appear in trends if values are unavailable for snapshots
* Clean up TimeSeries::Trend
* Skip trend values same class validations if any values are nil
* Refactor Money
* Remove object parsing in TimeSeries::Value
We're only every passing hashes
* Refactor trendline chart controller into a time series chart controller
* Replace trendline controller
* Implement empty state
* Port line-chart controller into time-series-chart
* Split out methods
* Group similar time series chart functionality
* Fix indicator color
* Fix empty state in time series chart
* Replace line-chart controller with time-series-chart controller
* Draw empty time series chart if less than 2 data points
* Fix favorable direction serialization
* Handle integers as well as money
* Fix favorable direction serialization
* Replace chart types with optional elements
* Prevent double-renders when displaying turbo caches of time series charts
* Remove ambiguities between time series and series data
* Improve time series chart property names
* Clean up tooltip template
* Match tooltip designs
* Apply trendline gradient
* Implement trendline split behavior
* Use same stroke width on all trend lines
* Sort time series data by date
* Support percentages
* Use data color for guideline circles
* Revert "Use data color for guideline circles"
This reverts commit
|
||
---|---|---|
.devcontainer | ||
.github | ||
app | ||
bin | ||
config | ||
db | ||
docs | ||
lib | ||
log | ||
public | ||
storage | ||
test | ||
tmp | ||
vendor | ||
.dockerignore | ||
.env.example | ||
.erb-lint.yml | ||
.gitattributes | ||
.gitignore | ||
.rubocop.yml | ||
.ruby-version | ||
config.ru | ||
CONTRIBUTING.md | ||
Dockerfile | ||
Gemfile | ||
Gemfile.lock | ||
LICENSE | ||
Procfile.dev | ||
Rakefile | ||
README.md | ||
render.yaml |
Maybe: The OS for your personal finances
Get involved: Discord • Website • Issues
If you're looking for the previous React codebase, you can find it at maybe-finance/maybe-archive.
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.
Self Hosting
You can find detailed setup guides for self hosting here.
One-Click Render deploy (recommended)
- Click the button above
- Follow the instructions in the Render self-hosting guide
Local Development Setup
Requirements
- Ruby >3 (see
Gemfile
) - PostgreSQL >9.3 (ideally, latest stable version)
After cloning the repo, the basic setup commands are:
cd maybe
cp .env.example .env
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.
- Sign up for an API key at Synth. It's a Maybe product and the free plan is sufficient for basic multi-currency support.
- Add your API key to your
.env
file.
Setup Guides
Dev Container (optional)
This is 100% optional and meant for devs who don't want to worry about installing requirements manually for their platform. You can follow this guide to learn more about Dev Containers.
If you run into could not connect to server
errors, you may need to change your .env
's DB_HOST
environment variable value to db
to point to the Postgres container.
Mac
Please visit our Mac dev setup guide.
Linux
Please visit our Linux dev setup guide.
Windows
Please visit our Windows dev setup guide.
Testing Emails
In development, we use letter_opener
to automatically open emails in your browser. When an email sends locally, a new browser tab will open with a preview.
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!
Repo Activity
Copyright & license
Maybe is distributed under an AGPLv3 license. "Maybe" is a trademark of Maybe Finance, Inc.