When tests run in parallel, they were sharing the same API key fixtures which caused Redis rate limit counters to accumulate across test workers, leading to unexpected rate limit errors. Changes: - Create fresh API keys in setup instead of using fixtures - Each API key gets a unique auto-generated ID - Clear existing active keys to avoid validation conflicts - Use different sources (web/mobile) for multiple test keys - Clear Redis rate limit data in setup to ensure clean state - Update api_headers helper to use display_key instead of plain_key This follows the existing pattern used in UsageControllerTest for handling API keys that interact with Redis state. |
||
---|---|---|
.cursor/rules | ||
.devcontainer | ||
.github | ||
app | ||
bin | ||
config | ||
db | ||
docs | ||
lib | ||
log | ||
public | ||
storage | ||
test | ||
tmp | ||
vendor | ||
.dockerignore | ||
.editorconfig | ||
.env.example | ||
.env.local.example | ||
.env.test.example | ||
.erb_lint.yml | ||
.gitattributes | ||
.gitignore | ||
.rubocop.yml | ||
.ruby-version | ||
biome.json | ||
CLAUDE.md | ||
compose.example.yml | ||
config.ru | ||
CONTRIBUTING.md | ||
Dockerfile | ||
Gemfile | ||
Gemfile.lock | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
perf.rake | ||
Procfile.dev | ||
Rakefile | ||
README.md |
Maybe: The personal finance app for everyone
Get involved: Discord • Website • Issues
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:
- Managed (easiest) - we're in alpha and release invites in our Discord
- 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!
Performance Issues
With data-heavy apps, inevitably, there are performance issues. We've set up a public dashboard showing the problematic requests, along with the stacktraces to help debug them.
Any contributions that help improve performance are very much welcome.
https://oss.skylight.io/app/applications/XDpPIXEX52oi/recent/6h/endpoints
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:default
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
- Mac dev setup guide
- Linux dev setup guide
- Windows dev setup guide
- Dev containers - visit this guide to learn more
Repo Activity
Copyright & license
Maybe is distributed under an AGPLv3 license. " Maybe" is a trademark of Maybe Finance, Inc.