DcaPal is a pragmatic Dollar Cost Averaging tool for passive investors: financially-educated people managing small-to-medium portfolios replicating major world indices.
Every month/quarter, many investors face the same question: “How do I split my savings across assets so my portfolio stays balanced?”
DcaPal solves this problem. Simply:
- Build your portfolio and define your asset allocation in percentages.
- Enter the amount you want to invest.
- Let the algorithm split it automatically — keeping your portfolio balanced and saving you time.
demo-dcapal.mov
You can start using DcaPal right away. It's free. No registration required.
Build your own portfolio or, if you don't know where to start, explore our Demo portfolios:
DcaPal does not store any user data. But if you are still concerned for your privacy, you can build and run it on your machine.
Start Docker environment
- Setup the
.envfile
cp dcapal-backend/.env.example dcapal-backend/.env- Setup a password for the db and the JWT secret (you can use
openssl rand -base64 32to generate a random string) in the new.envfile
POSTGRES_PASSWORD=<replace-with-your-pwd>JWT_SECRET=<generated_secret>- Start the Docker environment
make dev-up(Note: if you're using a Mac with an ARM processor, you should replace (in the docker-compose dev file) Cadvisor's image version with gcr.io/cadvisor/cadvisor:v0.47.1 and set platform: linux/aarch64)
Run DcaPal backend
Prepare dcapal.yml config file
cd dcapal-backend cp config/dcapal/dcapal.yml dcapal.ymlCompile and start backend service
cargo run --releaseRun DcaPal frontend
Build DcaPal Optimizer
cd dcapal-optimizer-wasm curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh wasm-pack build --releaseInstall NPM dependencies. Note: this is installing dcapal-optimizer-wasm package as well.
cd ../dcapal-frontend npm install # Install dcapal-optimizer-wasm pkg as wellRun frontend server
npm run startflowchart LR Frontend[Frontend] ---|"/api/external/search?q={query}<br>/api/external/chart/${symbol}"|nginx[nginx] subgraph dcapal.com nginx---TradFiProvider[TradFi Provider] nginx---Backend[Backend] Backend---CryptoProvider[Crypto Provider REST API] Backend---|"/assets/fiat<br>/assets/crypto<br>/price/{base}?quote={quote}"|Redis[Redis] end Contributions and suggestions about how to improve this project are welcome! Please follow our contribution guidelines.
Born as a personal Sunday morning project, DcaPal would have never grown so much without the help of heros willing to contribute with their time and work. Thank you very much ya all!
