LedgerEleven is a simple, mobile-first personal expense tracker designed for quick and easy entry on the go. It helps you visualize spending trends, import/export data for analysis, and leverages AI for a smarter experience.
- Mobile-First Design: Optimized for a seamless experience on your smartphone.
- AI-Powered Insights: Get a smarter understanding of your spending habits.
- Data Portability: Easily import and export your data.
- Self-Hostable: Run it on your own infrastructure using Docker.
- Secure: Your data is your own.
![]() |
![]() |
![]() |
The application is publicly available at: https://ledgereleven.com/
- Backend: C#, .NET 9, ASP.NET Core
- Frontend: React, TypeScript, Vite
- Database: SQLite
- Testing: Playwright for end-to-end tests, xUnit for unit tests
- Containerization: Docker
To get a local copy up and running, follow these simple steps.
(Requires: .NET 9.0 SDK and node.js installed.)
-
Start the backend:
cd ./src/ledger11.web dotnet run -
Start the frontend (in a new terminal):
cd ./src/ledger11.client npm run dev
The application will be available at http://localhost:5173.
Alternatively, to run the application in a production-like environment, you can build the React application and have the .NET backend serve the static files. The React app's static assets are copied into the wwwroot/app folder of the .NET backend app. This wwwroot/app folder is included in the .gitignore file.
To build the React app and copy it into the ledger11.web app, run the following command in the ledger11.client folder:
npm run republishThe ledger11.web folder contains a restart.sh script that automates this process by stopping the backend, republishing the client, and restarting the backend.
(Requires: Docker or Docker for Desktop installed.)
cd ./.devops/build
docker-compose up --buildThe application will be available at http://localhost:8080.
Backend Tests:
cd src
dotnet testFrontend Tests:
First, start the backend. Then, in a new terminal:
cd ./src/ledger11.webtests
npx playwright testBackend Tests:
cd ./.devops/test/backend
docker-compose run --build --rm app-testFrontend Tests:
cd ./.devops/test/web
docker-compose run --build --rm testFor more detailed instructions, troubleshooting, and a full list of useful commands, please refer to the following documents:
- Getting Started: Detailed setup and development instructions.
- About: More about the app, architecture, technology and design choices.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Please read our Contributing Guide for details on our code of conduct, and the process for submitting pull requests to us.


