The open-source trading journal and performance review platform.
Record every trade. Understand your results. Improve with real data.
Born in Morocco 🇲🇦 · For traders everywhere
Tradel is under active development.
The platform works today, and there is much more to come.
A winning trade is not always a good trade. A losing trade is not always a bad trade. The result alone does not tell you whether you followed your plan, managed risk well, or repeated an old mistake.
Tradel keeps your trades, notes, accounts, and performance data in one place. It turns a list of entries and exits into a clear review process, so you can see what works, what does not, and what needs to change.
- Create a trading account — keep personal accounts, demo accounts, broker accounts, and prop-firm challenges separate. Each account can have its own broker, starting balance, currency, and trade history.
- Log a trade — record the date and time, market symbol, long or short direction, entry, exit, lot size, profit or loss, and risk-to-reward result.
- Add the story behind it — attach notes to explain your idea, your plan, what happened, and what you learned.
- Review the data — use simple charts, statistics, filters, and calendar views to find patterns across your trades.
- Make the next trade better — repeat what works and stop repeating mistakes that cost you money.
| What you get | What it helps you do |
|---|---|
| Performance dashboard | See total P&L, win rate, best trade, average risk-to-reward, and recent activity at a glance. |
| Trade log | Search, filter, sort, edit, and review your closed trades without losing the details. |
| Equity curve | Follow the growth and drawdown of an account trade by trade. |
| Trading calendar | See daily P&L and trading activity on the exact day it happened. |
| Analytics | Compare results by symbol and trade direction to see where your performance is strongest or weakest. |
| Journal notes | Save the reasoning, lessons, and context that numbers cannot explain on their own. |
| Multiple accounts | Keep different brokers, currencies, demo accounts, and prop challenges organized. |
| Live demo | Explore a complete journal with sample data before creating an account. |
Tradel is useful for new traders learning how to review their work, experienced traders testing whether an edge is still working, and prop-firm traders who need to keep several challenges separate.
It does not tell you what to buy or sell. It does not place trades for you. It is not a broker, an exchange, or a signal service. You stay in control of every decision. Tradel simply helps you study those decisions after the trade.
Tradel is open source because traders should be able to understand and control the tools that hold their trading history. You can inspect the project, self-host it, suggest a feature, report a problem, or help build the next version. There is no hidden system deciding how you should trade.
The current version is free to use and includes the main journal and review experience. The product roadmap shows what is planned next, including broker imports, deeper risk tracking, playbooks, review routines, and more flexible reports.
- Frontend: Next.js, React, TypeScript, and Tailwind CSS
- Backend: NestJS and TypeScript
- Database: PostgreSQL with Prisma ORM
- API documentation: Swagger
Tradel is an npm workspace with two applications and a shared package:
apps/
├── api/ # NestJS API
└── web/ # Next.js web application
packages/
├── database/ # Prisma schema, migrations, and database client (@tradel/database)
└── shared/ # Shared API types and constants (@tradel/shared)
Install all dependencies once from the repository root:
npm installStart either application from the root:
npm run dev:api
npm run dev:webUse npm run dev to start both apps. It watches @tradel/database, @tradel/shared,
the API, and the frontend. npm run dev:api watches the database and shared packages
with the API, while npm run dev:web watches only the browser-safe shared package
with the frontend.
Run npm run build to build both apps for production. Each app's build command
builds its internal dependencies first. Run npm run build:packages to build both
internal packages, or use npm run build:database and npm run build:shared
separately.
For frontend structure, coding conventions, and checks, read the frontend guide.
The API uses Prisma Client for the main application repositories: users, refresh tokens,
accounts, trades, and notes. The reusable client, generated types, schema, and migrations
belong to @tradel/database. The Prisma schema is stored in
packages/database/prisma/schema.prisma.
Generate Prisma Client from the repository root:
npm run prisma:generateYou can inspect the database with Prisma Studio:
npm run prisma:studioThe analytics repository still uses PostgreSQL report queries for grouped statistics and calendar data. Moving those reports to Prisma's safe raw-query API is a separate migration step.
With PostgreSQL running and DB_URL available in the shell or in
packages/database/.env, generate DBML from the live database:
npm run diagram:generateThe generator rewrites packages/database/database.dbml. Import that file into
dbdiagram.io to render the database diagram. It reads the live
PostgreSQL schema, so the diagram matches the database currently selected by DB_URL.
To reuse the API environment file for this command, run:
DBML_ENV_FILE=apps/api/.env npm run diagram:generateYou can select another environment or output file without editing the script:
DB_URL='postgresql://user:password@host:5432/database' npm run diagram:generate
npm run diagram:generate -- ../docs/database.dbmlThe public schema is included by default. Set DBML_SCHEMAS to a comma-separated list when the database uses additional schemas.
Want to help? Read the contribution guide and join the project as a trader, designer, writer, or developer.
Tradel is a journaling and analysis tool. It does not provide financial advice or promise profitable results.
Trade. Review. Improve. Repeat.
Made with care in Morocco 🇲🇦


